Hasp lm is not running error code 37

Если при установке программного комплекса Axxon Next занят порт 20111 (например, невыгруженными при удалении прежней версии процессами nethost.exe), выводится ошибка запуска службы NGP Host Service.Для продолжения установки необходимо освободить порт 20111, после чего повторить попытку.

Ошибка запуска службы NGP Host Service

Если при установке программного комплекса Axxon Next занят порт 20111 (например, невыгруженными при удалении прежней версии процессами nethost.exe), выводится ошибка запуска службы NGP Host Service.

Для продолжения установки необходимо освободить порт 20111, после чего повторить попытку.

Ошибка подключения к базе данных Postgres

После установки базы данных Postgres может произойти преждевременный выход из программы установки программного комплекса Axxon Next. Данная ситуация может быть связана с невозможностью подключения программы установки к базе данных Postgres, если включен брандмауэр. Для её предотвращения следует отключить брандмауэр на время установки.

Ошибка при установке Drivers Pack

В некоторых случаях может возникать ошибка при установке Drivers Pack:

Installation failed because the Universal C Runtime is not installed. Please run Windows Update and install all required Windows updates(KB2999226). You can download the UCRT separately from here: 'https://support.microsoft.com/en-us/kb/2999226' 

Для корректной установки Drivers Pack в этом случае потребуется установить обновление Windows KB2999226.

Ошибка при установке DetectorPack

В некоторых случаях может возникать ошибка при установке DetectorPack — V2C Error: HASP LM is not running Status Code: 37 0 4832 33.

Для её решения необходимо:

  1. Запустить командную строку от имени администратора.
  2. Последовательно запустить следующие команды: 1) bcdedit -set LOADOPTIONS DISABLE_INTEGRITY_CHECKS 2) bcdedit -set TESTSIGNING ON.
  3. Выполнить перезагрузку и убедиться что служба hasplms запущена. 
  4. Переустановить драйвер Sentinel HASP LDK — Windows GUI Run-time Installer.
  5. Повторно выполнить установку ПК Axxon Next.

Ошибка при установке на ОС Windows 10

При установке ПК Axxon Next на ОС Windows 10.0.17763 и старше может возникать ошибка на этапе «Создание архива для автоматического обновления».

Для исправления данной ошибки необходимо:

  1. Перейти в Панель управления → Региональные стандарты → Дополнительно → Изменить язык системы.
  2. Снять флажок Бета-версия: Использовать Юникод (UTF-8) для поддержки языка во всем мире.
  3. Повторно выполнить установку ПК Axxon Next.

Ошибка при установке на ОС Windows с языковым пакетом Norsk (bokmål)

Установка Сервера Axxon Next на ОС Windows с языковым пакетом Norsk (bokmål) невозможна из-за несовместимости с PostgreSQL.

Необходимо использовать языковой пакет Norsk (nynorsk).

Ошибка удаления ПК Axxon Next при установленном программном обеспечении Videoinspector

Удаление ПК Axxon Next в некоторых случаях может быть невозможно при использовании программного обеспечения Videoinspector.

Для корректного удаления ПК Axxon Next рекомендуется предварительно выполнить деинсталляцию программного обеспечения Videoinspector.

Содержание

Решение проблем с технологией защиты

  1. Если драйвер, поставляемый с установочным диском устарел, то последнюю версию драйвера всегда можно получить на сайте компании SafeNet http://safenet-sentinel.ru/helpdesk/.

HASP LM Server running

Сообшение при установке драйвера ключа защиты Sentinel Hasp:
 HASP LM Server running

Уже запущен менеджер лицензий HASP. Это не одно и тоже, что Sentinel HASP.
Решение:

  1. Дождитесь, когда пользователи выйдут из баз 1С и прекратят использовать прочие ключи HASP.

  2. Остановите службу «HASP Loader».

  3. Установите драйвер защиты из дистрибутива МИКО.

Ошибка 48

Установлен «не поддерживаемый» драйвер защиты.
Проблема описана в статье HASP_NO_VLIB

Решение:

  1. Удалите используемый драйвер защиты Sentinel HASP.

  2. Установите драйвер защиты из дистрибутива МИКО.

Ошибка 42

При подключении панели телефонии может возникать следующая ошибка «Версия менеджера лицензии Sential HASP устарела КОД: 042«

Ошибка означает, что у Вас используется версия панели телефонии, которая не может работать с установленной на данный момент версией драйвера Hasp. Необходимо обновить версию драйвера HASP. Решение представлено в инструкции.

Ошибка H0033

Системное сообщение «Unable to access Sentinel Run-time Environment (H0033)».

Решение:

  1. Установите драйвер защиты из дистрибутива МИКО.

  2. Откройте обработку 1С повторно.

Ошибка 48 5 718 1275

Эта ошибка может возникать при попытке установки драйвера защиты.
 Ошибка 48 5 718 1275

Скорее всего устанавливаемый драйвер защиты устарел. Скачайте актуальный дистрибутив панели телефонии. В каталоге «Protect» находится актуальная версия драйвера для текущего релиза панели телефонии.

ПК не видит сетевой ключ

Если на удаленной машине захватывается тиральный ключ, это значит что ПК не видит лицензий с удаленной машины.

