JC_NID_OBJECT
¶JC_NID_OBJECT_PTR
¶Указатель на структуру 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;
shortName
¶Короткое имя объекта.
longName
¶Длинное имя объекта.
value
¶Значение объекта в DER формате.
JC_CMS_RECIPIENT_MATERIAL
¶JC_CMS_RECIPIENT_MATERIAL_PTR
¶Указатель на структуру JC_CMS_RECIPIENT_MATERIAL
.
typedef JC_CMS_RECIPIENT_MATERIAL CK_PTR JC_CMS_RECIPIENT_MATERIAL_PTR;
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;
recipientInfoType
¶Определяет способ формирования объекта ключевой информации получателя. Возможные значения:
JC_CMS_KTRI_RECIPIENT_INFO
(0
) – по передаче (KTRI);JC_CMS_KARI_RECIPIENT_INFO
(1
) – по согласованию (KARI).recipientIdentity
¶Определяет способ идентификации получателя. Возможные значения:
JC_CMS_ISSUER_SERIAL_ID
(0
) – по CN издателя и серийному номеру сертификата;JC_CMS_SUBJECT_KEY_ID
(1
) – по идентификатору ключа субъекта.keyWrapAlgorithm
¶Алгоритм шифрования ключа. Возможные значения:
JC_CMS_GOST28147_89_NONE_KEYWRAP
(0
) – соответствует id-Gost28147-89-None-KeyWrap (1.2.643.2.2..13.0);JC_CMS_GOST28147_89_CRYPTOPRO_KEYWRAP
(1
) – соответствует id-Gost28147-89-CryptoPro-KeyWrap (1.2.643.2.2.13.1).Примечание
Используется только для получателя “по согласованию” (KARI),
т.е. JC_CMS_RECIPIENT_MATERIAL.recipientInfoType
равен JC_CMS_KARI_RECIPIENT_INFO
.
certificate
¶Сертификат получателя в DER формате.
keyTransport
¶Транспортное представление ключа шифрования содержимого CEK.
Получено при помощи функции C_WrapKey()
.
JC_CMS_MATERIAL
¶JC_CMS_MATERIAL_PTR
¶Указатель на структуру JC_CMS_MATERIAL
.
typedef JC_CMS_MATERIAL CK_PTR JC_CMS_MATERIAL_PTR;
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 contentEncryptionParamSet;
CK_ULONG ivLength;
CK_BYTE_PTR iv;
CK_BYTE_PTR cipherText;
CK_ULONG cipherTextLength;
} JC_CMS_MATERIAL;
recipients
¶Ключевой материал получателей.
senderCertificate
¶Сертификат отправителя.
Примечание
Используется если есть получатель “по согласованию”.
senderCertificateLength
¶Длина сертификата отправителя.
Примечание
Не используется если все получатели “по передаче”.
contentEncryptionParamSet
¶Набор параметров шифрования содержимого по алгоритму ГОСТ 28147–89.
iv
¶Инициализационный вектор для шифрования содержимого.
cipherText
¶Зашифрованное содержимое.
JC_CERTIFICATE_TRAITS
¶JC_CERTIFICATE_TRAITS_PTR
¶Указатель на структуру 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;
keyID
¶Идентификатор ключа субъекта.
serialNumber
¶Серийный номер сертификата (null terminated).
issuerRecords
¶Список RDN значений субъекта.
JC_CERTIFICATE_MATERIAL
¶JC_CERTIFICATE_MATERIAL_PTR
¶Указатель на структуру 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;
ellipticCurveParams
¶Составляющая параметра публичного ключа, соответствующая атрибуту CKA_GOSTR3410_PARAMS
.
hashParams
¶Составляющая параметра публичного ключа, соответствующая атрибуту CKA_GOSTR3411_PARAMS
.
publicKey
¶Публичный ключ.
JC_CMS_RECIPIENT
¶JC_CMS_RECIPIENT_PTR
¶Указатель на структуру 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;
recipientInfoType
¶Определяет способ формирования объекта ключевой информации получателя. Возможные значения:
JC_CMS_KTRI_RECIPIENT_INFO
(0
) – по передаче (KTRI);JC_CMS_KARI_RECIPIENT_INFO
(1
) – по согласованию (KARI).recipientCertTraits
¶Признаки сертификата получателя.
keyWrapAlgorithm
¶Алгоритм шифрования ключа.
secretKeyOID
¶OID алгоритма шифрования содержимого в DER представлении.
secretKeyOIDlength
¶Длина OID алгоритма шифрования.
keyTransport
¶Транспортное представление ключа шифрования содержимого.
keyTransportLength
¶Длина транспортного представления ключа шифрования содержимого.
originator
¶Описатель публичного ключа отправителя CMS.
Примечание
Присутствует только для формата “по согласованию” (KARI),
т.е. JC_CMS_RECIPIENT.recipientInfoType
равен JC_CMS_KARI_RECIPIENT_INFO
.
JC_CMS_CONTAINER
¶JC_CMS_CONTAINER_PTR
¶Указатель на структуру JC_CMS_CONTAINER
.
typedef JC_CMS_CONTAINER CK_PTR JC_CMS_CONTAINER_PTR;
JC_CMS_CONTAINER
¶Разобранное CMS сообщение.
typedef struct JC_CMS_CONTAINER {
CK_ULONG recipientCount;
JC_CMS_RECIPIENT_PTR recipients;
JC_NID_OBJECT contentEncryptionAlgorithm;
JC_NID_OBJECT encryptionParamSet;
CK_BYTE_PTR iv;
CK_ULONG ivLength;
CK_BYTE_PTR cipherText;
CK_ULONG cipherTextLength;
} JC_CMS_CONTAINER;
recipients
¶Получатели CMS сообщения.
contentEncryptionAlgorithm
¶Описатель OID алгоритма шифрования содержимого.
encryptionParamSet
¶Описатель OID набора параметров этого алгоритма.
iv
¶Инициализационный вектор зашифрованного содержимого.
cipherText
¶Зашифрованное содержимое.