如何使用openssl库将具有序列值的扩展名添加到CSR?

时间:2019-03-18 17:13:16

标签: c openssl

例如,现在我可以添加简单的扩展名(oid + str)

nid = OBJ_create("1.2.3.4", "shortname", "long name");
ASN1_OCTET_STRING_set(os, "ext value", 9);   
ex = X509_EXTENSION_create_by_NID(NULL, nid, 0, os );
sk_X509_EXTENSION_push(exts, ex);

我想学习如何在下一个规范中添加扩展名

特定的标识对象应包含在属性的SET中。结果CSR中包含的任何身份对象都应作为PKCS#9扩展请求添加

  • macAddress(OID 1.3.6.1.1.1.1.22),编码为IA5STRING类型
  • imei(OID 1.3.6.1.4.1.40808.1.1.3),编码为IA5STRING类型
  • meid(OID 1.3.6.1.4.1.40808.1.1.4),编码为BITSTRING类型
  • DevId(OID 1.3.6.1.4.1.40808.1.1.5),编码为PRINTABLESTRING类型

我假设扩展请求扩展名的oid = 1.2.840.113549.1.9.14

这可能是扩展的openssl配置

asn1 = SEQUENCE:attrs

[attrs]
attr1 = SEQUENCE:extreq

[extreq]
oid = OID:extensionRequest
vals = SET:extreqvals

[extreqvals]
oid1 = OID:macAddress
oid2 = OID:imei
oid3 = OID:meid
oid4 = OID:DevId

我如何用C语言做到这一点?

0 个答案:

没有答案