nalika / rpms / grub2

Forked from rpms/grub2 2 years ago
Clone

Blame SOURCES/0192-appended-signatures-import-GNUTLS-s-ASN.1-descriptio.patch

5593c8
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
5593c8
From: Daniel Axtens <dja@axtens.net>
5593c8
Date: Thu, 30 Jul 2020 01:35:10 +1000
5593c8
Subject: [PATCH] appended signatures: import GNUTLS's ASN.1 description files
5593c8
5593c8
In order to parse PKCS#7 messages and X.509 certificates with libtasn1,
5593c8
we need some information about how they are encoded.
5593c8
5593c8
We get these from GNUTLS, which has the benefit that they support the
5593c8
features we need and are well tested.
5593c8
5593c8
The GNUTLS license is LGPLv2.1+, which is GPLv3 compatible, allowing
5593c8
us to import it without issue.
5593c8
5593c8
Signed-off-by: Daniel Axtens <dja@axtens.net>
5593c8
---
5593c8
 grub-core/commands/appendedsig/gnutls_asn1_tab.c | 121 ++++++
5593c8
 grub-core/commands/appendedsig/pkix_asn1_tab.c   | 484 +++++++++++++++++++++++
5593c8
 2 files changed, 605 insertions(+)
5593c8
 create mode 100644 grub-core/commands/appendedsig/gnutls_asn1_tab.c
5593c8
 create mode 100644 grub-core/commands/appendedsig/pkix_asn1_tab.c
