我想编写一个C++程序,用PolarSSL解析与X.509兼容的证书文件,提取它的所有属性并将它们映射到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有谁能帮帮我吗?
发布于 2013-05-20 18:21:37
您基本上需要了解两个规范:X509 (RFC 5280)和PKCS#11。证书是一个加密的“完整”对象,而PKCS#11中的许多可选的“辅助属性”没有加密值。例如,我认为CKA_JAVA_MIDP_SECURITY_DOMAIN是在2013年现实生活中接近于零的东西。如果您将证书作为blob,您只需要关心原始证书数据(即CKA_VALUE)和证书的主题(CKA_SUBJECT)。除非你解释为什么你想要“所有属性”,否则我猜你是想做一些你实际上不应该做的事情。
https://stackoverflow.com/questions/16601749
复制相似问题