| ||||
| ||||
Какие параметры должны быть заданы для функции CryptDecodeObject для декодирования экстэншина szOID_ENROLLMENT_CSP_PROVIDER ? В MSDN и в форуме MS.CPRYPTAPI я ничего путного по этому поводу не нашёл :( Этот экстэншн добавляется в PKCS#10 если использовать CAPI ... | ||||
Ответы: | ||||
| ||||
Судя по wincrypt.h szOID_ENROLLMENT_CSP_PROVIDER "1.3.6.1.4.1.311.13.2.2" typedef struct _CRYPT_CSP_PROVIDER { DWORD dwKeySpec; LPWSTR pwszProviderName; CRYPT_BIT_BLOB Signature; } CRYPT_CSP_PROVIDER, * PCRYPT_CSP_PROVIDER; | ||||
| ||||
Но CryptDecodeObject этот extension не возьмет. Эту структуру придется заполнять вручную - сначала CryptDecodeObject(.., X509_SEQUENCE_OF_ANY, ..) на этот extension. Потом разбор каждого элемента получившегося массива - X509_INTEGER, X509_UNICODE_ANY_STRING и т.д. | ||||
| ||||
Есть структура CRYPT_CSP_PROVIDER. У нее три поля. Что писать в CRYPT_BIT_BLOB Signature? GetProvParam PP_SIGNATURE_PIN? Так это ж, вроде, пароль на ключ подписи. Зачем он в запросе? Как закодировать полученную структуру? Каждое поле по отдельности еще понятно, но для самой структуры CRYPT_CSP_PROVIDER я не нашел параметра для CryptEncodeObject. | ||||