Сопоставление структуры PolarSSL x509_cert с объектом PKCS#11 X.509

Я хочу написать программу на C++ для анализа файла сертификата, совместимого с X.509, с помощью PolarSSL, извлечь все его атрибуты и сопоставить их с шаблоном объекта PKCS#11 для хранения в криптографическом токене. Мне также нужно иметь возможность извлекать сохраненные атрибуты объекта и воссоздавать исходный файл, используя их, но я точно не знаю, как сопоставить поля структуры PolarSSL x509_cert и атрибуты объекта PKCS#11 X.509.
I знать часть этого сопоставления (т.е. crt.valid_from сопоставляется с CKA_START_DATE или crt.valid_to сопоставляется с CKA_END_DATE) и нужны эти атрибуты для создания моего объекта сертификата на токене (все эти значения должны быть установлены в соответствии со спецификациями PKCS#11):

CKA_CERTIFICATE_CATEGORY
CKA_CHECK_VALUE
CKA_SUBJECT
CKA_ID
CKA_ISSUER
CKA_SERIAL_NUMBER
CKA_VALUE
CKA_URL
CKA_HASH_OF_SUBJECT_PUBLIC_KEY
CKA_HASH_OF_ISSUER_PUBLIC_KEY
CKA_JAVA_MIDP_SECURITY_DOMAIN

Кто-нибудь может мне помочь?


person Ehsan Khodarahmi    schedule 17.05.2013    source источник


Ответы (1)


В основном вам нужно понимать две спецификации: X509 (RFC 5280) и PKCS#11. Сертификат является криптографически «цельным» объектом, тогда как многие необязательные «вспомогательные атрибуты» в PKCS#11 не имеют криптографической ценности. Например, я считаю, что CKA_JAVA_MIDP_SECURITY_DOMAIN — это то, что приближает к нулю в реальной жизни в 2013 году. ) и тему сертификата (CKA_SUBJECT). Если вы не объясните, почему вам нужны «все атрибуты», я предполагаю, что вы хотите сделать что-то, чего на самом деле делать не следует.

person Martin Paljak    schedule 20.05.2013