На клиентской машине нужно установить драйвер защиты.
Перейти в браузере в http://localhost:1947


В настройках указать «Aggressive Search for Remote Licenses».

В поле «Specify Search Parameters» указать ip адреса сервера с лицензией.
Адреса вводятся каджый на новой строке.

В http://localhost:1947/_int_/devices.html
должны отобразиться ключи с удаленной машины.

Hasp Key Inactive

Сообщение наблюдается в web интерфейсе localhost:1947, в разделе «Sentinel Keys»:

Сообщение означает, что ключ был отключен. Такое может происходит в случае апгрейда ключа до большего числа лицензий. В таком случае необходимо активировать дополнительный «.v2c» файл.

В личном кабинете будет два ключа защиты:

  1. Основной ключ

  2. Ключ апгрейда на более емкий.

Для случая переустановки ОС следует активировать ключи последовательно.

Комментарии

/*! file hasp_api.h HASP SRM API declarations * */ /*! * mainpage HASP SRM High Level API * Copyright Aladdin Knowledge Systems Ltd. * * $Id: hasp_api.h,v 1.17 2007/02/24 10:15:22 andi Exp $ */ #ifndef __HASP_API_H__ #define __HASP_API_H__ #if !defined(WITH_AKSTYPES) && !defined(WITH_OEFTYPES) #if defined(_MSC_VER) || defined(__WATCOMC__) || defined(__BORLANDC__) typedef unsigned __int64 hasp_u64_t; typedef signed __int64 hasp_s64_t; #else typedef unsigned long long hasp_u64_t; typedef signed long long hasp_s64_t; #endif #if defined(_MSC_VER) typedef unsigned long hasp_u32_t; typedef signed long hasp_s32_t; #else typedef unsigned int hasp_u32_t; typedef signed int hasp_s32_t; #endif typedef unsigned short hasp_u16_t; typedef signed short hasp_s16_t; typedef signed char hasp_s8_t; typedef unsigned char hasp_u8_t; #endif #if defined(_WIN32) || defined(WIN32) || defined(_MSC_VER) || defined(__BORLANDC__) #define HASP_CALLCONV __stdcall #else #define HASP_CALLCONV #endif #ifdef __cplusplus extern «C« { #endif /*! @defgroup hasp_feature_ids Feature ID defines * * See also ref hasp_features * * @{ */ /*! brief «Featuretype» mask * * AND-mask used to identify feature type */ #define HASP_FEATURETYPE_MASK 0xffff0000 /*! brief «PROGRAM NUMBER FEATURE» type * * After AND-ing with HASP_FEATURETYPE_MASK feature type contain this value. */ #define HASP_PROGNUM_FEATURETYPE 0xffff0000 /*! brief program number mask * * AND-mask used to extract program number from feature id if program number feature. */ #define HASP_PROGNUM_MASK 0x000000ff /*! brief prognum options mask * * AND-mask used to identify prognum options: * — HASP_PROGNUM_OPT_NO_LOCAL * — HASP_PROGNUM_OPT_NO_REMOTE * — HASP_PROGNUM_OPT_PROCESS * — HASP_PROGNUM_OPT_CLASSIC * — HASP_PROGNUM_OPT_TS * * 3 bits of the mask are reserved for future extensions and currently unused. * Initialize them to zero. */ #define HASP_PROGNUM_OPT_MASK 0x0000ff00 /*! brief «Prognum» option * * Disable local license search */ #define HASP_PROGNUM_OPT_NO_LOCAL 0x00008000 /*! brief «Prognum» option * * Disable network license search */ #define HASP_PROGNUM_OPT_NO_REMOTE 0x00004000 /*! brief «Prognum» option * * Sets session count of network licenses to per-process */ #define HASP_PROGNUM_OPT_PROCESS 0x00002000 /*! brief «Prognum» option * * Enables the API to access «classic» (HASP4 or earlier) keys */ #define HASP_PROGNUM_OPT_CLASSIC 0x00001000 /*! brief «Prognum» option * * Presence of Terminal Services gets ignored */ #define HASP_PROGNUM_OPT_TS 0x00000800 /*! brief HASP default feature id * * Present in every hardware key. */ #define HASP_DEFAULT_FID 0 /*! brief «Prognum» default feature id * * Present in every hardware HASP key. */ #define HASP_PROGNUM_DEFAULT_FID (HASP_DEFAULT_FID | HASP_PROGNUM_FEATURETYPE) /*! @} */ /*! brief Invalid handle value for hasp_login() and hasp_login_scope() functions. */ #define HASP_INVALID_HANDLE_VALUE 0 /*! brief Minimal block size for hasp_encrypt() and hasp_decrypt() functions. */ #define HASP_MIN_BLOCK_SIZE 16 /*! brief Minimal block size for legacy functions hasp_legacy_encrypt() * and hasp_legacy_decrypt(). */ #define HASP_MIN_BLOCK_SIZE_LEGACY 8 /*! @defgroup hasp_file_ids Memory file id defines * * @{ */ /*! brief HASP4 memory file. * * File id for HASP4 compatible memory contents w/o FAS */ #define HASP_FILEID_MAIN 0xfff0 /*! brief HASP4 FAS memory file. * * (Dummy) file id for license data area of memory contents */ #define HASP_FILEID_LICENSE 0xfff2 /*! brief HASP writable memory file. * * File id for HASP secure writable memory */ #define HASP_FILEID_RW 0xfff4 /*! brief HASP read only memory file. * * File id for HASP secure read only memory */ #define HASP_FILEID_RO 0xfff5 /*! @} */ /*! @defgroup hasp_error_codes Error code defines * * @{ */ enum hasp_error_codes { HASP_STATUS_OK = 0, /*!< no error occurred */ HASP_MEM_RANGE = 1, /*!< invalid memory address */ HASP_INV_PROGNUM_OPT = 2, /*!< unknown/invalid feature id option */ HASP_INSUF_MEM = 3, /*!< memory allocation failed */ HASP_TMOF = 4, /*!< too many open features */ HASP_ACCESS_DENIED = 5, /*!< feature access denied */ HASP_INCOMPAT_FEATURE = 6, /*!< incompatible feature */ HASP_CONTAINER_NOT_FOUND = 7, /*!< deprecated — use HASP_HASP_NOT_FOUND */ HASP_HASP_NOT_FOUND = 7, /*!< HASP not found */ HASP_TOO_SHORT = 8, /*!< en-/decryption length too short */ HASP_INV_HND = 9, /*!< invalid handle */ HASP_INV_FILEID = 10, /*!< invalid file id / memory descriptor */ HASP_OLD_DRIVER = 11, /*!< driver or support daemon version too old */ HASP_NO_TIME = 12, /*!< real time support not available */ HASP_SYS_ERR = 13, /*!< generic error from host system call */ HASP_NO_DRIVER = 14, /*!< no HASP drivers found */ HASP_INV_FORMAT = 15, /*!< unrecognized info format */ HASP_REQ_NOT_SUPP = 16, /*!< request not supported */ HASP_INV_UPDATE_OBJ = 17, /*!< invalid update object */ HASP_KEYID_NOT_FOUND = 18, /*!< key with requested id was not found */ HASP_INV_UPDATE_DATA = 19, /*!< update data consistency check failed */ HASP_INV_UPDATE_NOTSUPP = 20, /*!< update not supported by this key */ HASP_INV_UPDATE_CNTR = 21, /*!< update counter mismatch */ HASP_INV_VCODE = 22, /*!< invalid vendor code */ HASP_ENC_NOT_SUPP = 23, /*!< requested encryption algorithm not supported */ HASP_INV_TIME = 24, /*!< invalid date / time */ HASP_NO_BATTERY_POWER = 25, /*!< clock has no power */ HASP_NO_ACK_SPACE = 26, /*!< update requested acknowledgement, but no area to return it */ HASP_TS_DETECTED = 27, /*!< terminal services (remote terminal) detected */ HASP_FEATURE_TYPE_NOT_IMPL = 28, /*!< feature type not implemented */ HASP_UNKNOWN_ALG = 29, /*!< unknown algorithm */ HASP_INV_SIG = 30, /*!< signature check failed */ HASP_FEATURE_NOT_FOUND = 31, /*!< feature not found */ HASP_NO_LOG = 32, /*!< trace log is not enabled */ HASP_LOCAL_COMM_ERR = 33, /*!< communication error between application and local LM */ HASP_UNKNOWN_VCODE = 34, /*!< vendor code unknown to API library (run apigen to make it known) */ HASP_INV_SPEC = 35, /*!< invalid XML spec */ HASP_INV_SCOPE = 36, /*!< invalid XML scope */ HASP_TOO_MANY_KEYS = 37, /*!< too many keys connected */ HASP_TOO_MANY_USERS = 38, /*!< too many users */ HASP_BROKEN_SESSION = 39, /*!< broken session */ HASP_REMOTE_COMM_ERR = 40, /*!< communication error between local and remote LM */ HASP_FEATURE_EXPIRED = 41, /*!< the feature is expired */ HASP_OLD_LM = 42, /*!< HASP LM version too old */ HASP_DEVICE_ERR = 43, /*!< HASP SL secure storage I/O error or USB request error */ HASP_UPDATE_BLOCKED = 44, /*!< update installation not allowed */ HASP_TIME_ERR = 45, /*!< system time has been tampered */ HASP_SCHAN_ERR = 46, /*!< secure channel communication error */ HASP_STORAGE_CORRUPT = 47, /*!< secure storage contains garbage */ HASP_NO_VLIB = 48, /*!< vendor lib cannot be found */ HASP_INV_VLIB = 49, /*!< vendor lib cannot be loaded */ HASP_SCOPE_RESULTS_EMPTY = 50, /*!< scope: no matching feature found */ HASP_VM_DETECTED = 51, /*!< virtual machine detected */ HASP_HARDWARE_MODIFIED = 52, /*!< HASP update incompatible with this hardware; HASP key is locked to other hardware */ HASP_USER_DENIED = 53, /*!< login denied because of user restrictions */ HASP_UPDATE_TOO_OLD = 54, /*!< update was already installed */ HASP_UPDATE_TOO_NEW = 55, /*!< another update must be installed first */ HASP_OLD_VLIB = 56, /*!< vendor lib is too old */ /* dispatcher use */ HASP_NO_API_DYLIB = 400, /*!< A required API dynamic library was not found */ HASP_INV_API_DYLIB = 401, /*!< The found and assigned API dynamic library could not verified. */ /* c++ use */ HASP_INVALID_OBJECT = 500, HASP_INVALID_PARAMETER = 501, HASP_ALREADY_LOGGED_IN = 502, HASP_ALREADY_LOGGED_OUT = 503, /* .net use */ HASP_OPERATION_FAILED = 525, /* inside-api use */ HASP_NO_EXTBLOCK = 600, /*!< no classic memory extension block available */ /* internal use */ HASP_INV_PORT_TYPE = 650, /*!< invalid port type */ HASP_INV_PORT = 651, /*!< invalid port value */ /* catch-all */ HASP_NOT_IMPL = 698, /*!< capability isn’t available */ HASP_INT_ERR = 699, /*!< internal API error */ HASP_FIRST_HELPER = 2001, /*!< reserved for HASP Helper Libraries */ HASP_FIRST_HASP_ACT = 3001, /*!< reserved for HASP activation API */ HASP_NEXT_FREE_VALUES = 5001, }; /*! @} */ /*! @defgroup hasp_general General declarations * * @{ */ typedef enum hasp_error_codes hasp_status_t; /*!< raw error code */ typedef hasp_u32_t hasp_size_t; /*!< length */ typedef hasp_u32_t hasp_handle_t; /*!< connection handle */ typedef hasp_u32_t hasp_feature_t; /*!< feature id */ typedef hasp_u32_t hasp_fileid_t; /*!< memory file id */ typedef hasp_u64_t hasp_time_t; /*!< time, representing seconds since Jan-01-1970 0:00:00 GMT */ typedef const void *hasp_vendor_code_t; /*!< contains the vendor code */ #define HASP_UPDATEINFO «<haspformat format=«updateinfo«/>« /*!< hasp_get_sessioninfo() format to get update info (C2V) */ #define HASP_FASTUPDATEINFO «<haspformat format=«fastupdateinfo«/>« /*!< hasp_get_sessioninfo() format to get update info (C2V) */ #define HASP_SESSIONINFO «<haspformat format=«sessioninfo«/>« /*!< hasp_get_sessioninfo() format to get session info */ #define HASP_KEYINFO «<haspformat format=«keyinfo«/>« /*!< hasp_get_sessioninfo() format to get key/hardware info */ /*! @} */ /*! @defgroup hasp_basic The Basic API * * @{ */ /* ——————————————————————— */ /*! brief Login into a feature. * * This function establishes a context (logs into a feature). * * param feature_id — Unique identifier of the featuren * With «prognum» features (see ref HASP_FEATURETYPE_MASK), * 8 bits are reserved for legacy options (see ref HASP_PROGNUM_OPT_MASK, * currently 5 bits are used): * — only local * — only remote * — login is counted per process ID * — disable terminal server check * — enable access to old (HASP3/HASP4) keys * param vendor_code — pointer to the vendor code * param handle — pointer to the resulting session handle * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_FEATURE_NOT_FOUND * — the requested feature isn’t available * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_TMOF * — too many open handles * — HASP_INSUF_MEM * — out of memory * — HASP_INV_VCODE * — invalid vendor code * — HASP_NO_DRIVER * — driver not installed * — HASP_OLD_DRIVER * — old driver installed * — HASP_UNKNOWN_VCODE * — vendor code unknown to API library * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_FEATURE_EXPIRED * — a feature was found, but it’s expired * — HASP_TOO_MANY_USERS * — maximum concurrency exhausted * — HASP_OLD_LM * — LM is too old * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * — HASP_INV_PROGNUM_OPT * — unknown prognum option requested (ref HASP_PROGNUM_OPT_MASK) * — HASP_TS_DETECTED * — program runs on a remote screen on Terminal Server * * sa hasp_login_scope() * sa hasp_logout() * * remark * * For local prognum features, concurrency is not handled and each login performs a decrement * if it is a counting license. * * Network prognum features just use the old HASPLM login logic with all drawbacks. * There is only support for concurrent usage of b one server (global server address). * */ hasp_status_t HASP_CALLCONV hasp_login(hasp_feature_t feature_id, hasp_vendor_code_t vendor_code, hasp_handle_t *handle); /* ——————————————————————— */ /*! brief Extended login into a feature. * * This function is an extended login function, where the search for the * feature can be restricted. * * param feature_id — Unique identifier of the featuren * «prognum» features (see ref HASP_FEATURETYPE_MASK) are not * supported by this function. * param scope — the ref hasp_scope of the feature search * param vendor_code — pointer to the vendor code * param handle — pointer to the resulting session handle * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_FEATURE_NOT_FOUND * — the requested feature isn’t available * — HASP_SCOPE_RESULTS_EMPTY * one or more features were found, but they do not match the scope * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_TMOF * — too many open handles * — HASP_INSUF_MEM * — out of memory * — HASP_INV_VCODE * — invalid vendor code * — HASP_NO_DRIVER * — driver not installed * — HASP_OLD_DRIVER * — old driver installed * — HASP_UNKNOWN_VCODE * — vendor code unknown to API library * — HASP_INVALID_PARAMETER * — the scope is too large * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_FEATURE_EXPIRED * — a feature was found, but it’s expired * — HASP_TOO_MANY_USERS * — maximum concurrency exhausted * — HASP_OLD_LM * — LM is too old * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * — HASP_FEATURE_TYPE_NOT_IMPL * — a «prognum» feature id was passed to the function * — HASP_INV_SCOPE * — the scope is incorrect * — HASP_HARDWARE_MODIFIED * — HASP key incompatible with this hardware; HASP * key is locked to other hardware. * * sa hasp_login() * sa hasp_logout() */ hasp_status_t HASP_CALLCONV hasp_login_scope(hasp_feature_t feature_id, const char *scope, hasp_vendor_code_t vendor_code, hasp_handle_t *handle); /* ——————————————————————— */ /*! brief Logout. * * Logs out from a session and frees all allocated resources for the session. * * param handle — handle of session to log out from * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * * sa hasp_login() * sa hasp_login_scope() */ hasp_status_t HASP_CALLCONV hasp_logout(hasp_handle_t handle); /* ——————————————————————— */ /*! brief Encrypt a buffer. * * This function encrypts a buffer. * * param handle — session handle * param buffer — pointer to the buffer to be encrypted * param length — size in bytes of the buffer to be encrypted (16 bytes minimum) * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_TOO_SHORT * — the length of the data to be encrypted is too short * — HASP_ENC_NOT_SUPP * — encryption type not supported by the hardware * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_BROKEN_SESSION * — the HASP has been removed or the login session was cancelled * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_SCHAN_ERR * — secure channel communication error * — HASP_TIME_ERROR * — system time has been tampered * * sa hasp_decrypt() * * remark * If the encryption fails (e.g. key removed in-between) the data pointed to by buffer is unmodified. */ hasp_status_t HASP_CALLCONV hasp_encrypt(hasp_handle_t handle, void *buffer, hasp_size_t length); /* ——————————————————————— */ /*! brief Decrypt a buffer. * * This function decrypts a buffer. This is the reverse operation of the * hasp_encrypt() function. See ref hasp_encrypt() for more information. * * param handle — session handle * param buffer — pointer to the buffer to be decrypted * param length — size in bytes of the buffer to be decrypted (16 bytes minimum) * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_TOO_SHORT * — the length of the data to be decrypted is too short * — HASP_ENC_NOT_SUPP * — encryption type not supported by the hardware * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_BROKEN_SESSION * — the HASP has been removed or the login session was cancelled * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * * sa hasp_encrypt() * * remark * If the decryption fails (e.g. key removed in-between) the data pointed to by buffer is unmodified. */ hasp_status_t HASP_CALLCONV hasp_decrypt(hasp_handle_t handle, void *buffer, hasp_size_t length); /* ——————————————————————— */ /*! brief Read from key memory. * * This function is used to read from the key memory. * * param handle — session handle * param fileid — id of the file to read (memory descriptor) * param offset — position in the file * param length — number of bytes to read * param buffer — result of the read operation * * return status code. * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_INV_FILEID * — unknown fileid * — HASP_MEM_RANGE * — attempt to read beyond eom * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_BROKEN_SESSION * — the HASP has been removed or the login session was cancelled * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * * remark * Valid fileids are ref HASP_FILEID_LICENSE and ref HASP_FILEID_MAIN. * * sa hasp_write(), hasp_get_size() */ hasp_status_t HASP_CALLCONV hasp_read(hasp_handle_t handle, hasp_fileid_t fileid, hasp_size_t offset, hasp_size_t length, void *buffer); /* ——————————————————————— */ /*! brief Write to key memory. * * This function is used to write to the key memory. Depending on the provided * session handle (either logged into the default feature or any other feature), * write access to the FAS memory (ref HASP_FILEID_LICENSE) is not permitted. * * param handle — session handle * param fileid — id of the file to write * param offset — position in the file * param length — number of bytes to write * param buffer — what to write * * return status code. * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_INV_FILEID * — unknown fileid * — HASP_MEM_RANGE * — attempt to read beyond eom * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_BROKEN_SESSION * — the HASP has been removed or the login session was cancelled * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * * remark * Valid fileids are ref HASP_FILEID_LICENSE and ref HASP_FILEID_MAIN. * * sa hasp_read(), hasp_get_size() */ hasp_status_t HASP_CALLCONV hasp_write(hasp_handle_t handle, hasp_fileid_t fileid, hasp_size_t offset, hasp_size_t length, void *buffer); /* ——————————————————————— */ /*! brief Get memory size. * * This function is used to determine the memory size. * * param handle — session handle * param fileid — id of the file to query * param size — pointer to the resulting file size * * result status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_INV_FILEID * — unknown fileid * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_BROKEN_SESSION * — the HASP has been removed or the login session was cancelled * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * * remark * Valid fileids are ref HASP_FILEID_LICENSE and ref HASP_FILEID_MAIN. * * sa hasp_read(), hasp_write() */ hasp_status_t HASP_CALLCONV hasp_get_size(hasp_handle_t handle, hasp_fileid_t fileid, hasp_size_t *size); /* ——————————————————————— */ /*! brief Read current time from a time key. * * This function reads the current time from a time key. * The time will be returned in seconds since Jan-01-1970 0:00:00 GMT. * * remark The general purpose of this function is not related to * licensing, but to get reliable timestamps which are independent * from the system clock. * remark This request is only supported on locally accessed keys. Trying to * get the time from a remotely accessed key will return HASP_NO_TIME. * * param handle — session handle * param time — pointer to the actual time * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_NO_TIME * — RTC not available or remote access * — HASP_NO_BATTERY_POWER * — RTC consistency check failed, battery probably dead * — HASP_BROKEN_SESSION * — the HASP has been removed or the login session was cancelled * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * * sa hasp_datetime_to_hasptime(), hasp_hasptime_to_datetime() */ hasp_status_t HASP_CALLCONV hasp_get_rtc(hasp_handle_t handle, hasp_time_t *time); /* ——————————————————————— */ /*! @} */ /* ——————————————————————— */ /*! @defgroup hasp_classic Legacy HASP functionality for backward compatibility * * @{ */ /*! brief Legacy HASP4 compatible encryption function. * * param handle — session handle * param buffer — pointer to the buffer to be encrypted * param length — size in bytes of the buffer (8 bytes minimum) * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_TOO_SHORT * — the length of the data to be encrypted is too short * — HASP_ENC_NOT_SUPP * — encryption type not supported by the hardware * — HASP_HASP_NOT_FOUND * — no matching HASP found * * note The handle must have been obtained by calling ref hasp_login() with * a prognum feature id. * * sa hasp_legacy_decrypt(), hasp_encrypt(), hasp_decrypt() * * remark * If the encryption fails (e.g. key removed in-between) the data pointed to by buffer is undefined. */ hasp_status_t HASP_CALLCONV hasp_legacy_encrypt(hasp_handle_t handle, void *buffer, hasp_size_t length); /* ——————————————————————— */ /*! brief Legacy HASP4 compatible decryption function. * * param handle — session handle * param buffer — pointer to the buffer to be decrypted * param length — size in bytes of the buffer (8 bytes minimum) * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_TOO_SHORT * — the length of the data to be decrypted is too short * — HASP_ENC_NOT_SUPP * — encryption type not supported by the hardware * — HASP_HASP_NOT_FOUND * — no matching HASP found * * note The handle must have been obtained by calling ref hasp_login() with * a prognum feature id. * * sa hasp_legacy_encrypt(), hasp_decrypt(), hasp_encrypt() * * remark * If the decryption fails (e.g. key removed in-between) the data pointed to by buffer is undefined. */ hasp_status_t HASP_CALLCONV hasp_legacy_decrypt(hasp_handle_t handle, void *buffer, hasp_size_t length); /* ——————————————————————— */ /*! brief Write to HASP4 compatible real time clock * * param handle — session handle * param new_time — time value to be set * * remark This request is only supported on locally accessed keys. Trying to * set the time on a remotely accessed key will return HASP_NO_TIME. * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_NO_TIME * — RTC not available or access remote * * note The handle must have been obtained by calling ref hasp_login() with * a prognum feature id. * * sa hasp_get_rtc(), hasp_datetime_to_hasptime(), hasp_hasptime_to_datetime() */ hasp_status_t HASP_CALLCONV hasp_legacy_set_rtc(hasp_handle_t handle, hasp_time_t new_time); /* ——————————————————————— */ /*! brief Set the LM idle time. * * param handle — session handle * param idle_time — the idle time in minutes * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_HND * — invalid session handle * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_REQ_NOT_SUPP * — attempt to set the idle time for a local license * * note The handle must have been obtained by calling ref hasp_login() with * a prognum feature id. */ hasp_status_t HASP_CALLCONV hasp_legacy_set_idletime(hasp_handle_t handle, hasp_u16_t idle_time); /*! @} */ /*! @defgroup hasp_extended Extended HASP SRM API * * The extended API consists of functions which provide extended functionality. This * advanced functionality is sometimes necessary, and addresses the «advanced» user. * * @{ */ /*! brief Get information * * The function acquires information about all system components. The programmer can choose * the scope and output structure of the data. * The function has a «scope» parameter which defines the scope in an XML syntax. * Memory for the information is allocated by this function and has to be freed by the * corresponding hasp_freeinfo function. * This function is not used in a login context, so it can be used in a generic * «Monitor» application. * * Unknown tags are ignored (the function will be done), but there will be a warning as * a status code. * * param scope — XML definition of the information scope * param format — XML definition of the output data structure * param vendor_code — pointer to the vendor code * param info — pointer to the returned information (also an XML list) * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_FORMAT * — invalid format * — HASP_INV_SCOPE * — invalid query * — HASP_INSUF_MEM * — out of memory * — HASP_BROKEN_SESSION * — the HASP has been removed or the login session was cancelled * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_INV_VCODE * — invalid vendor code * — HASP_UNKNOWN_VCODE * — vendor code unknown to API library * * sa hasp_get_sessioninfo(), hasp_free() * */ hasp_status_t HASP_CALLCONV hasp_get_info (const char *scope, const char *format, hasp_vendor_code_t vendor_code, char **info); /*! brief Get information in a session context. * * Memory for the information is allocated by this function and has to be freed by the * ref hasp_free() function. * * param handle — session handle * param format — XML definition of the output data structure * param info — pointer to the returned information (XML list) * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_HASP_NOT_FOUND * — no matching HASP found * — HASP_INV_HND * — invalid session handle * — HASP_INV_FORMAT * — unrecognized format * — HASP_INSUF_MEM * — out of memory * — HASP_BROKEN_SESSION * — the HASP has been removed or the login session was cancelled * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_REMOTE_COMM_ERR * — connection to ELM is broken * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * * sa hasp_free() * sa HASP_UPDATEINFO, HASP_SESSIONINFO, HASP_KEYINFO * sa ref hasp_query_page */ hasp_status_t HASP_CALLCONV hasp_get_sessioninfo (hasp_handle_t handle, const char *format, char **info); /*! brief Free resources allocated by hasp_get_sessioninfo * * This function must be called to free the resources allocated by hasp_get_sessioninfo() * or to free the acknowledge data optionally returned from hasp_update(). * * param info — pointer to the resources to be freed * * sa hasp_get_sessioninfo(), hasp_update() */ void HASP_CALLCONV hasp_free (char *info); /*! brief Write an update. * * This function writes update information. The update blob contains all necessary data * to perform the update: Where to write (in which «container», e.g. dongle), the necessary * access data (vendor code) and of course the update itself. * If the update blob requested it, the function returns in an acknowledge blob, * which is signed/encrypted by the updated instance and contains a proof that this update * was successfully installed. Memory for the acknowledge blob is allocated by the API and has to be * freed by the programmer (see ref hasp_free()). * * param update_data — pointer to the complete update data. * param ack_data — pointer to a buffer to get the acknowledge data. * * return status code * — HASP_INV_UPDATE_DATA * — required XML tags not found * — contents in binary data missing or invalid * — HASP_INV_UPDATE_OBJ * — binary data doesn’t contain an update blob * — HASP_NO_ACK_SPACE * — acknowledge data requested by the update, but ack_data input parameter is NULL * — HASP_KEYID_NOT_FOUND * — key to be updated not found * — HASP_INV_UPDATE_NOTSUPP * — update not supported by the key * — HASP_INV_UPDATE_CNTR * — update counter at the wrong position * — HASP_TOO_MANY_KEYS * — update would apply to more than one HASP * — HASP_INV_SIG * — signature verification failed * — HASP_UNKNOWN_ALG * — unknown signature algorithm * — HASP_LOCAL_COMM_ERR * — HASP LM is not running * — HASP_DEVICE_ERR * — secure storage I/O error * — HASP_TIME_ERROR * — system time has been tampered * — HASP_HARDWARE_MODIFIED * — Conflict between HASP key data and hardware data; HASP * key is locked to other hardware * — HASP_UPDATE_TOO_OLD * — update was already installed * — HASP_UPDATE_TOO_NEW * — another update must be installed first * * sa hasp_free() * * remark Update via LM is not supported. */ hasp_status_t HASP_CALLCONV hasp_update(const char *update_data, char **ack_data); /*! @} */ /* ——————————————————————— */ /*! @defgroup hasp_util Utility functions * * @{ */ /* ——————————————————————— */ /*! brief Retrieve version and build number of HASP library * * param major_version — pointer to put major version number * param minor_version — pointer to put minor version number * param build_server — pointer to put build server id * param build_number — pointer to put build number * param vendor_code — pointer to the vendor code * * remark Any passed pointer can be NULL if its information is not needed. * */ hasp_status_t HASP_CALLCONV hasp_get_version(unsigned int *major_version, unsigned int *minor_version, unsigned int *build_server, unsigned int *build_number, hasp_vendor_code_t vendor_code); /*! @} */ /* ——————————————————————— */ /*! brief Convert broken up time into a time type * * param day — input day * param month — input month * param year — input year * param hour — input hour * param minute — input minute * param second — input second * param time — pointer to put result * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_TIME * — time outside of the supported range * * remark Times are in UTC. * * sa hasp_hasptime_to_datetime() */ hasp_status_t HASP_CALLCONV hasp_datetime_to_hasptime(unsigned int day, unsigned int month, unsigned int year, unsigned int hour, unsigned int minute, unsigned int second, hasp_time_t *time); /* ——————————————————————— */ /*! brief Convert time type into broken up time * * param time — pointer to put result * param day — pointer to day * param month — pointer to month * param year — pointer to year * param hour — pointer to hour * param minute — pointer to minute * param second — pointer to second * * return status code * — HASP_STATUS_OK * — the request completed successfully * — HASP_INV_TIME * — time outside of the supported range * * remark Times are in UTC. * * sa hasp_datetime_to_hasptime() */ hasp_status_t HASP_CALLCONV hasp_hasptime_to_datetime(hasp_time_t time, unsigned int *day, unsigned int *month, unsigned int *year, unsigned int *hour, unsigned int *minute, unsigned int *second); /*! @} */ /*! page hasp_features Feature ID convention section FeatIntr Feature ID introduction Feature ids are 32bits wide. If the upper 16 bit contain the value indicated by ref HASP_PROGNUM_FEATURETYPE, the feature defines a prognum feature.n For prognum features there are some options encoded in the feature id. These include — ref HASP_PROGNUM_OPT_NO_LOCALn Don’t search for a license locally. «Remote-only»nn — ref HASP_PROGNUM_OPT_NO_REMOTEn Don’t search for a license on the network. «Local-only»nn — ref HASP_PROGNUM_OPT_PROCESSn In case, a license is found in the network, count license usage per process instead of per workstation.nn — ref HASP_PROGNUM_OPT_TSn Don’t detect whether the program is running on a remote screen on a terminal server.nn — ref HASP_PROGNUM_OPT_CLASSICn The API by default only searches for HASP HL keys. When this option is set, it also searches for HASP3/HASP4 keys.nn */ /*! page hasp_scope section ScopePage hasp_login_scope scope (tbd.) */ /*! page hasp_query_page hasp_get_sessioninfo format and info section QueryPage hasp_get_sessioninfo format and info Calling hasp_get_sessioninfo() with ref HASP_UPDATEINFO format will return something like this: verbatim <?xml version=»1.0″ encoding=»UTF-8″?> <hasp_info> <c2v> YYIBlIADY3R2oQaABEAwulCiCYABaoEBBIIBAKOBxoABAIGBwD2sfFj8UKuDvNWH9 LhfRKDzUbLCAi6E9mN8ea7EclwOl9VeLMDuLvfsEvkor2igmwxg/wWs6HCuypEFi6 V/FkI4EUmQNmcKSIY302s9CzHP7aCrG7QKvzArVq25Nc7UxIQJ4kZJm1oWiw3zZJq UY+G0EleETkPZ8n2uDfMauBpdWhW0R35rHlRM4wiYCZzaelpRtDX36HDh1caqfpaL mUnwWXRz0+tLs+Dvd+kLmvcQ6jWJJb4r2rxywG2IW1WTjIWBsI+h0/UgaIhG1J+9R EQ1SrMx3YQ2bpdlK3FluZVDayW9okv7idxKJS4zGG+4UOccpKT4aWJi9cR0vdm4s/ J6fUNbhK522x/gdvR51a6ll46GpVn2HjD0ZpAgCeu6xAIwHJ7Kc6tjeRfxYX9YksE aB9JoV/uaPTHnbu2AgQmd0r09p0zmXgD4Kuk8EtTs1GoBbY7WF3qHJsj1Iz1ZeAdA rdNOYKsOgA/q1tuLLR7O0dag </c2v> </hasp_info> endverbatim Calling hasp_get_sessioninfo() with ref HASP_SESSIONINFO format will return something like this: verbatim <hasp_info> <feature> <featureid>4294905856</featureid> <maxlogins>5</maxlogins> <currentlogins>1</currentlogins> <activations>unlimited</activations> </feature> </hasp_info> endverbatim In case of a expiring license on a time enabled key (prognum <= 8), instead of the remaining activations the expiration date will be returned: verbatim <hasp_info> <feature> <featureid>4294905857</featureid> <expirationdate>1052919239</expirationdate> </feature> </hasp_info> endverbatim For locally accessed keys there is no p maxlogins and p currentlogins field. Calling hasp_get_sessioninfo() with ref HASP_KEYINFO format will return something like this for a locally accessed key: verbatim <?xml version=»1.0″ encoding=»UTF-8″?> <hasp_info> <keyspec> <keycaps> <hasp4/> <aes/> <newintf/> </keycaps> <hasp> <haspid>12345</haspid> <nethasptype>0</nethasptype> <memoryinfo> <name>»Main»</name> <fileid>65520</fileid> <size>48</size> </memoryinfo> <memoryinfo> <name>»License»</name> <fileid>65522</fileid> <size>80</size> </memoryinfo> </hasp> <port> <type>»USB»</type> <address>1</address> </port> </keyspec> </hasp_info> endverbatim Calling hasp_get_sessioninfo() with ref HASP_KEYINFO format will return something like this for a remotely accessed key: verbatim <?xml version=»1.0″ encoding=»UTF-8″?> <hasp_info> <keyspec> <keycaps> <hasp4/> </keycaps> <hasp> <haspid>782062012</haspid> <nethasptype>5</nethasptype> <memoryinfo> <name>»Main»</name> <fileid>65520</fileid> <size>432</size> </memoryinfo> <memoryinfo> <name>»License»</name> <fileid>65522</fileid> <size>448</size> </memoryinfo> </hasp> <serveraddress> <protocol>»IP»</protocol> <address>»10.20.3.10″</address> </serveraddress> </keyspec> </hasp_info> endverbatim A p nethasptype of 0 means no net HASP. possible p port types: — «USB» — USB port — «parallel» — Parallel port p keycaps flags: — hasp4 — support HASP4 compatible encryption — aes — support AES encryption — rtc — key has real time clock chip — newintf — supports new access interface */ #ifdef __cplusplus } #endif #endif /* #ifndef __HASP_API_H__ */

Понравилась статья? Поделить с друзьями:

Читайте также:

  • Hasp installation ended prematurely because of an error
  • Hasp hl protection system unknown error h0033
  • Hasp hl error 1068
  • Hasp error when starting
  • Hasp error 1075

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии