Определения типов | Функции
Файл p11.h

Заголовочный файл с описанием функций и структур для управления сессиями и ключами. Подробнее...

#include <openssl/evp.h>
#include <cryptoki.h>
#include "mutex.h"

Определения типов

typedef struct rt_eng_p11_session_st rt_eng_p11_session
 Описатель обернутой сессии
 

Функции

int rt_eng_md_add1_p11_session (EVP_MD_CTX *ctx, rt_eng_p11_session *session)
 Функция добавления в контекст хэширования PKCS11 сессии. Если в контекст была добавлена хотя бы одна сессия, хэш будет посчитан на токене. При добавлении нескольких сессий в один контекст хэш будет посчитан для каждой из них. При хэшировании на токене данные накапливаются в буфере до вызова final. Подробнее...
 
int rt_eng_p11_key_pair_invalidate (EVP_PKEY *pkey)
 Данная функция делает описатель ключевой пары недействительным. При использовании ключевой пары, находящейся на токене, могут возникать ситуации, при которых описатель объектов на токене становится более не актуальным, например при сбросе прав доступа к объектам на токене или при физическом удаление ключа из памяти токена. Во избежании неопределённого поведения описатель ключевой пары необходимо делать недействительным. Подробнее...
 
EVP_PKEY * rt_eng_p11_key_pair_wrap (rt_eng_p11_session *session, CK_OBJECT_HANDLE private_key, CK_OBJECT_HANDLE public_key)
 Получение описателя ключевой пары. Подробнее...
 
void rt_eng_p11_session_free (rt_eng_p11_session *session)
 Функция удаления сессии.
 
int rt_eng_p11_session_lock (rt_eng_p11_session *session)
 Функция блокирования сессии. Подробнее...
 
int rt_eng_p11_session_unlock (rt_eng_p11_session *session)
 Функция освобождения сессии. Подробнее...
 
int rt_eng_p11_session_up_ref (rt_eng_p11_session *session)
 Функция увеличения счётчика ссылок. Подробнее...
 
rt_eng_p11_sessionrt_eng_p11_session_wrap (CK_FUNCTION_LIST_PTR function_list, CK_SESSION_HANDLE handle, int hold, const rt_eng_mutex *mutex)
 Функция создания сессии. Подробнее...
 

Функции

◆ rt_eng_md_add1_p11_session()

int rt_eng_md_add1_p11_session ( EVP_MD_CTX *  ctx,
rt_eng_p11_session session 
)
Аргументы
ctx– контекст хэширования.
session– описатель обёрнутой сессии.
Возвращает
1 в случае успеха, 0 в случае ошибки.

◆ rt_eng_p11_key_pair_invalidate()

int rt_eng_p11_key_pair_invalidate ( EVP_PKEY *  pkey)
Аргументы
pkey– описатель ключевой пары.
Возвращает
1 в случае успеха, 0 в случае ошибки.

◆ rt_eng_p11_key_pair_wrap()

EVP_PKEY * rt_eng_p11_key_pair_wrap ( rt_eng_p11_session session,
CK_OBJECT_HANDLE  private_key,
CK_OBJECT_HANDLE  public_key 
)
Аргументы
session– описатель обёрнутой сессии.
private_key(необязательный) – описатель закрытого ключа, полученный от rtpkcs11ecp. Если для работы приложения отсутствует необходимость использовать закрытый ключ, то следует установить данный параметр в значение CK_INVALID_HANDLE.
public_key– описатель открытого ключа, полученный от rtpkcs11ecp.
Возвращает
описатель ключевой пары в случае успеха, NULL в случае ошибки.

◆ rt_eng_p11_session_lock()

int rt_eng_p11_session_lock ( rt_eng_p11_session session)
Возвращает
1 в случае успеха, 0 в случае ошибки.

◆ rt_eng_p11_session_unlock()

int rt_eng_p11_session_unlock ( rt_eng_p11_session session)
Возвращает
1 в случае успеха, 0 в случае ошибки.

◆ rt_eng_p11_session_up_ref()

int rt_eng_p11_session_up_ref ( rt_eng_p11_session session)
Возвращает
1 в случае успеха, 0 в случае ошибки.

◆ rt_eng_p11_session_wrap()

rt_eng_p11_session * rt_eng_p11_session_wrap ( CK_FUNCTION_LIST_PTR  function_list,
CK_SESSION_HANDLE  handle,
int  hold,
const rt_eng_mutex mutex 
)
Аргументы
function_list– список функций, полученных от rtpkcs11ecp.
handle– описатель сессии, полученной от rtpkcs11ecp.
hold– параметр передачи прав управления сессией. При его равенстве 1, сессия будет закрыта средствами OpenSSL при удалении описателя. При его равенстве 0, сессия должна быть закрыта пользователем самостоятельно.
mutex– внешний мьютекс для управления сессией. Для использования внутреннего мьютекса необходимо передать NULL.
Возвращает
описатель обёрнутой сессии в случае успеха, NULL в случае ошибки.