Служебные функции

C_Initialize

C_Initialize(CK_VOID_PTR pInitArgs)
Параметры:

Инициализирует Cryptoki-библиотеку. pInitArgs либо принимает значение NULL_PTR, либо содержит указатель на структуру типа CK_C_INITIALIZE_ARGS.

Примечание

При разработке под ОС Android функция C_Initialize обладает следующими особенностями:

  • её можно вызывать без аргумента;
  • в случае вызова этой функции с аргументом она его игнорирует;
  • действует аналогично вызову с аргументом NULL_PTR.

Примечание

Библиотека Cryptoki не поддерживает приложения, использующие многопотоковый доступ, и не реагирует на значения флагов CKF_OS_LOCKING_OK, CKF_LIBRARY_CANT_CREATE_OS_THREADS и следующих параметров структуры CK_C_INITIALIZE_ARGS:

  • CreateMutex,
  • DestroyMutex,
  • LockMutex,
  • UnlockMutex.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CANT_LOCK – невозможно использовать разделение ресурсов.

    Примечание

    Данный аргумент возвращается только функцией C_Initialize.

  • CKR_CRYPTOKI_ALREADY_INITIALIZED – библиотека Cryptoki уже была инициализирована вызовом C_Initialize и не была закрыта соответствующим вызовом C_Finalize().

    Примечание

    Данный аргумент возвращается только функцией C_Initialize.

  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.

Совет

Полный список ошибок см. в приложении.

C_Finalize

C_Finalize(CK_VOID_PTR pReserved)
Параметры:
  • pReserved (out) – данный параметр предназначен для последующих версий PKCS #11. Должен содержать значение NULL_PTR.

C_Finalize вызывается для окончания сеанса использования приложением Cryptoki-библиотеки. При выполнении освобождает память, выделенную другим функциям (аналогично вызову функции freeBuffer() для каждого выделенного буфера памяти). Эта функция должна быть последним вызовом в сеансе.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы. Возвращается в случае, если pReserved не равен NULL_PTR.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека Cryptoki еще не была инициализирована (см. C_Initialize()).
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.

Совет

Полный список ошибок см. в приложении.

C_GetInfo

C_GetInfo(CK_INFO_PTR pInfo)
Параметры:
  • pInfo – указатель на структуру, в которую функция записывает сведения о библиотеке Cryptoki.

Возвращает общую информацию о библиотеке Cryptoki, которая записывается в структуру типа CK_INFO.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_CRYPTOKI_NOT_INITIALIZED – функция не может быть выполнена, т.к. библиотека еще не была инициализирована (см. C_Initialize()).
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.

Совет

Полный список ошибок см. в приложении.

C_GetFunctionList

C_GetFunctionList(CK_FUNCTION_LIST_PTR_PTR ppFunctionList)
Параметры:
  • ppFunctionList (out) – указатель на структуру типа CK_FUNCTION_LIST, которая содержит указатели на все методы Cryptoki API.

Примечание

Это единственная функция Cryptoki, которая может быть вызвана перед вызовом C_Initialize().

Метод для получения указателя на список указателей на все функции Cryptoki-библиотеки. ppFunctionList содержит указатель на структуру CK_FUNCTION_LIST библиотеки, которая в свою очередь содержит указатели на все методы Cryptoki API.

Запускается в режимах

Результат:
  • CKR_ARGUMENTS_BAD – недопустимые аргументы.
  • CKR_FUNCTION_FAILED – выполнение функции было прервано или она не может быть выполнена.
  • CKR_GENERAL_ERROR – общий сбой при работе с библиотекой.
  • CKR_HOST_MEMORY – компьютер, на котором запущена библиотека, не имеет достаточно памяти для выполнения функции.
  • CKR_OK – функция выполнена успешно.

Совет

Полный список ошибок см. в приложении.