5593c8
5593c8
diff --git a/grub-core/commands/appendedsig/gnutls_asn1_tab.c b/grub-core/commands/appendedsig/gnutls_asn1_tab.c
5593c8
new file mode 100644
d3c3ab
index 00000000000..ddd1314e63b
5593c8
--- /dev/null
5593c8
+++ b/grub-core/commands/appendedsig/gnutls_asn1_tab.c
5593c8
@@ -0,0 +1,121 @@
5593c8
+#include <grub/mm.h>
5593c8
+#include <grub/libtasn1.h>
5593c8
+
5593c8
+const asn1_static_node gnutls_asn1_tab[] = {
5593c8
+  { "GNUTLS", 536872976, NULL },
5593c8
+  { NULL, 1073741836, NULL },
5593c8
+  { "RSAPublicKey", 1610612741, NULL },
5593c8
+  { "modulus", 1073741827, NULL },
5593c8
+  { "publicExponent", 3, NULL },
5593c8
+  { "RSAPrivateKey", 1610612741, NULL },
5593c8
+  { "version", 1073741827, NULL },
5593c8
+  { "modulus", 1073741827, NULL },
5593c8
+  { "publicExponent", 1073741827, NULL },
5593c8
+  { "privateExponent", 1073741827, NULL },
5593c8
+  { "prime1", 1073741827, NULL },
5593c8
+  { "prime2", 1073741827, NULL },
5593c8
+  { "exponent1", 1073741827, NULL },
5593c8
+  { "exponent2", 1073741827, NULL },
5593c8
+  { "coefficient", 1073741827, NULL },
5593c8
+  { "otherPrimeInfos", 16386, "OtherPrimeInfos"},
5593c8
+  { "ProvableSeed", 1610612741, NULL },
5593c8
+  { "algorithm", 1073741836, NULL },
5593c8
+  { "seed", 7, NULL },
5593c8
+  { "OtherPrimeInfos", 1612709899, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "OtherPrimeInfo"},
5593c8
+  { "OtherPrimeInfo", 1610612741, NULL },
5593c8
+  { "prime", 1073741827, NULL },
5593c8
+  { "exponent", 1073741827, NULL },
5593c8
+  { "coefficient", 3, NULL },
5593c8
+  { "AlgorithmIdentifier", 1610612741, NULL },
5593c8
+  { "algorithm", 1073741836, NULL },
5593c8
+  { "parameters", 541081613, NULL },
5593c8
+  { "algorithm", 1, NULL },
5593c8
+  { "DigestInfo", 1610612741, NULL },
5593c8
+  { "digestAlgorithm", 1073741826, "DigestAlgorithmIdentifier"},
5593c8
+  { "digest", 7, NULL },
5593c8
+  { "DigestAlgorithmIdentifier", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "DSAPublicKey", 1073741827, NULL },
5593c8
+  { "DSAParameters", 1610612741, NULL },
5593c8
+  { "p", 1073741827, NULL },
5593c8
+  { "q", 1073741827, NULL },
5593c8
+  { "g", 3, NULL },
5593c8
+  { "DSASignatureValue", 1610612741, NULL },
5593c8
+  { "r", 1073741827, NULL },
5593c8
+  { "s", 3, NULL },
5593c8
+  { "DSAPrivateKey", 1610612741, NULL },
5593c8
+  { "version", 1073741827, NULL },
5593c8
+  { "p", 1073741827, NULL },
5593c8
+  { "q", 1073741827, NULL },
5593c8
+  { "g", 1073741827, NULL },
5593c8
+  { "Y", 1073741827, NULL },
5593c8
+  { "priv", 3, NULL },
5593c8
+  { "DHParameter", 1610612741, NULL },
5593c8
+  { "prime", 1073741827, NULL },
5593c8
+  { "base", 1073741827, NULL },
5593c8
+  { "privateValueLength", 16387, NULL },
5593c8
+  { "ECParameters", 1610612754, NULL },
5593c8
+  { "namedCurve", 12, NULL },
5593c8
+  { "ECPrivateKey", 1610612741, NULL },
5593c8
+  { "Version", 1073741827, NULL },
5593c8
+  { "privateKey", 1073741831, NULL },
5593c8
+  { "parameters", 1610637314, "ECParameters"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "publicKey", 536895494, NULL },
5593c8
+  { NULL, 2056, "1"},
5593c8
+  { "PrincipalName", 1610612741, NULL },
5593c8
+  { "name-type", 1610620931, NULL },
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "name-string", 536879115, NULL },
5593c8
+  { NULL, 1073743880, "1"},
5593c8
+  { NULL, 27, NULL },
5593c8
+  { "KRB5PrincipalName", 1610612741, NULL },
5593c8
+  { "realm", 1610620955, NULL },
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "principalName", 536879106, "PrincipalName"},
5593c8
+  { NULL, 2056, "1"},
5593c8
+  { "RSAPSSParameters", 1610612741, NULL },
5593c8
+  { "hashAlgorithm", 1610637314, "AlgorithmIdentifier"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "maskGenAlgorithm", 1610637314, "AlgorithmIdentifier"},
5593c8
+  { NULL, 2056, "1"},
5593c8
+  { "saltLength", 1610653699, NULL },
5593c8
+  { NULL, 1073741833, "20"},
5593c8
+  { NULL, 2056, "2"},
5593c8
+  { "trailerField", 536911875, NULL },
5593c8
+  { NULL, 1073741833, "1"},
5593c8
+  { NULL, 2056, "3"},
5593c8
+  { "GOSTParameters", 1610612741, NULL },
5593c8
+  { "publicKeyParamSet", 1073741836, NULL },
5593c8
+  { "digestParamSet", 16396, NULL },
5593c8
+  { "GOSTParametersOld", 1610612741, NULL },
5593c8
+  { "publicKeyParamSet", 1073741836, NULL },
5593c8
+  { "digestParamSet", 1073741836, NULL },
5593c8
+  { "encryptionParamSet", 16396, NULL },
5593c8
+  { "GOSTPrivateKey", 1073741831, NULL },
5593c8
+  { "GOSTPrivateKeyOld", 1073741827, NULL },
5593c8
+  { "IssuerSignTool", 1610612741, NULL },
5593c8
+  { "signTool", 1073741858, NULL },
5593c8
+  { "cATool", 1073741858, NULL },
5593c8
+  { "signToolCert", 1073741858, NULL },
5593c8
+  { "cAToolCert", 34, NULL },
5593c8
+  { "Gost28147-89-EncryptedKey", 1610612741, NULL },
5593c8
+  { "encryptedKey", 1073741831, NULL },
5593c8
+  { "maskKey", 1610637319, NULL },
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "macKey", 7, NULL },
5593c8
+  { "SubjectPublicKeyInfo", 1610612741, NULL },
5593c8
+  { "algorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "subjectPublicKey", 6, NULL },
5593c8
+  { "GostR3410-TransportParameters", 1610612741, NULL },
5593c8
+  { "encryptionParamSet", 1073741836, NULL },
5593c8
+  { "ephemeralPublicKey", 1610637314, "SubjectPublicKeyInfo"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "ukm", 7, NULL },
5593c8
+  { "GostR3410-KeyTransport", 536870917, NULL },
5593c8
+  { "sessionEncryptedKey", 1073741826, "Gost28147-89-EncryptedKey"},
5593c8
+  { "transportParameters", 536895490, "GostR3410-TransportParameters"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { NULL, 0, NULL }
5593c8
+};
5593c8
diff --git a/grub-core/commands/appendedsig/pkix_asn1_tab.c b/grub-core/commands/appendedsig/pkix_asn1_tab.c
5593c8
new file mode 100644
d3c3ab
index 00000000000..adef69d95ce
5593c8
--- /dev/null
5593c8
+++ b/grub-core/commands/appendedsig/pkix_asn1_tab.c
5593c8
@@ -0,0 +1,484 @@
5593c8
+#include <grub/mm.h>
5593c8
+#include <grub/libtasn1.h>
5593c8
+
5593c8
+const asn1_static_node pkix_asn1_tab[] = {
5593c8
+  { "PKIX1", 536875024, NULL },
5593c8
+  { NULL, 1073741836, NULL },
5593c8
+  { "PrivateKeyUsagePeriod", 1610612741, NULL },
5593c8
+  { "notBefore", 1610637349, NULL },
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "notAfter", 536895525, NULL },
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "AuthorityKeyIdentifier", 1610612741, NULL },
5593c8
+  { "keyIdentifier", 1610637319, NULL },
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "authorityCertIssuer", 1610637314, "GeneralNames"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "authorityCertSerialNumber", 536895490, "CertificateSerialNumber"},
5593c8
+  { NULL, 4104, "2"},
5593c8
+  { "SubjectKeyIdentifier", 1073741831, NULL },
5593c8
+  { "KeyUsage", 1073741830, NULL },
5593c8
+  { "DirectoryString", 1610612754, NULL },
5593c8
+  { "teletexString", 1612709918, NULL },
5593c8
+  { "MAX", 524298, "1"},
5593c8
+  { "printableString", 1612709919, NULL },
5593c8
+  { "MAX", 524298, "1"},
5593c8
+  { "universalString", 1612709920, NULL },
5593c8
+  { "MAX", 524298, "1"},
5593c8
+  { "utf8String", 1612709922, NULL },
5593c8
+  { "MAX", 524298, "1"},
5593c8
+  { "bmpString", 1612709921, NULL },
5593c8
+  { "MAX", 524298, "1"},
5593c8
+  { "ia5String", 538968093, NULL },
5593c8
+  { "MAX", 524298, "1"},
5593c8
+  { "SubjectAltName", 1073741826, "GeneralNames"},
5593c8
+  { "GeneralNames", 1612709899, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "GeneralName"},
5593c8
+  { "GeneralName", 1610612754, NULL },
5593c8
+  { "otherName", 1610620930, "AnotherName"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "rfc822Name", 1610620957, NULL },
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "dNSName", 1610620957, NULL },
5593c8
+  { NULL, 4104, "2"},
5593c8
+  { "x400Address", 1610620941, NULL },
5593c8
+  { NULL, 4104, "3"},
5593c8
+  { "directoryName", 1610620939, NULL },
5593c8
+  { NULL, 1073743880, "4"},
5593c8
+  { NULL, 2, "RelativeDistinguishedName"},
5593c8
+  { "ediPartyName", 1610620941, NULL },
5593c8
+  { NULL, 4104, "5"},
5593c8
+  { "uniformResourceIdentifier", 1610620957, NULL },
5593c8
+  { NULL, 4104, "6"},
5593c8
+  { "iPAddress", 1610620935, NULL },
5593c8
+  { NULL, 4104, "7"},
5593c8
+  { "registeredID", 536879116, NULL },
5593c8
+  { NULL, 4104, "8"},
5593c8
+  { "AnotherName", 1610612741, NULL },
5593c8
+  { "type-id", 1073741836, NULL },
5593c8
+  { "value", 541073421, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { "type-id", 1, NULL },
5593c8
+  { "IssuerAltName", 1073741826, "GeneralNames"},
5593c8
+  { "BasicConstraints", 1610612741, NULL },
5593c8
+  { "cA", 1610645508, NULL },
5593c8
+  { NULL, 131081, NULL },
5593c8
+  { "pathLenConstraint", 537411587, NULL },
5593c8
+  { "0", 10, "MAX"},
5593c8
+  { "CRLDistributionPoints", 1612709899, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "DistributionPoint"},
5593c8
+  { "DistributionPoint", 1610612741, NULL },
5593c8
+  { "distributionPoint", 1610637314, "DistributionPointName"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "reasons", 1610637314, "ReasonFlags"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "cRLIssuer", 536895490, "GeneralNames"},
5593c8
+  { NULL, 4104, "2"},
5593c8
+  { "DistributionPointName", 1610612754, NULL },
5593c8
+  { "fullName", 1610620930, "GeneralNames"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "nameRelativeToCRLIssuer", 536879106, "RelativeDistinguishedName"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "ReasonFlags", 1073741830, NULL },
5593c8
+  { "ExtKeyUsageSyntax", 1612709899, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 12, NULL },
5593c8
+  { "AuthorityInfoAccessSyntax", 1612709899, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "AccessDescription"},
5593c8
+  { "AccessDescription", 1610612741, NULL },
5593c8
+  { "accessMethod", 1073741836, NULL },
5593c8
+  { "accessLocation", 2, "GeneralName"},
5593c8
+  { "Attribute", 1610612741, NULL },
5593c8
+  { "type", 1073741836, NULL },
5593c8
+  { "values", 536870927, NULL },
5593c8
+  { NULL, 13, NULL },
5593c8
+  { "AttributeTypeAndValue", 1610612741, NULL },
5593c8
+  { "type", 1073741836, NULL },
5593c8
+  { "value", 13, NULL },
5593c8
+  { "Name", 1610612754, NULL },
5593c8
+  { "rdnSequence", 536870923, NULL },
5593c8
+  { NULL, 2, "RelativeDistinguishedName"},
5593c8
+  { "DistinguishedName", 1610612747, NULL },
5593c8
+  { NULL, 2, "RelativeDistinguishedName"},
5593c8
+  { "RelativeDistinguishedName", 1612709903, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "AttributeTypeAndValue"},
5593c8
+  { "Certificate", 1610612741, NULL },
5593c8
+  { "tbsCertificate", 1073741826, "TBSCertificate"},
5593c8
+  { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "signature", 6, NULL },
5593c8
+  { "TBSCertificate", 1610612741, NULL },
5593c8
+  { "version", 1610653699, NULL },
5593c8
+  { NULL, 1073741833, "0"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "serialNumber", 1073741826, "CertificateSerialNumber"},
5593c8
+  { "signature", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "issuer", 1073741826, "Name"},
5593c8
+  { "validity", 1073741826, "Validity"},
5593c8
+  { "subject", 1073741826, "Name"},
5593c8
+  { "subjectPublicKeyInfo", 1073741826, "SubjectPublicKeyInfo"},
5593c8
+  { "issuerUniqueID", 1610637314, "UniqueIdentifier"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "subjectUniqueID", 1610637314, "UniqueIdentifier"},
5593c8
+  { NULL, 4104, "2"},
5593c8
+  { "extensions", 536895490, "Extensions"},
5593c8
+  { NULL, 2056, "3"},
5593c8
+  { "CertificateSerialNumber", 1073741827, NULL },
5593c8
+  { "Validity", 1610612741, NULL },
5593c8
+  { "notBefore", 1073741826, "Time"},
5593c8
+  { "notAfter", 2, "Time"},
5593c8
+  { "Time", 1610612754, NULL },
5593c8
+  { "utcTime", 1073741860, NULL },
5593c8
+  { "generalTime", 37, NULL },
5593c8
+  { "UniqueIdentifier", 1073741830, NULL },
5593c8
+  { "SubjectPublicKeyInfo", 1610612741, NULL },
5593c8
+  { "algorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "subjectPublicKey", 6, NULL },
5593c8
+  { "Extensions", 1612709899, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "Extension"},
5593c8
+  { "Extension", 1610612741, NULL },
5593c8
+  { "extnID", 1073741836, NULL },
5593c8
+  { "critical", 1610645508, NULL },
5593c8
+  { NULL, 131081, NULL },
5593c8
+  { "extnValue", 7, NULL },
5593c8
+  { "CertificateList", 1610612741, NULL },
5593c8
+  { "tbsCertList", 1073741826, "TBSCertList"},
5593c8
+  { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "signature", 6, NULL },
5593c8
+  { "TBSCertList", 1610612741, NULL },
5593c8
+  { "version", 1073758211, NULL },
5593c8
+  { "signature", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "issuer", 1073741826, "Name"},
5593c8
+  { "thisUpdate", 1073741826, "Time"},
5593c8
+  { "nextUpdate", 1073758210, "Time"},
5593c8
+  { "revokedCertificates", 1610629131, NULL },
5593c8
+  { NULL, 536870917, NULL },
5593c8
+  { "userCertificate", 1073741826, "CertificateSerialNumber"},
5593c8
+  { "revocationDate", 1073741826, "Time"},
5593c8
+  { "crlEntryExtensions", 16386, "Extensions"},
5593c8
+  { "crlExtensions", 536895490, "Extensions"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "AlgorithmIdentifier", 1610612741, NULL },
5593c8
+  { "algorithm", 1073741836, NULL },
5593c8
+  { "parameters", 541081613, NULL },
5593c8
+  { "algorithm", 1, NULL },
5593c8
+  { "Dss-Sig-Value", 1610612741, NULL },
5593c8
+  { "r", 1073741827, NULL },
5593c8
+  { "s", 3, NULL },
5593c8
+  { "Dss-Parms", 1610612741, NULL },
5593c8
+  { "p", 1073741827, NULL },
5593c8
+  { "q", 1073741827, NULL },
5593c8
+  { "g", 3, NULL },
5593c8
+  { "pkcs-7-ContentInfo", 1610612741, NULL },
5593c8
+  { "contentType", 1073741836, NULL },
5593c8
+  { "content", 541073421, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { "contentType", 1, NULL },
5593c8
+  { "pkcs-7-DigestInfo", 1610612741, NULL },
5593c8
+  { "digestAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "digest", 7, NULL },
5593c8
+  { "pkcs-7-SignedData", 1610612741, NULL },
5593c8
+  { "version", 1073741827, NULL },
5593c8
+  { "digestAlgorithms", 1073741826, "pkcs-7-DigestAlgorithmIdentifiers"},
5593c8
+  { "encapContentInfo", 1073741826, "pkcs-7-EncapsulatedContentInfo"},
5593c8
+  { "certificates", 1610637314, "pkcs-7-CertificateSet"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "crls", 1610637314, "pkcs-7-CertificateRevocationLists"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "signerInfos", 2, "pkcs-7-SignerInfos"},
5593c8
+  { "pkcs-7-DigestAlgorithmIdentifiers", 1610612751, NULL },
5593c8
+  { NULL, 2, "AlgorithmIdentifier"},
5593c8
+  { "pkcs-7-EncapsulatedContentInfo", 1610612741, NULL },
5593c8
+  { "eContentType", 1073741836, NULL },
5593c8
+  { "eContent", 536895501, NULL },
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "pkcs-7-CertificateRevocationLists", 1610612751, NULL },
5593c8
+  { NULL, 13, NULL },
5593c8
+  { "pkcs-7-CertificateChoices", 1610612754, NULL },
5593c8
+  { "certificate", 13, NULL },
5593c8
+  { "pkcs-7-CertificateSet", 1610612751, NULL },
5593c8
+  { NULL, 2, "pkcs-7-CertificateChoices"},
5593c8
+  { "IssuerAndSerialNumber", 1610612741, NULL },
5593c8
+  { "issuer", 1073741826, "Name"},
5593c8
+  { "serialNumber", 2, "CertificateSerialNumber"},
5593c8
+  { "pkcs-7-SignerInfo", 1610612741, NULL },
5593c8
+  { "version", 1073741827, NULL },
5593c8
+  { "sid", 1073741826, "SignerIdentifier"},
5593c8
+  { "digestAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "signedAttrs", 1610637314, "SignedAttributes"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "signature", 1073741831, NULL },
5593c8
+  { "unsignedAttrs", 536895490, "SignedAttributes"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "SignedAttributes", 1612709903, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "Attribute"},
5593c8
+  { "SignerIdentifier", 1610612754, NULL },
5593c8
+  { "issuerAndSerialNumber", 1073741826, "IssuerAndSerialNumber"},
5593c8
+  { "subjectKeyIdentifier", 536879111, NULL },
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "pkcs-7-SignerInfos", 1610612751, NULL },
5593c8
+  { NULL, 2, "pkcs-7-SignerInfo"},
5593c8
+  { "pkcs-10-CertificationRequestInfo", 1610612741, NULL },
5593c8
+  { "version", 1073741827, NULL },
5593c8
+  { "subject", 1073741826, "Name"},
5593c8
+  { "subjectPKInfo", 1073741826, "SubjectPublicKeyInfo"},
5593c8
+  { "attributes", 536879106, "Attributes"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "Attributes", 1610612751, NULL },
5593c8
+  { NULL, 2, "Attribute"},
5593c8
+  { "pkcs-10-CertificationRequest", 1610612741, NULL },
5593c8
+  { "certificationRequestInfo", 1073741826, "pkcs-10-CertificationRequestInfo"},
5593c8
+  { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "signature", 6, NULL },
5593c8
+  { "pkcs-9-at-challengePassword", 1879048204, NULL },
5593c8
+  { "iso", 1073741825, "1"},
5593c8
+  { "member-body", 1073741825, "2"},
5593c8
+  { "us", 1073741825, "840"},
5593c8
+  { "rsadsi", 1073741825, "113549"},
5593c8
+  { "pkcs", 1073741825, "1"},
5593c8
+  { NULL, 1073741825, "9"},
5593c8
+  { NULL, 1, "7"},
5593c8
+  { "pkcs-9-challengePassword", 1610612754, NULL },
5593c8
+  { "printableString", 1073741855, NULL },
5593c8
+  { "utf8String", 34, NULL },
5593c8
+  { "pkcs-9-localKeyId", 1073741831, NULL },
5593c8
+  { "pkcs-8-PrivateKeyInfo", 1610612741, NULL },
5593c8
+  { "version", 1073741827, NULL },
5593c8
+  { "privateKeyAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "privateKey", 1073741831, NULL },
5593c8
+  { "attributes", 536895490, "Attributes"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "pkcs-8-EncryptedPrivateKeyInfo", 1610612741, NULL },
5593c8
+  { "encryptionAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "encryptedData", 2, "pkcs-8-EncryptedData"},
5593c8
+  { "pkcs-8-EncryptedData", 1073741831, NULL },
5593c8
+  { "pkcs-5-des-CBC-params", 1612709895, NULL },
5593c8
+  { NULL, 1048586, "8"},
5593c8
+  { "pkcs-5-des-EDE3-CBC-params", 1612709895, NULL },
5593c8
+  { NULL, 1048586, "8"},
5593c8
+  { "pkcs-5-aes128-CBC-params", 1612709895, NULL },
5593c8
+  { NULL, 1048586, "16"},
5593c8
+  { "pkcs-5-aes192-CBC-params", 1612709895, NULL },
5593c8
+  { NULL, 1048586, "16"},
5593c8
+  { "pkcs-5-aes256-CBC-params", 1612709895, NULL },
5593c8
+  { NULL, 1048586, "16"},
5593c8
+  { "Gost28147-89-Parameters", 1610612741, NULL },
5593c8
+  { "iv", 1073741831, NULL },
5593c8
+  { "encryptionParamSet", 12, NULL },
5593c8
+  { "pkcs-5-PBE-params", 1610612741, NULL },
5593c8
+  { "salt", 1073741831, NULL },
5593c8
+  { "iterationCount", 3, NULL },
5593c8
+  { "pkcs-5-PBES2-params", 1610612741, NULL },
5593c8
+  { "keyDerivationFunc", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "encryptionScheme", 2, "AlgorithmIdentifier"},
5593c8
+  { "pkcs-5-PBKDF2-params", 1610612741, NULL },
5593c8
+  { "salt", 1610612754, NULL },
5593c8
+  { "specified", 1073741831, NULL },
5593c8
+  { "otherSource", 2, "AlgorithmIdentifier"},
5593c8
+  { "iterationCount", 1611137027, NULL },
5593c8
+  { "1", 10, "MAX"},
5593c8
+  { "keyLength", 1611153411, NULL },
5593c8
+  { "1", 10, "MAX"},
5593c8
+  { "prf", 16386, "AlgorithmIdentifier"},
5593c8
+  { "pkcs-12-PFX", 1610612741, NULL },
5593c8
+  { "version", 1610874883, NULL },
5593c8
+  { "v3", 1, "3"},
5593c8
+  { "authSafe", 1073741826, "pkcs-7-ContentInfo"},
5593c8
+  { "macData", 16386, "pkcs-12-MacData"},
5593c8
+  { "pkcs-12-PbeParams", 1610612741, NULL },
5593c8
+  { "salt", 1073741831, NULL },
5593c8
+  { "iterations", 3, NULL },
5593c8
+  { "pkcs-12-MacData", 1610612741, NULL },
5593c8
+  { "mac", 1073741826, "pkcs-7-DigestInfo"},
5593c8
+  { "macSalt", 1073741831, NULL },
5593c8
+  { "iterations", 536903683, NULL },
5593c8
+  { NULL, 9, "1"},
5593c8
+  { "pkcs-12-AuthenticatedSafe", 1610612747, NULL },
5593c8
+  { NULL, 2, "pkcs-7-ContentInfo"},
5593c8
+  { "pkcs-12-SafeContents", 1610612747, NULL },
5593c8
+  { NULL, 2, "pkcs-12-SafeBag"},
5593c8
+  { "pkcs-12-SafeBag", 1610612741, NULL },
5593c8
+  { "bagId", 1073741836, NULL },
5593c8
+  { "bagValue", 1614815245, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { "badId", 1, NULL },
5593c8
+  { "bagAttributes", 536887311, NULL },
5593c8
+  { NULL, 2, "Attribute"},
5593c8
+  { "pkcs-12-CertBag", 1610612741, NULL },
5593c8
+  { "certId", 1073741836, NULL },
5593c8
+  { "certValue", 541073421, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { "certId", 1, NULL },
5593c8
+  { "pkcs-12-CRLBag", 1610612741, NULL },
5593c8
+  { "crlId", 1073741836, NULL },
5593c8
+  { "crlValue", 541073421, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { "crlId", 1, NULL },
5593c8
+  { "pkcs-12-SecretBag", 1610612741, NULL },
5593c8
+  { "secretTypeId", 1073741836, NULL },
5593c8
+  { "secretValue", 541073421, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { "secretTypeId", 1, NULL },
5593c8
+  { "pkcs-7-Data", 1073741831, NULL },
5593c8
+  { "pkcs-7-EncryptedData", 1610612741, NULL },
5593c8
+  { "version", 1073741827, NULL },
5593c8
+  { "encryptedContentInfo", 1073741826, "pkcs-7-EncryptedContentInfo"},
5593c8
+  { "unprotectedAttrs", 536895490, "pkcs-7-UnprotectedAttributes"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "pkcs-7-EncryptedContentInfo", 1610612741, NULL },
5593c8
+  { "contentType", 1073741836, NULL },
5593c8
+  { "contentEncryptionAlgorithm", 1073741826, "pkcs-7-ContentEncryptionAlgorithmIdentifier"},
5593c8
+  { "encryptedContent", 536895495, NULL },
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "pkcs-7-ContentEncryptionAlgorithmIdentifier", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "pkcs-7-UnprotectedAttributes", 1612709903, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "Attribute"},
5593c8
+  { "ProxyCertInfo", 1610612741, NULL },
5593c8
+  { "pCPathLenConstraint", 1611153411, NULL },
5593c8
+  { "0", 10, "MAX"},
5593c8
+  { "proxyPolicy", 2, "ProxyPolicy"},
5593c8
+  { "ProxyPolicy", 1610612741, NULL },
5593c8
+  { "policyLanguage", 1073741836, NULL },
5593c8
+  { "policy", 16391, NULL },
5593c8
+  { "certificatePolicies", 1612709899, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "PolicyInformation"},
5593c8
+  { "PolicyInformation", 1610612741, NULL },
5593c8
+  { "policyIdentifier", 1073741836, NULL },
5593c8
+  { "policyQualifiers", 538984459, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "PolicyQualifierInfo"},
5593c8
+  { "PolicyQualifierInfo", 1610612741, NULL },
5593c8
+  { "policyQualifierId", 1073741836, NULL },
5593c8
+  { "qualifier", 541065229, NULL },
5593c8
+  { "policyQualifierId", 1, NULL },
5593c8
+  { "CPSuri", 1073741853, NULL },
5593c8
+  { "UserNotice", 1610612741, NULL },
5593c8
+  { "noticeRef", 1073758210, "NoticeReference"},
5593c8
+  { "explicitText", 16386, "DisplayText"},
5593c8
+  { "NoticeReference", 1610612741, NULL },
5593c8
+  { "organization", 1073741826, "DisplayText"},
5593c8
+  { "noticeNumbers", 536870923, NULL },
5593c8
+  { NULL, 3, NULL },
5593c8
+  { "DisplayText", 1610612754, NULL },
5593c8
+  { "ia5String", 1612709917, NULL },
5593c8
+  { "200", 524298, "1"},
5593c8
+  { "visibleString", 1612709923, NULL },
5593c8
+  { "200", 524298, "1"},
5593c8
+  { "bmpString", 1612709921, NULL },
5593c8
+  { "200", 524298, "1"},
5593c8
+  { "utf8String", 538968098, NULL },
5593c8
+  { "200", 524298, "1"},
5593c8
+  { "OCSPRequest", 1610612741, NULL },
5593c8
+  { "tbsRequest", 1073741826, "TBSRequest"},
5593c8
+  { "optionalSignature", 536895490, "Signature"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "TBSRequest", 1610612741, NULL },
5593c8
+  { "version", 1610653699, NULL },
5593c8
+  { NULL, 1073741833, "0"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "requestorName", 1610637314, "GeneralName"},
5593c8
+  { NULL, 2056, "1"},
5593c8
+  { "requestList", 1610612747, NULL },
5593c8
+  { NULL, 2, "Request"},
5593c8
+  { "requestExtensions", 536895490, "Extensions"},
5593c8
+  { NULL, 2056, "2"},
5593c8
+  { "Signature", 1610612741, NULL },
5593c8
+  { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "signature", 1073741830, NULL },
5593c8
+  { "certs", 536895499, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { NULL, 2, "Certificate"},
5593c8
+  { "Request", 1610612741, NULL },
5593c8
+  { "reqCert", 1073741826, "CertID"},
5593c8
+  { "singleRequestExtensions", 536895490, "Extensions"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "CertID", 1610612741, NULL },
5593c8
+  { "hashAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "issuerNameHash", 1073741831, NULL },
5593c8
+  { "issuerKeyHash", 1073741831, NULL },
5593c8
+  { "serialNumber", 2, "CertificateSerialNumber"},
5593c8
+  { "OCSPResponse", 1610612741, NULL },
5593c8
+  { "responseStatus", 1073741826, "OCSPResponseStatus"},
5593c8
+  { "responseBytes", 536895490, "ResponseBytes"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "OCSPResponseStatus", 1610874901, NULL },
5593c8
+  { "successful", 1073741825, "0"},
5593c8
+  { "malformedRequest", 1073741825, "1"},
5593c8
+  { "internalError", 1073741825, "2"},
5593c8
+  { "tryLater", 1073741825, "3"},
5593c8
+  { "sigRequired", 1073741825, "5"},
5593c8
+  { "unauthorized", 1, "6"},
5593c8
+  { "ResponseBytes", 1610612741, NULL },
5593c8
+  { "responseType", 1073741836, NULL },
5593c8
+  { "response", 7, NULL },
5593c8
+  { "BasicOCSPResponse", 1610612741, NULL },
5593c8
+  { "tbsResponseData", 1073741826, "ResponseData"},
5593c8
+  { "signatureAlgorithm", 1073741826, "AlgorithmIdentifier"},
5593c8
+  { "signature", 1073741830, NULL },
5593c8
+  { "certs", 536895499, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { NULL, 2, "Certificate"},
5593c8
+  { "ResponseData", 1610612741, NULL },
5593c8
+  { "version", 1610653699, NULL },
5593c8
+  { NULL, 1073741833, "0"},
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "responderID", 1073741826, "ResponderID"},
5593c8
+  { "producedAt", 1073741861, NULL },
5593c8
+  { "responses", 1610612747, NULL },
5593c8
+  { NULL, 2, "SingleResponse"},
5593c8
+  { "responseExtensions", 536895490, "Extensions"},
5593c8
+  { NULL, 2056, "1"},
5593c8
+  { "ResponderID", 1610612754, NULL },
5593c8
+  { "byName", 1610620939, NULL },
5593c8
+  { NULL, 1073743880, "1"},
5593c8
+  { NULL, 2, "RelativeDistinguishedName"},
5593c8
+  { "byKey", 536879111, NULL },
5593c8
+  { NULL, 2056, "2"},
5593c8
+  { "SingleResponse", 1610612741, NULL },
5593c8
+  { "certID", 1073741826, "CertID"},
5593c8
+  { "certStatus", 1073741826, "CertStatus"},
5593c8
+  { "thisUpdate", 1073741861, NULL },
5593c8
+  { "nextUpdate", 1610637349, NULL },
5593c8
+  { NULL, 2056, "0"},
5593c8
+  { "singleExtensions", 536895490, "Extensions"},
5593c8
+  { NULL, 2056, "1"},
5593c8
+  { "CertStatus", 1610612754, NULL },
5593c8
+  { "good", 1610620948, NULL },
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "revoked", 1610620930, "RevokedInfo"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "unknown", 536879106, "UnknownInfo"},
5593c8
+  { NULL, 4104, "2"},
5593c8
+  { "RevokedInfo", 1610612741, NULL },
5593c8
+  { "revocationTime", 1073741861, NULL },
5593c8
+  { "revocationReason", 537157653, NULL },
5593c8
+  { NULL, 1073743880, "0"},
5593c8
+  { "unspecified", 1, "0"},
5593c8
+  { "UnknownInfo", 1073741844, NULL },
5593c8
+  { "NameConstraints", 1610612741, NULL },
5593c8
+  { "permittedSubtrees", 1610637314, "GeneralSubtrees"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "excludedSubtrees", 536895490, "GeneralSubtrees"},
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "GeneralSubtrees", 1612709899, NULL },
5593c8
+  { "MAX", 1074266122, "1"},
5593c8
+  { NULL, 2, "GeneralSubtree"},
5593c8
+  { "GeneralSubtree", 1610612741, NULL },
5593c8
+  { "base", 1073741826, "GeneralName"},
5593c8
+  { "minimum", 1610653699, NULL },
5593c8
+  { NULL, 1073741833, "0"},
5593c8
+  { NULL, 4104, "0"},
5593c8
+  { "maximum", 536895491, NULL },
5593c8
+  { NULL, 4104, "1"},
5593c8
+  { "TlsFeatures", 536870923, NULL },
5593c8
+  { NULL, 3, NULL },
5593c8
+  { NULL, 0, NULL }
5593c8
+};