КриптоПро CSP  

Структуры данных

Предназначены для взаимодействия с программами пользователя, непосредственно использующими "КриптоПро CSP 5.0".

СтруктурыОписание
_PUBLICKEYSTRUCСтруктура PUBLICKEYSTRUC, также известная, как структура BLOBHEADER, указывает тип ключевого блоба и алгоритм ключа, находящегося в нём. Экземпляр этой структуры находится в начале поля pbData каждого ключевого блоба.
_PROV_PP_VERSION_EXСтруктура описывает версию СКЗИ, ПКЗИ, тип сборки, аппаратную архитектуру и ОС, для которой предназначен продукт.
_SELFTEST_HEADERЗаголовок результата встроенного тестирования и контроля целостности СКЗИ.
_CPU_INFOСтруктура описывает время работы (тики) процессора в простое, режиме ядра, пользовательском режиме, Nice режиме, и полное время работы процессора.
_SELFTEST_CHECKSUM_ELEMENTРезультат контроля целостности модуля.
_PROV_PP_SELFTESTРезультат встроенного тестирования и контроля целостности СКЗИ.
_CRYPT_SIMPLEBLOB_HEADERСтруктура CRYPT_SIMPLEBLOB_HEADER является расширением структуры BLOBHEADER и находится в начале поля pbData ключевого блоба типа SIMPLEBLOB для ключей "КриптоПро CSP".
_CRYPT_SIMPLEBLOBПсевдоструктура (т. е. недоопределенная структура) CRYPT_SIMPLEBLOB полностью описывает ключевой блоб типа SIMPLEBLOB для ключей "КриптоПро CSP".
_CRYPT_SIMPLEBLOB_512Псевдоструктура (т. е. недоопределенная структура) CRYPT_SIMPLEBLOB полностью описывает ключевой блоб типа SIMPLEBLOB для ключей "КриптоПро CSP".
_CRYPT_SIMPLEBLOB_KEXP15Псевдоструктура (т. е. недоопределенная структура) CRYPT_SIMPLEBLOB_KEXP15 полностью описывает ключевой блоб типа SIMPLEBLOB при использовании алгоритма KEXP15 для экспорта ключей "КриптоПро CSP". В поле tSimpleBlobHeader.BlobHeader.bVersion должна быть указана константа KEXP15_BLOB_VERSION. В поле tSimpleBlobHeader.Magic должен быть указан KEXP15_MAGIC.
_CRYPT_OPAQUEBLOBПсевдоструктура (т. е. недоопределенная структура) CRYPT_OPAQUEBLOB полностью описывает ключевой блоб типа OPAQUEKEYLOB для ключей "КриптоПро CSP".
_CRYPT_PUBKEYPARAMСтруктура CRYPT_PUBKEYPARAM содержит признак ключей по ГОСТ Р 34.10-2001.
_CRYPT_PUBKEY_INFO_HEADERСтруктура CRYPT_PUBKEY_INFO_HEADER содержит заголовок блоба открытого ключа или блоба ключевой пары по ГОСТ Р 34.10-2001 или ГОСТ Р 34.10-2012.
_CRYPT_PUBLICKEYBLOBПсевдоструктура CRYPT_PUBLICKEYBLOB полностью описывает ключевой блоб типа PUBLICKEYBLOB для ключей "КриптоПро CSP".
_CRYPT_PRIVATEKEYBLOBПсевдоструктура CRYPT_PRIVATEKEYBLOB полностью описывает ключевой блоб типа PRIVATEKEYBLOB для ключей "КриптоПро CSP".
_CRYPT_DIVERSBLOBHEADERСтруктура CRYPT_DIVERSBLOBHEADER описывает блоб типа DIVERSBLOB для процедуры диверсификации ключей КриптоПро CSP.
_CRYPT_DIVERSBLOBСтруктура CRYPT_DIVERSBLOB описывает блоб типа DIVERSBLOB для процедуры диверсификации ключей КриптоПро CSP.
_CRYPT_KDF_TREE_DIVERSBLOB_HEADERСтруктура CRYPT_KDF_TREE_DIVERSBLOB_HEADER описывает блоб типа KDF_TREE_DIVERSBLOB для процедуры диверсификации КриптоПро CSP, предусматривающей возможность выработки нескольких ключей.
_CRYPT_KDF_TREE_DIVERS_INFOСтруктура CRYPT_KDF_TREE_DIVERS_INFO содержит параметры R, L, длины Seed и Label для процедуры диверсификации КриптоПро CSP, предусматривающей возможность выработки нескольких ключей.
_CRYPT_KDF_TREE_DIVERSBLOBСтруктура CRYPT_KDF_TREE_DIVERSBLOB описывает блоб типа KDF_TREE_DIVERSBLOB для процедуры диверсификации КриптоПро CSP, предусматривающей возможность выработки нескольких ключей.
_CRYPT_KEYSET_INFOСтруктура CRYPT_KEYSET_INFO содержит информацию о ключе, сохраненном в контейнере. key_spec - константа, по которой может быть получен хендл ключа функцией CPGetUserKey . alg_id - идентификатор алгоритма ключа.
_CRYPT_KEYSET_ENUMСтруктура CRYPT_KEYSET_ENUM содержит информацию обо всех ключах, сохраненных в контейнере. count принимает значение от 0 до 2, в зависимости от числа постоянных ключей в контейнере. В массиве описываются присутствующие в контейнере постоянные ключи.
_CRYPT_KEY_EXHAUSTION_INFOСтруктура CRYPT_KEY_EXHAUSTION_INFO содержит информацию о текущих значениях параметров нагрузки на ключ КриптоПро CSP и предусматривает их изменение в большую сторону с помощью вызова CPSetKeyParam.
CRYPT_READER_WND_PARAMСтруктура для передачи параметров от оконного интерфейса.
CRYPT_PIN_WND_SOURCE_PARAMСтруктура передачи информации из диалога ввода пароля для предъявления или смены пароля.
CRYPT_PIN_WND_PARAMСтруктура передачи информации из диалога ввода пароля.
_CRYPT_PIN_NK_PARAMСтруктура передачи информации для слияния частей контейнера.
_CRYPT_PIN_PARAMСтруктура передачи информации для: 1) смены пароля контейнера, 2) указания способа доступа к контейнеру (имя, handle, пароль), на ключе которого зашифровано содержимое другого контейнера.
_CRYPT_NK_INFO_PARAMСтруктура получения информации о контейнере разделенного на части.
_CRYPT_PASSWD_INFO_PARAMСтруктура для получения информации о пароле на контейнер.
_CRYPT_PIN_INFO_SOURCEСтруктура для получения информации о пароле на контейнер.
_CRYPT_PIN_INFOСтруктура для получения информации о пароле на контейнер.
_CRYPT_FKC_EKE_AUTH_INFO_PARAMСтруктура получения информации о пароле контейнера для аутентификации по EKE.
CRYPT_WND_INFO_PARAMструктура для получения счетчиков аутентификаций.
_CRYPT_FKC_PIN_INFO_SOURCEСтруктура для получения информации о пароле на контейнер.
_CRYPT_FKC_PIN_INFOСтруктура для получения информации о пароле на контейнер.
CRYPT_AUTH_INFO_AUTHСтруктура для получения информации об аутентификации.
CRYPT_AUTH_INFOСтруктура для получения информации об аутентификациях в контексте.
_CRYPT_FKC_DH_CHECKСтруктура для получения статуса проверки открытого ключа. Получает и устанавливает параметр "проверка открытого ключа в операции Диффи-Хеллмана" для провайдеров FKC ( PP_FKC_DH_CHECK ).
_CRYPT_CACHE_SIZEСтруктура для получения и установки настроек кэширования контейнеров.
_CRYPT_CARRIER_TYPESСтруктура для получения и установки настроек поддержки разных типов носителей.
_CRYPT_ENUMREADER_INFOБлоб с информацией о считывателе, представляющий собой сериализованную псевдоструктуру.
_CRYPT_ENUMREADER_INFO_MEDIAБлоб с информацией о режиме работы / апплете, представляющий собой сериализованную псевдоструктуру.
_CRYPT_ENUMRANDOMS_INFOБлоб с информацией о ДСЧ, представляющий собой сериализованную псевдоструктуру.
_CRYPT_HASH_BLOB_EXСтруктура передачи информации для получения и установки разделённого значения параметра R для ЭЦП на базе функционального ключевого носителя.
_CRYPT_KEY_PERIODСтруктура для задания периодов действия ключей во вновь создаваемом контейнере.
_CONTAINER_EXTENSIONБлоб с сериализованной псевдоструктурой с расширением.
_VTABLEPROVSTRUCСтруктура VTABLEPROVSTRUC содержит указатели на callback функции, которые могут быть использованы функциями криптопровайдера (CSP).
Определения типовОписание
CPC_Kernel_Fpu_Begin_Callback Описание функции захвата FPU в режиме ядра ОС.
CPC_Kernel_Fpu_End_Callback Описание функции освобождения FPU в режиме ядра ОС.
МакросыОписание
CRYPT_MODE_CBCSTRICT Режим блочного шифрования с обратной связью на базе ГОСТ 28147-89, шифр-текст блока всегда является IV для следующего.
CRYPT_MODE_CBCRFC4357 Режим блочного шифрования с обратной связью на базе ГОСТ 28147-89, согласно RFC 4357.
CRYPT_MODE_CNT Режим шифрования "гаммированием" по ГОСТ 28147-89.
CRYPT_MODE_CTR Режим шифрования "гаммирование" по ГОСТ Р 34.13-2015.
CRYPT_MODE_MGM Режим аутентифицированного шифрования MGM по draft-smyshlyaev-mgm-02.
CRYPT_MODE_GCM Режим аутентифицированного шифрования GCM.
CRYPT_MODE_OMAC_CTR Режим аутентифицированного шифрования OMAC CTR.
CRYPT_MODE_WRAP Режим шифрования для упаковки AES-ключей по RFC-3394.
CRYPT_MODE_WRAP_PAD Режим шифрования для упаковки AES-ключей с паддингом по RFC-5649.
SECRET_KEY_LEN Длина в байтах ключа ГОСТ 28147-89 и закрытых ключей ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001.
G28147_KEYLEN Длина в байтах ключа ГОСТ 28147-89.
EXPORT_IMIT_SIZE Длина в байтах имитовставки при импорте/экспорте.
CHECK_VALUE_SIZE Длина в байтах контрольной величины ключа при импорте и получении параметра ключа.
SEANCE_VECTOR_LEN Длина в байтах вектора инициализации алгоритма.
MAX_CONTAINER_NAME_LEN Максимальная разрешённая длина имени ключевого контейнера (без терминального символа).
MAX_FOLDER_NAME_LEN Максимальная разрешённая длина имени папки ключевого контейнера (без терминального символа).
MAX_UNIQUE_LEN Максимальная разрешённая длина уникального имени носителя (без терминального символа).
MAX_MEDIA_TYPE_NAME_LEN Максимальная разрешённая длина типа носителя (без терминального символа).
MAX_READER_NAME_LEN Максимальная разрешённая длина имени считывателя (без терминального символа).
CONTAINER_CRC_LEN Длина CRC.
MAX_INPUT_CONTAINER_STRING_LEN Максимальная разрешённая длина входной строки, определяющей контейнер, в CryptAcquireContext (без терминального символа).
GR3410_1_MAGIC Признак ключей ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001.
G28147_MAGIC Признак ключей ГОСТ 28147-89 и мастер ключей TLS.
DIVERS_MAGIC Признак ключевого блоба функции диверсификации ключа.
KEXP15_MAGIC Признак ключевого блоба алгоритма KExp15.
BLOB_VERSION Текущее значение версии ключевого блоба.
KEXP15_BLOB_VERSION Текущее значение версии ключевого блоба KExp15.
RSA1_MAGIC Признак ключевого блоба RSA.
CP_CRYPT_PUBLICKEY_FROM_CERT Флаг, устанавливающий признак получения открытого ключа из сертификата.
VER_TYPE_DEBUG Отладочная версия дистрибутива.
VER_TYPE_RELEASE Релизная версия дистрибутива.
VER_ARCH_IA32 Архитектура IA32.
VER_ARCH_IA64 Архитектура IA64.
VER_ARCH_SPARC32 Архитектура Sparc32.
VER_ARCH_SPARC64 Архитектура Sparc64.
VER_ARCH_AMD64 Архитектура AMD64.
VER_ARCH_ARM Архитектура ARM.
VER_ARCH_PPC32 Архитектура PowerPC32.
VER_ARCH_PPC64 Архитектура PowerPC64.
VER_ARCH_ARM64 Архитектура ARM64.
VER_ARCH_MIPS32 Архитектура MIPS32.
VER_ARCH_E2K32 Архитектура Эльбрус 32.
VER_ARCH_E2K64 Архитектура Эльбрус 64.
VER_OS_WINDOWS ОС Windows.
VER_OS_SOLARIS ОС Solaris.
VER_OS_FREEBSD ОС FreeBSD.
VER_OS_LINUX ОС Linux.
VER_OS_AIX ОС AIX.
VER_OS_DARWIN ОС Mac OS X.
VER_OS_IOS Apple iOS.
VER_OS_ANDROID ANDROID OS.
VER_OS_BITVISOR BITVISOR_OS.
VER_OS_UCLIBC UCLIBC runtime.
CRYPT_KEYSET_ENUM_FLAG Флаг CRYPT_KEYSET_ENUM_FLAG передается в функцию CPGetKeyParam с параметром PP_CONTAINER_STATUS. Если получен такой запрос, возвращается структура CRYPT_KEYSET_ENUM , в которой перечислены присутствующие в контейнере постоянные ключи. Получение параметра не требует аутентификации.
CRYPT_NK_IDENTIFIER_LEN Длина идентификатора разбиения виртуальнгого контейнера.
CRYPT_NK_PART_INDEX Флаг, указывающий, что во флагах CPSetProvParam передается индекс части.
ПеречисленияОписание
_CRYPT_FKC_DH_CHECK_VAL Значения параметра "проверка открытого ключа в операции Диффи-Хеллмана". При установке параметра передается переменной типа DWORD.
_TContainerParamType Структура для получения и установки различных открытых параметров ключевого контейнера. Параметры TContainerParamType_AuthServer, TContainerParamType_SignServer, TContainerParamType_OAuth2_AuthToken и TContainerParamType_OAuth2_IdToken передаются в виде нуль-терминированных ASCII-строк. TContainerParamType_CertificateID в виде DWORD.