Я хочу написать программу на C ++ для анализа файла сертификата, совместимого с X.509, с PolarSSL, извлечения всех его атрибутов. & сопоставьте их с шаблоном объекта PKCS # 11 для хранения на криптографическом токене. Мне также нужно иметь возможность извлекать атрибуты сохраненных объектов & воссоздать оригинальный файл, используя их, но я точно не знаю, как отобразить поля структуры PolarSSL x509_cert & PKCS # 11 X.509 атрибуты объекта.
Я знаю часть этого отображения (т.е. 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
Кто-нибудь может мне помочь, пожалуйста?
Вы в основном должны понимать две спецификации: X509 (RFC 5280) а также PKCS # 11. Сертификат является криптографически «целым» объектом, тогда как многие необязательные «вспомогательные атрибуты» в PKCS # 11 не имеют криптографического значения. Например, я считаю, что CKA_JAVA_MIDP_SECURITY_DOMAIN — это то, что приближает к нулю реальная жизнь в 2013 году. Если вы берете сертификат в качестве большого двоичного объекта, вам нужно заботиться только о необработанных данных сертификата (AKA CKA_VALUE) и о предмете сертификата (CKA_SUBJECT). Если вы не объясните, почему вы хотите «все атрибуты», я думаю, вы хотите сделать что-то, что вы на самом деле не должны делать.
Других решений пока нет …