Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 16.04.2008(UTC) Сообщений: 1,416
Сказал(а) «Спасибо»: 37 раз Поблагодарили: 565 раз в 393 постах
|
Здравствуйте. В 2024-04-02 КриптоПро CSP 5.0.13000 Titan для всех *nix-платформ (macOS, Linux, FreeBSD, Solaris, AIX, iOS, Android) появился интерфейс для получения, проверки и установки лицензии. Он описан в license_api.h и имеет примерно такой вид: Код:uint32_t get_first_install_date(const char *productCode, int64_t *pUnixTime);
uint32_t license_get(char *outSN, uint32_t *pOutSnLen, const char *productCode, uint32_t flags);
uint32_t license_check(const char *SN, char *outSN, uint32_t *pOutSnLen, int32_t *pValidity, int32_t *pType, int32_t *pRestrictions, uint32_t *pExtra, int32_t *pDaysToExpire, int64_t *pUnixTimeEnd);
uint32_t license_set(char *SN, const char *productCode, uint32_t flags);
uint32_t license_requirements(uint32_t *pRequirements, uint32_t flags);
productCode пока NULL. Не обязательно получать все значения, например, вам может подойти: Код:err = license_check(sn, NULL, NULL, &validity, NULL, NULL, NULL, &daysToExpire, NULL);
Для validity есть такой диапазон значений и проверки (я бы сказал, что эта часть API может оказаться нестабильной на интервале в несколько лет): Код:#define CSP_LICENSE_PERMANENT 2
#define CSP_LICENSE_EVALUATION 1
#define CSP_LICENSE_EVALUATION_NEED_NOTIFY 0
#define CSP_LICENSE_EXPIRED (-1)
#define CSP_LICENSE_CORRUPTED (-2)
#define CSP_LICENSE_CANT_FIND_FIRST_INSTALL_DATE (-3)
#define CSP_LICENSE_NOT_SET (-4)
#define CSP_LICENSE_BAD_PRODUCTID (-5)
#define CSP_LICENSE_IS_PERMANENT(a) ((a) >= CSP_LICENSE_PERMANENT)
#define CSP_LICENSE_IS_GOOD(a) ((a) >= CSP_LICENSE_EVALUATION_NEED_NOTIFY)
#define CSP_LICENSE_IS_CORRUPTED(a) ((a) <= CSP_LICENSE_CORRUPTED)
license_check проверяет математическую корректность лицензии, а не её пригодность для применения. Например, для серверного применения лицензия может не подойти. Отредактировано пользователем 10 июля 2024 г. 17:51:14(UTC)
| Причина: Не указана |
|
3 пользователей поблагодарили Русев Андрей за этот пост.
|
|