asn1: Fix printing of open type choice names

This commit is contained in:
Nicolas Williams
2021-03-09 12:22:43 -06:00
parent 6b5feba91d
commit cba34400fe
2 changed files with 95 additions and 91 deletions

View File

@@ -2248,97 +2248,101 @@ test_ios(void)
"DENTIFIER\",\"oid\":\"2.5.29.35\",\"components\":[2,5,29,35],\"name\":\"id" "DENTIFIER\",\"oid\":\"2.5.29.35\",\"components\":[2,5,29,35],\"name\":\"id"
"-x509-ce-authorityKeyIdentifier\"},\"critical\":false,\"extnValue\":\"" "-x509-ce-authorityKeyIdentifier\"},\"critical\":false,\"extnValue\":\""
"301680141ADB994AB58BE57A0CC9B900E7851E1A43C08660\",\"_extnValue_ch" "301680141ADB994AB58BE57A0CC9B900E7851E1A43C08660\",\"_extnValue_ch"
"oice\":\"\",\"_extnValue\":{\"_type\":\"AuthorityKeyIdentifier\",\"keyIden" "oice\":\"ext-AuthorityKeyIdentifier\",\"_extnValue\":{\"_type\":\"Author"
"tifier\":\"1ADB994AB58BE57A0CC9B900E7851E1A43C08660\",\"authorityCer" "ityKeyIdentifier\",\"keyIdentifier\":\"1ADB994AB58BE57A0CC9B900E7851"
"tIssuer\":null,\"authorityCertSerialNumber\":null}},{\"_type\":\"Exten" "E1A43C08660\",\"authorityCertIssuer\":null,\"authorityCertSerialNumb"
"sion\",\"extnID\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.5.29.32\",\"c" "er\":null}},{\"_type\":\"Extension\",\"extnID\":{\"_type\":\"OBJECT IDENTI"
"omponents\":[2,5,29,32],\"name\":\"id-x509-ce-certificatePolicies\"}," "FIER\",\"oid\":\"2.5.29.32\",\"components\":[2,5,29,32],\"name\":\"id-x509"
"\"critical\":false,\"extnValue\":\"303930370604551D2000302F302D06082B" "-ce-certificatePolicies\"},\"critical\":false,\"extnValue\":\"30393037"
"060105050702011621687474703A2F2F7777772E73742E636F6D2F54504D2F72" "0604551D2000302F302D06082B060105050702011621687474703A2F2F777777"
"65706F7369746F72792F\",\"_extnValue_choice\":\"\",\"_extnValue\":[{\"_ty" "2E73742E636F6D2F54504D2F7265706F7369746F72792F\",\"_extnValue_choi"
"pe\":\"PolicyInformation\",\"policyIdentifier\":{\"_type\":\"OBJECT IDEN" "ce\":\"ext-CertificatePolicies\",\"_extnValue\":[{\"_type\":\"PolicyInfo"
"TIFIER\",\"oid\":\"2.5.29.32.0\",\"components\":[2,5,29,32,0],\"name\":\"i" "rmation\",\"policyIdentifier\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\""
"d-x509-ce-certificatePolicies-anyPolicy\"},\"policyQualifiers\":[{\"" "2.5.29.32.0\",\"components\":[2,5,29,32,0],\"name\":\"id-x509-ce-certi"
"_type\":\"PolicyQualifierInfo\",\"policyQualifierId\":{\"_type\":\"OBJEC" "ficatePolicies-anyPolicy\"},\"policyQualifiers\":[{\"_type\":\"PolicyQ"
"T IDENTIFIER\",\"oid\":\"1.3.6.1.5.5.7.2.1\",\"components\":[1,3,6,1,5," "ualifierInfo\",\"policyQualifierId\":{\"_type\":\"OBJECT IDENTIFIER\",\""
"5,7,2,1],\"name\":\"id-pkix-qt-cps\"},\"qualifier\":\"1621687474703A2F2" "oid\":\"1.3.6.1.5.5.7.2.1\",\"components\":[1,3,6,1,5,5,7,2,1],\"name\""
"F7777772E73742E636F6D2F54504D2F7265706F7369746F72792F\"}]}]},{\"_t" ":\"id-pkix-qt-cps\"},\"qualifier\":\"1621687474703A2F2F7777772E73742E"
"636F6D2F54504D2F7265706F7369746F72792F\"}]}]},{\"_type\":\"Extension"
"\",\"extnID\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.5.29.17\",\"compo"
"nents\":[2,5,29,17],\"name\":\"id-x509-ce-subjectAltName\"},\"critical"
"\":true,\"extnValue\":\"304DA44B304931163014060567810502010C0B69643A"
"353335343444323031173015060567810502020C0C5354333348545048414843"
"3031163014060567810502030C0B69643A3030343930303038\",\"_extnValue_"
"choice\":\"ext-SubjectAltName\",\"_extnValue\":[{\"_choice\":\"directory"
"Name\",\"value\":{\"_choice\":\"rdnSequence\",\"value\":[[{\"_type\":\"Attri"
"buteTypeAndValue\",\"type\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.2"
"3.133.2.1\",\"components\":[2,23,133,2,1],\"name\":\"tcg-at-tpmManufac"
"turer\"},\"value\":{\"_choice\":\"utf8String\",\"value\":\"id:53544D20\"}}]"
",[{\"_type\":\"AttributeTypeAndValue\",\"type\":{\"_type\":\"OBJECT IDENT"
"IFIER\",\"oid\":\"2.23.133.2.2\",\"components\":[2,23,133,2,2],\"name\":\""
"tcg-at-tpmModel\"},\"value\":{\"_choice\":\"utf8String\",\"value\":\"ST33H"
"TPHAHC0\"}}],[{\"_type\":\"AttributeTypeAndValue\",\"type\":{\"_type\":\"O"
"BJECT IDENTIFIER\",\"oid\":\"2.23.133.2.3\",\"components\":[2,23,133,2,"
"3],\"name\":\"tcg-at-tpmVersion\"},\"value\":{\"_choice\":\"utf8String\",\""
"value\":\"id:00490008\"}}]]}}]},{\"_type\":\"Extension\",\"extnID\":{\"_ty"
"pe\":\"OBJECT IDENTIFIER\",\"oid\":\"2.5.29.9\",\"components\":[2,5,29,9]"
",\"name\":\"id-x509-ce-subjectDirectoryAttributes\"},\"critical\":fals"
"e,\"extnValue\":\"305E301706056781050210310E300C0C03322E30020100020"
"2008A304306056781050212313A30380201000101FFA0030A0101A1030A0100A"
"2030A0100A310300E1603332E310A01040A01020101FFA40F300D16053134302"
"D320A0102010100\",\"_extnValue_choice\":\"ext-SubjectDirectoryAttrib"
"utes\",\"_extnValue\":[{\"_type\":\"AttributeSet\",\"type\":{\"_type\":\"OBJ"
"ECT IDENTIFIER\",\"oid\":\"2.23.133.2.16\",\"components\":[2,23,133,2,1"
"6],\"name\":\"tcg-at-tpmSpecification\"},\"values\":[\"300C0C03322E3002"
"01000202008A\"],\"_values_choice\":\"at-TPMSpecification\",\"_values\":"
"[{\"_type\":\"TPMSpecification\",\"family\":\"2.0\",\"level\":0,\"revision\""
":138}]},{\"_type\":\"AttributeSet\",\"type\":{\"_type\":\"OBJECT IDENTIFI"
"ER\",\"oid\":\"2.23.133.2.18\",\"components\":[2,23,133,2,18],\"name\":\"t"
"cg-at-tpmSecurityAssertions\"},\"values\":[\"30380201000101FFA0030A0"
"101A1030A0100A2030A0100A310300E1603332E310A01040A01020101FFA40F3"
"00D16053134302D320A0102010100\"],\"_values_choice\":\"at-TPMSecurity"
"Assertions\",\"_values\":[{\"_type\":\"TPMSecurityAssertions\",\"version"
"\":0,\"fieldUpgradable\":true,\"ekGenerationType\":\"ekgt-injected\",\"e"
"kGenerationLocation\":\"tpmManufacturer\",\"ekCertificateGenerationL"
"ocation\":\"tpmManufacturer\",\"ccInfo\":{\"_type\":\"CommonCriteriaMeas"
"ures\",\"version\":\"3.1\",\"assurancelevel\":\"ealevel4\",\"evaluationSta"
"tus\":\"evaluationCompleted\",\"plus\":true,\"strengthOfFunction\":null"
",\"profileOid\":null,\"profileUri\":null,\"targetOid\":null,\"targetUri"
"\":null},\"fipsLevel\":{\"_type\":\"FIPSLevel\",\"version\":\"140-2\",\"leve"
"l\":\"sllevel2\",\"plus\":false},\"iso9000Certified\":false,\"iso9000Uri"
"\":null}]}]},{\"_type\":\"Extension\",\"extnID\":{\"_type\":\"OBJECT IDENT"
"IFIER\",\"oid\":\"2.5.29.15\",\"components\":[2,5,29,15],\"name\":\"id-x50"
"9-ce-keyUsage\"},\"critical\":true,\"extnValue\":\"03020520\",\"_extnVal"
"ue_choice\":\"ext-KeyUsage\",\"_extnValue\":[\"keyEncipherment\"]},{\"_t"
"ype\":\"Extension\",\"extnID\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2." "ype\":\"Extension\",\"extnID\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2."
"5.29.17\",\"components\":[2,5,29,17],\"name\":\"id-x509-ce-subjectAltN" "5.29.19\",\"components\":[2,5,29,19],\"name\":\"id-x509-ce-basicConstr"
"ame\"},\"critical\":true,\"extnValue\":\"304DA44B304931163014060567810" "aints\"},\"critical\":true,\"extnValue\":\"3000\",\"_extnValue_choice\":\""
"502010C0B69643A353335343444323031173015060567810502020C0C5354333" "ext-BasicConstraints\",\"_extnValue\":{\"_type\":\"BasicConstraints\",\""
"3485450484148433031163014060567810502030C0B69643A303034393030303" "cA\":false,\"pathLenConstraint\":null}},{\"_type\":\"Extension\",\"extnI"
"8\",\"_extnValue_choice\":\"\",\"_extnValue\":[{\"_choice\":\"directoryNam" "D\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.5.29.37\",\"components\":["
"e\",\"value\":{\"_choice\":\"rdnSequence\",\"value\":[[{\"_type\":\"Attribut" "2,5,29,37],\"name\":\"id-x509-ce-extKeyUsage\"},\"critical\":false,\"ex"
"eTypeAndValue\",\"type\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.23.1" "tnValue\":\"300706056781050801\",\"_extnValue_choice\":\"ext-ExtKeyUsa"
"33.2.1\",\"components\":[2,23,133,2,1],\"name\":\"tcg-at-tpmManufactur" "ge\",\"_extnValue\":[{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.23.133.8"
"er\"},\"value\":{\"_choice\":\"utf8String\",\"value\":\"id:53544D20\"}}],[{" ".1\",\"components\":[2,23,133,8,1],\"name\":\"tcg-kp-EKCertificate\"}]}"
"\"_type\":\"AttributeTypeAndValue\",\"type\":{\"_type\":\"OBJECT IDENTIFI" ",{\"_type\":\"Extension\",\"extnID\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid"
"ER\",\"oid\":\"2.23.133.2.2\",\"components\":[2,23,133,2,2],\"name\":\"tcg" "\":\"1.3.6.1.5.5.7.1.1\",\"components\":[1,3,6,1,5,5,7,1,1],\"name\":\"i"
"-at-tpmModel\"},\"value\":{\"_choice\":\"utf8String\",\"value\":\"ST33HTPH" "d-pkix-pe-authorityInfoAccess\"},\"critical\":false,\"extnValue\":\"30"
"AHC0\"}}],[{\"_type\":\"AttributeTypeAndValue\",\"type\":{\"_type\":\"OBJE" "3C303A06082B06010505073002862E687474703A2F2F7365637572652E676C6F"
"CT IDENTIFIER\",\"oid\":\"2.23.133.2.3\",\"components\":[2,23,133,2,3]," "62616C7369676E2E636F6D2F73746D74706D656B696E7430352E637274\",\"_ex"
"\"name\":\"tcg-at-tpmVersion\"},\"value\":{\"_choice\":\"utf8String\",\"val" "tnValue_choice\":\"ext-AuthorityInfoAccess\",\"_extnValue\":[{\"_type\""
"ue\":\"id:00490008\"}}]]}}]},{\"_type\":\"Extension\",\"extnID\":{\"_type\"" ":\"AccessDescription\",\"accessMethod\":{\"_type\":\"OBJECT IDENTIFIER\""
":\"OBJECT IDENTIFIER\",\"oid\":\"2.5.29.9\",\"components\":[2,5,29,9],\"n" ",\"oid\":\"1.3.6.1.5.5.7.48.2\",\"components\":[1,3,6,1,5,5,7,48,2],\"n"
"ame\":\"id-x509-ce-subjectDirectoryAttributes\"},\"critical\":false,\"" "ame\":\"id-pkix-ad-caIssuers\"},\"accessLocation\":{\"_choice\":\"unifor"
"extnValue\":\"305E301706056781050210310E300C0C03322E30020100020200" "mResourceIdentifier\",\"value\":\"http://secure.globalsign.com/stmtp"
"8A304306056781050212313A30380201000101FFA0030A0101A1030A0100A203" "mekint05.crt\"}}]}]},\"signatureAlgorithm\":{\"_type\":\"AlgorithmIden"
"0A0100A310300E1603332E310A01040A01020101FFA40F300D16053134302D32" "tifier\",\"algorithm\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"1.2.840."
"0A0102010100\",\"_extnValue_choice\":\"\",\"_extnValue\":[{\"_type\":\"Att" "113549.1.1.11\",\"components\":[1,2,840,113549,1,1,11],\"name\":\"id-p"
"ributeSet\",\"type\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.23.133.2" "kcs1-sha256WithRSAEncryption\"},\"parameters\":\"0500\"},\"signatureVa"
".16\",\"components\":[2,23,133,2,16],\"name\":\"tcg-at-tpmSpecificatio" "lue\":\"2048:3D4C381E5B4F1BCBE09C63D52F1F04570CAEA142FD9CD942043B1"
"n\"},\"values\":[\"300C0C03322E300201000202008A\"],\"_values_choice\":\"" "1F8E3BDCF50007AE16CF8869013041E92CDD3280BA4B51FBBD40582ED750219E"
"\",\"_values\":[{\"_type\":\"TPMSpecification\",\"family\":\"2.0\",\"level\":" "261A695095674855AACEB520ADAFF9E7E908480A39CDCF900462D9171960FFE5"
"0,\"revision\":138}]},{\"_type\":\"AttributeSet\",\"type\":{\"_type\":\"OBJ" "5D3AC49E8C981341BBD2EFBCC252A4C18A4F3B7C84CCE42CE70A208C84D2630A"
"ECT IDENTIFIER\",\"oid\":\"2.23.133.2.18\",\"components\":[2,23,133,2,1" "7ABFBE72D6271E75B9FF1C971D20EB3DBD763F1E04D834EAA692D2E4001BBF47"
"8],\"name\":\"tcg-at-tpmSecurityAssertions\"},\"values\":[\"30380201000" "30A3E3FDA9711AE386524D91C63BE0E516D00D5C6141FCCF6C539F3518E18004"
"101FFA0030A0101A1030A0100A2030A0100A310300E1603332E310A01040A010" "9865BE16B69CAE1F8CB7FDC474B38F7EE56CBE7D8A89D9BA99B65D5265AEF32A"
"20101FFA40F300D16053134302D320A0102010100\"],\"_values_choice\":\"\"," "A62426B10E6D75BB8677EC44F755BBC2806FD2B4E04BDF5D44259DBEAA42B6F5"
"\"_values\":[{\"_type\":\"TPMSecurityAssertions\",\"version\":0,\"fieldUp" "63DF7AA7506\"}"
"gradable\":true,\"ekGenerationType\":\"ekgt-injected\",\"ekGenerationL"
"ocation\":\"tpmManufacturer\",\"ekCertificateGenerationLocation\":\"tp"
"mManufacturer\",\"ccInfo\":{\"_type\":\"CommonCriteriaMeasures\",\"versi"
"on\":\"3.1\",\"assurancelevel\":\"ealevel4\",\"evaluationStatus\":\"evalua"
"tionCompleted\",\"plus\":true,\"strengthOfFunction\":null,\"profileOid"
"\":null,\"profileUri\":null,\"targetOid\":null,\"targetUri\":null},\"fip"
"sLevel\":{\"_type\":\"FIPSLevel\",\"version\":\"140-2\",\"level\":\"sllevel2"
"\",\"plus\":false},\"iso9000Certified\":false,\"iso9000Uri\":null}]}]},"
"{\"_type\":\"Extension\",\"extnID\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\""
":\"2.5.29.15\",\"components\":[2,5,29,15],\"name\":\"id-x509-ce-keyUsag"
"e\"},\"critical\":true,\"extnValue\":\"03020520\",\"_extnValue_choice\":\""
"\",\"_extnValue\":[\"keyEncipherment\"]},{\"_type\":\"Extension\",\"extnID"
"\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.5.29.19\",\"components\":[2"
",5,29,19],\"name\":\"id-x509-ce-basicConstraints\"},\"critical\":true,"
"\"extnValue\":\"3000\",\"_extnValue_choice\":\"\",\"_extnValue\":{\"_type\":"
"\"BasicConstraints\",\"cA\":false,\"pathLenConstraint\":null}},{\"_type"
"\":\"Extension\",\"extnID\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.5.2"
"9.37\",\"components\":[2,5,29,37],\"name\":\"id-x509-ce-extKeyUsage\"},"
"\"critical\":false,\"extnValue\":\"300706056781050801\",\"_extnValue_ch"
"oice\":\"\",\"_extnValue\":[{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"2.23."
"133.8.1\",\"components\":[2,23,133,8,1],\"name\":\"tcg-kp-EKCertificat"
"e\"}]},{\"_type\":\"Extension\",\"extnID\":{\"_type\":\"OBJECT IDENTIFIER\""
",\"oid\":\"1.3.6.1.5.5.7.1.1\",\"components\":[1,3,6,1,5,5,7,1,1],\"nam"
"e\":\"id-pkix-pe-authorityInfoAccess\"},\"critical\":false,\"extnValue"
"\":\"303C303A06082B06010505073002862E687474703A2F2F7365637572652E6"
"76C6F62616C7369676E2E636F6D2F73746D74706D656B696E7430352E637274\""
",\"_extnValue_choice\":\"\",\"_extnValue\":[{\"_type\":\"AccessDescriptio"
"n\",\"accessMethod\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"1.3.6.1.5."
"5.7.48.2\",\"components\":[1,3,6,1,5,5,7,48,2],\"name\":\"id-pkix-ad-c"
"aIssuers\"},\"accessLocation\":{\"_choice\":\"uniformResourceIdentifie"
"r\",\"value\":\"http://secure.globalsign.com/stmtpmekint05.crt\"}}]}]"
"},\"signatureAlgorithm\":{\"_type\":\"AlgorithmIdentifier\",\"algorithm"
"\":{\"_type\":\"OBJECT IDENTIFIER\",\"oid\":\"1.2.840.113549.1.1.11\",\"co"
"mponents\":[1,2,840,113549,1,1,11],\"name\":\"id-pkcs1-sha256WithRSA"
"Encryption\"},\"parameters\":\"0500\"},\"signatureValue\":\"2048:3D4C381"
"E5B4F1BCBE09C63D52F1F04570CAEA142FD9CD942043B11F8E3BDCF50007AE16"
"CF8869013041E92CDD3280BA4B51FBBD40582ED750219E261A695095674855AA"
"CEB520ADAFF9E7E908480A39CDCF900462D9171960FFE55D3AC49E8C981341BB"
"D2EFBCC252A4C18A4F3B7C84CCE42CE70A208C84D2630A7ABFBE72D6271E75B9"
"FF1C971D20EB3DBD763F1E04D834EAA692D2E4001BBF4730A3E3FDA9711AE386"
"524D91C63BE0E516D00D5C6141FCCF6C539F3518E180049865BE16B69CAE1F8C"
"B7FDC474B38F7EE56CBE7D8A89D9BA99B65D5265AEF32AA62426B10E6D75BB86"
"77EC44F755BBC2806FD2B4E04BDF5D44259DBEAA42B6F563DF7AA7506\"}"
}; };
heim_octet_string os; heim_octet_string os;
Certificate c0, c1; Certificate c0, c1;

View File

@@ -2399,7 +2399,7 @@ _asn1_print_open_type(const struct asn1_template *t, /* object set template */
r = rk_strpoolprintf(r, ",%s\"_%s_choice\":\"%s\"", r = rk_strpoolprintf(r, ",%s\"_%s_choice\":\"%s\"",
indents ? indents : "", opentype_name, indents ? indents : "", opentype_name,
(const char *)tactual_type); (const char *)tos[3*(*elementp - 1) + 2].ptr);
if (!r) { if (!r) {
free(indents); free(indents);
return r; return r;