0

我想编写一个 C++ 程序来使用 PolarSSL 解析 X.509 兼容的证书文件,提取它的所有属性并将它们映射到 PKCS#11 对象模板以存储在加密令牌上。我还需要能够获取存储的对象属性并使用它们重新创建原始文件,但我完全不知道如何在 PolarSSL x509_cert 结构字段和 PKCS#11 X.509 对象属性之间进行映射。
我知道这个映射的一部分(即crt.valid_from映射到CKA_START_DATEcrt.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

有人可以帮我吗?

4

1 回答 1

0

您基本上需要了解两个规范:X509 (RFC 5280)PKCS#11。证书是加密的“整体”对象,而 PKCS#11 中的许多可选“帮助属性”没有加密值。例如,我认为 CKA_JAVA_MIDP_SECURITY_DOMAIN 是 2013 年在现实生活中接近于零的东西。如果您将证书视为 blob,您只需要关心原始证书数据(AKA CKA_VALUE)和证书的主题(CKA_SUBJECT)。除非您解释为什么要“所有属性”,否则我的猜测是您想做一些实际上不应该做的事情。

于 2013-05-20T10:21:36.683 回答