Как я могу добавить расширение со значением последовательности в CSR, используя библиотеку openssl? - PullRequest
0 голосов
/ 18 марта 2019

Сейчас я могу добавить простое расширение (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

Я предполагаю, что расширение Extension Extension имеет 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...