Sie können die erzeugte Struktur mit Werkzeugen wie dumpasn1
oder anzeigen openssl asn1parse -i
.
Ich habe versucht, eine Beispielstruktur mit dem Schema und einem tatsächlichen ASN.1-Compiler zu erstellen .
Ich denke, der AdmissionAuthority muss nur für das explizite Tagging konfiguriert werden. (Ich habe nicht die geringste Ahnung von Tags.
admissionAuthority = EXPLICIT:1, IA5STRING:MyGeneralName
Welche scheint mit der Compilerausgabe übereinzustimmen.
OpenSSLs "UTF8String:" reicht bis zum Zeilenende. Sie haben also ein professionItem mit dem Wert "
String1,UTF8String:String2
".Mehrere Werte können folgendermaßen definiert werden:
professionItems.0 = UTF8String:String1 professionItems.1 = UTF8String:String2
Da sie sich jedoch innerhalb einer SEQUENCE befinden müssen, benötigen Sie wieder einen separaten Abschnitt:
professionItems = SEQUENCE:item_sect [item_sect] 0 = UTF8String:String1 1 = UTF8String:String2
ProfessionItems muss jedoch eine Sequenz von professionInfo SEQs sein. Für einen SEQ von nur einem Element ist die einfachste Option:
professionItems = SEQWRAP, SEQUENCE:item_sect
Wenn Sie mehrere Artikel benötigen, müssen Sie einen anderen Abschnitt verwenden:
professionItems = SEQUENCE:prof_items_sect [prof_items_sect] 0 = SEQUENCE:item0_sect 1 = SEQUENCE:item1_sect ...
Ich habe Ihr Beispiel erfolgreich in Kommentaren mit:
[seq_sect] # GeneralName-Tag [4] ist verzeichnisname #admissionAuthority = EXPLICIT: 1, IA5STRING: whatever@example.com #admissionAuthority = EXPLICIT: 2, IA5STRING: example.com admissionAuthority = EXPLICIT: 4, SEQUENCE: Authority_Name_sect #admissionAuthority = EXPLICIT: 6, IA5STRING: https: //www.example.com/ # Dies könnte ein "SEQWRAP, SEQUENCE: admission0_sect" sein. # solange es nur einen Eintrittsartikel gibt contentsOfAdmissions = SEQUENCE: admissions_sect [authority_name_sect] # Dies ist ein Name, der auch als RDNSequence bezeichnet wird. # Jeder RelativeDistinguishedName hat im Allgemeinen nur ein AttributeTypeAndValue # (mehrere Male in LDAP, aber selten), daher erledigt SETWRAP hier die Aufgabe rdn.1 = SETWRAP, SEQUENCE: authority_dn_C_sect rdn.2 = SETWRAP, SEQUENCE: authority_dn_O_sect rdn.3 = SETWRAP, SEQUENCE: authority_dn_postal_sect [authority_dn_C_sect] OID = OID: 2.5.4.6 value = PRINTABLESTRING: DE [authority_dn_O_sect] oid = OID: 2.5.4.10 Wert = UTF8String: Firma A [authority_dn_postal_sect] OID = OID: 2.5.4.16 value = SEQUENCE: authority_dn_postal_values [authority_dn_postal_values] 0 = UTF8String: Straße 1 = UTF8String: PostalCode-Adresse 2 = UTF8String: DE [admissions_sect] admission.0 = SEQUENCE: admission0_sect [admission0_sect] professionInfos = Sequenz: professionInfos_sect [professionInfos_sect] professionInfo.0 = SEQUENCE: professionInfo0_sect [professionInfo0_sect] # namingAuthority = ... professionItems = SEQUENCE: professionItems_sect # professionOIDs = ... [professionItems_sect] professionItem.0 = UTF8String: Arzt / Ärztin