Пример для записи сертификата (и ключа) для PKCS
Добрый день,
Скажите, пожалуйста, а есть ли пример по записи пары сертификат-ключ средствами библиотеки PKCS? Сертификат мне записать удалось (правда, он на токене не появляется, но хотя бы запись без ошибок проходит) со следующими параметрами:
CK_CERTIFICATE_TYPE certType = CKC_X_509;
CK_ATTRIBUTE CertTmpl[] =
{
{ CKA_CLASS, &ocCert, sizeof(ocCert) }, // Объект сертификата
{ CKA_CERTIFICATE_TYPE, &certType, sizeof(certType) },
{ CKA_ID, &KeyPairIDGOST1, sizeof(KeyPairIDGOST1)-1 }, // Идентификатор сертификата
{ CKA_TOKEN, &bTrue, sizeof(bTrue) }, // Сертификат является объектом токена
{ CKA_PRIVATE, &bFalse, sizeof(bFalse) }, // Сертификат доступен без авторизации на токене
{ CKA_VALUE, byteCertData, certData->Length } // Значение сертификата
};
а вот на ключ - при вызове возвращается ошибка D0 (некорректный набор параметров)
CK_ATTRIBUTE PrivateTmpl[] =
{
{ CKA_CLASS, &ocPrivKey, sizeof(ocPrivKey) }, // Объект сертификата
{ CKA_ID, &KeyPairIDGOST1, sizeof(KeyPairIDGOST1)-1 }, // Идентификатор сертификата
{ CKA_TOKEN, &bTrue, sizeof(bTrue) }, // Сертификат является объектом токена
{ CKA_PRIVATE, &bFalse, sizeof(bFalse) }, // Сертификат доступен без авторизации на токене
{ CKA_VALUE, bytePrivateKey, privateKey->Length } // Значение сертификата
};
Подскажите, пожалуйста, чего еще не хватает?
В целом, мне нужно отформатировать ключ (с этим я справился) и записать на него сертификат из pfx файла, т.е., фактически, продублировать функционал "родной" утилиты.
Заранее спасибо за помощь!