You can see the generated structure using tools such as dumpasn1
or openssl asn1parse -i
.
I tried creating an example structure using the schema and an actual ASN.1 compiler.
The admissionAuthority, I think, only needs to be configured for explicit tagging. (I don't have the slightest idea about tags though.
admissionAuthority = EXPLICIT:1, IA5STRING:MyGeneralName
Which seems to match the compiler output.
OpenSSL's "UTF8String:" extends until the end of the line. So what you have is one professionItem, with the value "
String1,UTF8String:String2
".Multiple values could be defined like this:
professionItems.0 = UTF8String:String1 professionItems.1 = UTF8String:String2
But since they must be inside a SEQUENCE, you again need a separate section:
professionItems = SEQUENCE:item_sect [item_sect] 0 = UTF8String:String1 1 = UTF8String:String2
But, professionItems needs to be a SEQUENCE of professionInfo SEQ's. For a SEQ of just one item, the simplest option is:
professionItems = SEQWRAP, SEQUENCE:item_sect
If you needed multiple items, you'd have to use another section:
professionItems = SEQUENCE:prof_items_sect [prof_items_sect] 0 = SEQUENCE:item0_sect 1 = SEQUENCE:item1_sect ...
I successfully reproduced your example in comments with:
[seq_sect] # GeneralName tag [4] is directoryName #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/ # this could be a "SEQWRAP, SEQUENCE:admission0_sect" # as long as there's only one admission item contentsOfAdmissions = SEQUENCE:admissions_sect [authority_name_sect] # this is a Name aka a RDNSequence... # each RelativeDistinguishedName generally only has one AttributeTypeAndValue # (multiple happen in LDAP but rarely), thus SETWRAP does the job here 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 value = 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:Street 1 = UTF8String:PostalCode Adress 2 = UTF8String:DE [admissions_sect] admission.0 = SEQUENCE:admission0_sect [admission0_sect] professionInfos = SEQUENCE:professionInfos_sect [professionInfos_sect] professionInfo.0 = SEQUENCE:professionInfo0_sect [professionInfo0_sect] # namingAuthority = ... professionItems = SEQUENCE:professionItems_sect # professionOIDs = ... [professionItems_sect] professionItem.0 = UTF8String:Arzt/Ärztin