Функции для передачи данных по протоколу TLS

TLSEstablishConnectionBegin

TLSEstablishConnectionBegin(CK_VOID_PTR_PTR pContext, CK_SESSION_HANDLE session, CK_OBJECT_HANDLE certificate, CK_OBJECT_HANDLE privateKey, CK_BYTE_PTR data, CK_ULONG dataLength, CK_BYTE_PTR dataOut, CK_ULONG_PTR dataOutLength, CK_BBOOL serverMode)
Параметры:
  • pContext (in) – контекст соедиения. После окончания работы с контекстом необходимо освободить его, вызвав функцию TLSCloseConnection().
  • session (in) – PKCS#11 сессия.
  • certificate (in) – сертификат
  • privateKey (in) – закрытый ключ.
  • data (in) – данные полученные от другой стороны (NULL_PTR в случае работы в режиме TLS клиента).
  • dataLength (in) – длина данных, полученных от другой стороны (0 в случае работы в режиме TLS клиента).
  • dataOut (in) – данные для передачи другой стороне.
  • dataOutLength (in) – длина данных для передачи другой стороне (при вызове значение, на которое указывает указатель, должно содержать доступную длину буфера dataOut)
  • serverMode – устанавливать соединение в режиме TLS сервера, если передано значение параметра CK_TRUE; иначе, если значение CK_FALSE - в режиме TLS клиента.

Начать установку TLS соединения. Функция возвращает код ``CKR_NEED_MORE_DATA, если установка соединения со стороны сервера не завершена, и требуются дополнительные данные от сервера.

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

Результат:Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11.

Совет

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

TLSEstablishConnectionContinue

TLSEstablishConnectionContinue(CK_VOID_PTR pContext, CK_BYTE_PTR dataIn, CK_ULONG dataInLength, CK_BYTE_PTR dataOut, CK_ULONG_PTR dataOutLength, CK_BBOOL serverMode)
Параметры:
  • pContext (in) – контекст соединения.
  • dataIn (in) – данные полученные от другой стороны.
  • dataInLength (in) – длина данных, полученных от другой стороны.
  • dataOut (in) – данные для передачи другой стороне.
  • dataOutLength (in) – длина данных для передачи другой стороне (при вызове значение на которое указывает указатель должно содержать доступную длину буфера dataOut).
  • serverMode – устанавливать соединение в режиме TLS сервера, если передано значение параметра CK_TRUE; иначе, если значение CK_FALSE - в режиме TLS клиента.

Продолжить установку TLS соединения. Функция может возвращать код CKR_NEED_MORE_DATA, если установка соединения со стороны сервера не завершена, и требуются дополнительные данные от сервера.

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

Результат:Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11.

Совет

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

TLSGetPeerCertificate

TLSGetPeerCertificate(CK_VOID_PTR pContext, CK_BYTE_PTR certificate, CK_ULONG_PTR certificateLength)
Параметры:
  • pContext (in) – контекст соединения.
  • certificate (in/out) – указатель на массив байт с полученным сертификатом сервера.
  • certificateLength (in/out) – длина сертификата сервера в байтах (при вызове значение, на которое указывает указатель, должно содержать доступную длину буфера dataOut).

Получить сертификат сервера (peer-а). Функция запрашивает сертификат сервера и возвращает указатель на массив с записанным туда сертификатом. Функция вызывается только после успешного установления соединения с сервером.

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

Результат:Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11.

Совет

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

TLSGetPeerPublicKeyValue

TLSGetPeerPublicKeyValue(CK_VOID_PTR pContext, CK_BYTE_PTR publicKeyValue, CK_ULONG_PTR publicKeyValueLenght)
Параметры:
  • pContext (in) – контекст соединения.
  • publicKeyValue (in/out) – указатель на массив байт с полученным открытым ключом сервера.
  • publicKeyValueLenght (in/out) – длина открытого ключа сервера (при вызове значение, на которое указывает указатель, должно содержать доступную длину буфера dataOut).

Получить значение открытого ключа сервера (peer-а). Функция запрашивает открытый ключ сервера и возвращает указатель на массив с записанным туда ключом. Функция вызывается только после успешного установления соединения с сервером.

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

Результат:Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11.

Совет

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

TLSEncodeData

TLSEncodeData(CK_VOID_PTR pContext, CK_BYTE_PTR dataIn, CK_ULONG dataInLength, CK_BYTE_PTR dataOut, CK_ULONG_PTR dataOutLength)
Параметры:
  • pContext (in) – контекст соединения.
  • dataIn (in) – данные для передачи на сервер.
  • dataInLength (in) – длина данных для передачи.
  • dataOut (out) – закодированные данные для передачи другой стороне. Не меньше 1 и не больше 0x4000 (16Kb).
  • dataOutLength (out) – длина закодированных данных для передачи другой стороне (при вызове значение, на которое указывает указатель, должно содержать доступную длину буфера dataOut).

Функция кодирует данные для передачи на сервер.

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

Результат:Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11.

Совет

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

TLSDecodeData

TLSDecodeData(CK_VOID_PTR pContext, CK_BYTE_PTR dataIn, CK_ULONG dataInLength, CK_BYTE_PTR dataOut, CK_ULONG_PTR dataOutLength)
Параметры:
  • pContext (in) – контекст соединения.
  • dataIn (in) – данные, полученные от сервера.
  • dataInLength (in) – длина данных от сервера.
  • dataOut (out) – данные для передачи другой стороне. Не меньше 1 и не больше 0x4000 (16Kb).
  • dataOutLength (out) – длина данных для передачи другой стороне (при вызове значение, на которое указывает указатель, должно содержать доступную длину буфера dataOut).

Функция раскодирует данные, пришедшие от сервера.

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

Результат:Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11.

Совет

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

TLSCloseConnection

TLSCloseConnection(CK_VOID_PTR pContext)
Параметры:
  • pContext (in) – контекст соединения.

Закрыть TLS соединение.

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

Результат:Функция возвращает стандартные ошибки, предусмотренные спецификацией PKCS #11.

Совет

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