JC_NID_OBJECT
Указатель на структуру JC_NID_OBJECT.
typedef JC_NID_OBJECT CK_PTR JC_NID_OBJECT_PTR;
JC_NID_OBJECT
Описатель объектов: OID алгоритма, OID набора параметров или RDN субъекта.
typedef struct JC_NID_OBJECT {
CK_LONG nid;
CK_CHAR_PTR shortName;
CK_CHAR_PTR longName;
CK_CHAR_PTR value;
} JC_NID_OBJECT;
CK_LONG nid
Идентификатор объекта.
CK_CHAR_PTR shortName
Короткое имя объекта.
CK_CHAR_PTR longName
Длинное имя объекта.
CK_CHAR_PTR value
Значение объекта в DER формате.
JC_CMS_RECIPIENT_MATERIAL
typedef struct JC_CMS_RECIPIENT_MATERIAL{ CK_LONG recipientInfoType; CK_LONG recipientIdentity; CK_ULONG keyWrapAlgorithm; CK_BYTE_PTR certificate; CK_ULONG certificateLength; CK_BYTE_PTR keyTransport; CK_ULONG keyTransportLength;} JC_CMS_RECIPIENT_MATERIAL;typedef JC_CMS_RECIPIENT_MATERIAL CK_PTR JC_CMS_RECIPIENT_MATERIAL_PTR;Ключевой материал получателя
CK_LONG recipientInfoType
Определяет способ формирования объекта ключевой информации получателя. Возможные значения:
JC_CMS_KTRI_RECIPIENT_INFO(0) – по передаче (KTRI);JC_CMS_KARI_RECIPIENT_INFO(1) – по согласованию (KARI).
CK_LONG recipientIdentity
Определяет способ идентификации получателя. Возможные значения:
JC_CMS_ISSUER_SERIAL_ID(0) – по CN издателя и серийному номеру сертификата;JC_CMS_SUBJECT_KEY_ID(1) – по идентификатору ключа субъекта.
CK_ULONG keyWrapAlgorithm
Алгоритм шифрования ключа. Возможные значения:
JC_CMS_GOST28147_89_NONE_KEYWRAP(соответствует id-Gost28147-89-None-KeyWrap (1.2.643.2.2..13.0)0) -JC_CMS_GOST28147_89_CRYPTOPRO_KEYWRAP(соответствует id-Gost28147-89-CryptoPro-KeyWrap (1.2.643.2.2.13.1)1) -JC_CMS_GOSTR3412_2015_MAGMA_WRAP_KEXP15 (2)- соответствует id-tc26-wrap-gostr3412-2015-magma-kexp15 (1.2.643.7.1.1.7.1.1)JC_CMS_GOSTR3412_2015_KUZNYECHIK_WRAP_KEXP15 (3)- соответствует id-tc26-wrap-gostr3412-2015-kuznyechik (1.2.643.7.1.1.7.1.2)
Примечание: Используется только для получателя “по согласованию” (KARI), т.е. |
CK_BYTE_PTR certificate
Сертификат получателя в DER формате.
CK_ULONG certificateLength
Длина сертификата.
CK_BYTE_PTR keyTransport
Транспортное представление ключа шифрования содержимого CEK. Получено при помощи функции C_WrapKey().
CK_ULONG keyTransportLength
Длина транспортного представления ключа шифрования.
JC_CMS_MATERIAL
Материал формирования CMS контейнера.
typedef struct JC_CMS_MATERIAL{ CK_ULONG recipientCount; JC_CMS_RECIPIENT_MATERIAL_PTR recipients; CK_BYTE_PTR senderCertificate; CK_ULONG senderCertificateLength; JC_NID_OBJECT contentEncryptionAlgorithm; JC_NID_OBJECT contentEncryptionParamSet; CK_ULONG ivLength; CK_BYTE_PTR iv; CK_BYTE_PTR cipherText; CK_ULONG cipherTextLength; CK_BYTE_PTR contentMac; CK_ULONG contentMacLength;} JC_CMS_MATERIAL;typedef JC_CMS_MATERIAL CK_PTR JC_CMS_MATERIAL_PTR;CK_ULONG recipientCount
Число получателей в CMS контейнере.
JC_CMS_RECIPIENT_MATERIAL_PTR recipients
Ключевой материал получателей.
CK_BYTE_PTR senderCertificate
Сертификат отправителя.
Примечание: Используется если есть получатель “по согласованию”. |
CK_ULONG senderCertificateLength
Длина сертификата отправителя.
Примечание: Не используется если все получатели “по передаче”. |
JC_NID_OBJECT contentEncryptionAlgorithm
Алгоритм шифрования содержимого ГОСТ 28147 в режиме CFB, Магма или Кузнечик в режиме CTR-ACPKM
JC_NID_OBJECT contentEncryptionParamSet
Набор параметров шифрования содержимого по алгоритму ГОСТ 28147–89
CK_ULONG ivLength
Длина инициализационного вектора
CK_BYTE_PTR iv
Инициализационный вектор для шифрования содержимого
CK_BYTE_PTR cipherText
Зашифрованное содержимое.
CK_ULONG cipherTextLength
Длина зашифрованного содержимого
CK_BYTE_PTR contentMac
Указатель на зашифрованное значение MAC открытого текста. Используется при шифровании алгоритмами «Магма», «Кузнечик» в режиме гаммирования CTR с механизмом преобразования ключа ACPKM с вычислением имитовставки (id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac, id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac)
CK_ULONG contentMacLength
Размер зашифрованного значения MAC открытого текста
Используется в:
JC_CERTIFICATE_TRAITS
Указатель на структуру JC_CERTIFICATE_TRAITS.
typedef JC_CERTIFICATE_TRAITS CK_PTR JC_CERTIFICATE_TRAITS_PTR;JC_CERTIFICATE_TRAITS
Признаки сертификата получателя.
typedef struct JC_CERTIFICATE_TRAITS { CK_BYTE_PTR keyID; CK_ULONG keyIDlength; CK_CHAR_PTR serialNumber; JC_NID_OBJECT_PTR issuerRecords; CK_ULONG issuerRecordCount;} JC_CERTIFICATE_TRAITS;CK_BYTE_PTR keyID
Идентификатор ключа субъекта.
CK_ULONG keyIDlength
Длина идентификатора ключа субъекта.
CK_CHAR_PTR serialNumber
Серийный номер сертификата (null terminated).
JC_NID_OBJECT_PTR issuerRecords
Список RDN значений субъекта.
CK_ULONG issuerRecordCount
Количество RDN значений субъекта.
JC_CERTIFICATE_MATERIAL
Указатель на структуру JC_CERTIFICATE_MATERIAL.
typedef JC_CERTIFICATE_MATERIAL CK_PTR JC_CERTIFICATE_MATERIAL_PTR;JC_CERTIFICATE_MATERIAL
Материал разбора сертификата.
typedef struct JC_CERTIFICATE_MATERIAL { CK_LONG publicKeyAlgorithmNid; CK_BYTE_PTR ellipticCurveParams; CK_ULONG ellipticCurveParamsLength; CK_BYTE_PTR hashParams; CK_ULONG hashParamsLength; CK_BYTE_PTR publicKey; CK_ULONG publicKeyLength;} JC_CERTIFICATE_MATERIAL;CK_LONG publicKeyAlgorithmNid
NID основного алгоритма.
CK_BYTE_PTR ellipticCurveParams
Составляющая параметра публичного ключа, соответствующая атрибуту CKA_GOSTR3410_PARAMS.
CK_ULONG ellipticCurveParamsLength
Длина JC_CERTIFICATE_MATERIAL.ellipticCurveParams.
CK_BYTE_PTR hashParams
Составляющая параметра публичного ключа, соответствующая атрибуту CKA_GOSTR3411_PARAMS.
CK_ULONG hashParamsLength
Длина JC_CERTIFICATE_MATERIAL.hashParams.
CK_BYTE_PTR publicKey
Публичный ключ.
CK_ULONG publicKeyLength
Длина публичного ключа.
Используется в:
JC_CMS_RECIPIENT
Указатель на структуру JC_CMS_RECIPIENT.
typedef JC_CMS_RECIPIENT CK_PTR JC_CMS_RECIPIENT_PTR;
JC_CMS_RECIPIENT
Получатель CMS сообщения.
typedef struct JC_CMS_RECIPIENT {
CK_LONG recipientInfoType;
JC_CERTIFICATE_TRAITS recipientCertTraits;
JC_NID_OBJECT keyWrapAlgorithm;
CK_BYTE_PTR secretKeyOID;
CK_ULONG secretKeyOIDlength;
CK_BYTE_PTR keyTransport;
CK_ULONG keyTransportLength;
JC_CERTIFICATE_MATERIAL originator;
} JC_CMS_RECIPIENT;
CK_LONG recipientInfoType
Определяет способ формирования объекта ключевой информации получателя. Возможные значения:
JC_CMS_KTRI_RECIPIENT_INFO(0) – по передаче (KTRI);JC_CMS_KARI_RECIPIENT_INFO(1) – по согласованию (KARI).
JC_CERTIFICATE_TRAITS recipientCertTraits
Признаки сертификата получателя.
JC_NID_OBJECT keyWrapAlgorithm
Алгоритм шифрования ключа.
CK_BYTE_PTR secretKeyOID
OID алгоритма шифрования содержимого в DER представлении.
CK_BYTE_PTR secretKeyOIDlength
Длина OID алгоритма шифрования.
CK_BYTE_PTR keyTransport
Транспортное представление ключа шифрования содержимого.
CK_BYTE_PTR keyTransportLength
Длина транспортного представления ключа шифрования содержимого.
JC_CERTIFICATE_MATERIAL originator
Описатель публичного ключа отправителя CMS.
Примечание: Присутствует только для формата “по согласованию” (KARI), т.е. |
JC_CMS_CONTAINER
typedef struct JC_CMS_CONTAINER
{
CK_ULONG recipientCount;
JC_CMS_RECIPIENT* recipients;
JC_NID_OBJECT contentEncryptionAlgorithm;
JC_NID_OBJECT encryptionParamSet;
CK_BYTE_PTR iv;
CK_ULONG ivLength;
CK_BYTE_PTR cipherText;
CK_ULONG cipherTextLength;
CK_BYTE_PTR contentMac;
CK_ULONG contentMacLength;
} JC_CMS_CONTAINER;
typedef JC_CMS_CONTAINER CK_PTR JC_CMS_CONTAINER_PTR;
Разобранное CMS сообщение.
CK_ULONG recipientCount
Число получателей CMS сообщения
JC_CMS_RECIPIENT_PTR recipients
Получатели CMS сообщения.
JC_NID_OBJECT contentEncryptionAlgorithm
Описатель OID алгоритма шифрования содержимого
JC_NID_OBJECT encryptionParamSet
Описатель OID набора параметров этого алгоритма
CK_BYTE_PTR iv
Инициализационный вектор зашифрованного содержимого
CK_ULONG ivLength
Длина инициализационного вектора
CK_BYTE_PTR cipherText
Зашифрованное содержимое
CK_ULONG cipherTextLength
Длина зашифрованного содержимого
CK_BYTE_PTR contentMac
Указатель на зашифрованное значение MAC открытого текста. Используется при шифровании алгоритмами «Магма», «Кузнечик» в режиме гаммирования CTR с механизмом преобразования ключа ACPKM с вычислением имитовставки (id-tc26-cipher-gostr3412-2015-magma-ctracpkm-omac, id-tc26-cipher-gostr3412-2015-kuznyechik-ctracpkm-omac)
CK_ULONG contentMacLength
Размер зашифрованного значения MAC
Используется в: