summaryrefslogtreecommitdiff
path: root/compat/verification/pkcs7.asn1.c
diff options
context:
space:
mode:
Diffstat (limited to 'compat/verification/pkcs7.asn1.c')
-rw-r--r--compat/verification/pkcs7.asn1.c355
1 files changed, 355 insertions, 0 deletions
diff --git a/compat/verification/pkcs7.asn1.c b/compat/verification/pkcs7.asn1.c
new file mode 100644
index 0000000..d8c91f5
--- /dev/null
+++ b/compat/verification/pkcs7.asn1.c
@@ -0,0 +1,355 @@
+/*
+ * Automatically generated by asn1_compiler. Do not edit
+ *
+ * ASN.1 parser for pkcs7
+ */
+#include <linux/asn1_ber_bytecode.h>
+#include "pkcs7.asn1.h"
+
+enum pkcs7_actions {
+ ACT_pkcs7_check_content_type = 0,
+ ACT_pkcs7_extract_cert = 1,
+ ACT_pkcs7_note_OID = 2,
+ ACT_pkcs7_note_certificate_list = 3,
+ ACT_pkcs7_note_content = 4,
+ ACT_pkcs7_note_data = 5,
+ ACT_pkcs7_note_signed_info = 6,
+ ACT_pkcs7_note_signeddata_version = 7,
+ ACT_pkcs7_note_signerinfo_version = 8,
+ ACT_pkcs7_sig_note_authenticated_attr = 9,
+ ACT_pkcs7_sig_note_digest_algo = 10,
+ ACT_pkcs7_sig_note_issuer = 11,
+ ACT_pkcs7_sig_note_pkey_algo = 12,
+ ACT_pkcs7_sig_note_serial = 13,
+ ACT_pkcs7_sig_note_set_of_authattrs = 14,
+ ACT_pkcs7_sig_note_signature = 15,
+ ACT_pkcs7_sig_note_skid = 16,
+ NR__pkcs7_actions = 17
+};
+
+static const asn1_action_t pkcs7_action_table[NR__pkcs7_actions] = {
+ [ 0] = pkcs7_check_content_type,
+ [ 1] = pkcs7_extract_cert,
+ [ 2] = pkcs7_note_OID,
+ [ 3] = pkcs7_note_certificate_list,
+ [ 4] = pkcs7_note_content,
+ [ 5] = pkcs7_note_data,
+ [ 6] = pkcs7_note_signed_info,
+ [ 7] = pkcs7_note_signeddata_version,
+ [ 8] = pkcs7_note_signerinfo_version,
+ [ 9] = pkcs7_sig_note_authenticated_attr,
+ [ 10] = pkcs7_sig_note_digest_algo,
+ [ 11] = pkcs7_sig_note_issuer,
+ [ 12] = pkcs7_sig_note_pkey_algo,
+ [ 13] = pkcs7_sig_note_serial,
+ [ 14] = pkcs7_sig_note_set_of_authattrs,
+ [ 15] = pkcs7_sig_note_signature,
+ [ 16] = pkcs7_sig_note_skid,
+};
+
+static const unsigned char pkcs7_machine[] = {
+ // PKCS7ContentInfo
+ [ 0] = ASN1_OP_MATCH,
+ [ 1] = _tag(UNIV, CONS, SEQ),
+ // ContentType
+ [ 2] = ASN1_OP_MATCH_ACT,
+ [ 3] = _tag(UNIV, PRIM, OID),
+ [ 4] = _action(ACT_pkcs7_note_OID),
+ [ 5] = ASN1_OP_ACT,
+ [ 6] = _action(ACT_pkcs7_check_content_type),
+ [ 7] = ASN1_OP_MATCH_JUMP_OR_SKIP, // content
+ [ 8] = _tagn(CONT, CONS, 0),
+ [ 9] = _jump_target(12),
+ [ 10] = ASN1_OP_END_SEQ,
+ [ 11] = ASN1_OP_COMPLETE,
+
+ // SignedData
+ [ 12] = ASN1_OP_MATCH,
+ [ 13] = _tag(UNIV, CONS, SEQ),
+ [ 14] = ASN1_OP_MATCH_ACT, // version
+ [ 15] = _tag(UNIV, PRIM, INT),
+ [ 16] = _action(ACT_pkcs7_note_signeddata_version),
+ // DigestAlgorithmIdentifiers
+ [ 17] = ASN1_OP_MATCH_JUMP_OR_SKIP, // daSet
+ [ 18] = _tag(UNIV, CONS, SET),
+ [ 19] = _jump_target(61),
+ [ 20] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // daSequence
+ [ 21] = _tag(UNIV, CONS, SEQ),
+ [ 22] = _jump_target(67),
+ [ 23] = ASN1_OP_COND_FAIL,
+ // ContentInfo
+ [ 24] = ASN1_OP_MATCH,
+ [ 25] = _tag(UNIV, CONS, SEQ),
+ // ContentType
+ [ 26] = ASN1_OP_MATCH_ACT,
+ [ 27] = _tag(UNIV, PRIM, OID),
+ [ 28] = _action(ACT_pkcs7_note_OID),
+ [ 29] = ASN1_OP_ACT,
+ [ 30] = _action(ACT_pkcs7_note_OID),
+ [ 31] = ASN1_OP_MATCH_JUMP_OR_SKIP, // content
+ [ 32] = _tagn(CONT, CONS, 0),
+ [ 33] = _jump_target(73),
+ [ 34] = ASN1_OP_END_SEQ,
+ [ 35] = ASN1_OP_ACT,
+ [ 36] = _action(ACT_pkcs7_note_content),
+ // ExtendedCertificatesAndCertificates
+ [ 37] = ASN1_OP_MATCH_JUMP_OR_SKIP, // certSet
+ [ 38] = _tagn(CONT, CONS, 0),
+ [ 39] = _jump_target(77), // --> ExtendedCertificatesAndCertificates
+ // Certificates
+ [ 40] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // certSequence
+ [ 41] = _tagn(CONT, CONS, 2),
+ [ 42] = _jump_target(85), // --> Certificates
+ [ 43] = ASN1_OP_ACT,
+ [ 44] = _action(ACT_pkcs7_note_certificate_list),
+ // CertificateRevocationLists
+ [ 45] = ASN1_OP_MATCH_JUMP_OR_SKIP, // crlSet
+ [ 46] = _tagn(CONT, CONS, 1),
+ [ 47] = _jump_target(90), // --> CertificateRevocationLists
+ // CRLSequence
+ [ 48] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // crlSequence
+ [ 49] = _tagn(CONT, CONS, 3),
+ [ 50] = _jump_target(96), // --> CRLSequence
+ // SignerInfos
+ [ 51] = ASN1_OP_MATCH_JUMP_OR_SKIP, // siSet
+ [ 52] = _tag(UNIV, CONS, SET),
+ [ 53] = _jump_target(102),
+ [ 54] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // siSequence
+ [ 55] = _tag(UNIV, CONS, SEQ),
+ [ 56] = _jump_target(108),
+ [ 57] = ASN1_OP_COND_FAIL,
+ [ 58] = ASN1_OP_END_SEQ,
+ [ 59] = ASN1_OP_END_SEQ,
+ [ 60] = ASN1_OP_RETURN,
+
+ // DigestAlgorithmIdentifier
+ [ 61] = ASN1_OP_MATCH_JUMP,
+ [ 62] = _tag(UNIV, CONS, SEQ),
+ [ 63] = _jump_target(114), // --> DigestAlgorithmIdentifier
+ [ 64] = ASN1_OP_END_SET_OF,
+ [ 65] = _jump_target(61),
+ [ 66] = ASN1_OP_RETURN,
+
+ // DigestAlgorithmIdentifier
+ [ 67] = ASN1_OP_MATCH_JUMP,
+ [ 68] = _tag(UNIV, CONS, SEQ),
+ [ 69] = _jump_target(114), // --> DigestAlgorithmIdentifier
+ [ 70] = ASN1_OP_END_SEQ_OF,
+ [ 71] = _jump_target(67),
+ [ 72] = ASN1_OP_RETURN,
+
+ // Data
+ [ 73] = ASN1_OP_MATCH_ANY_ACT,
+ [ 74] = _action(ACT_pkcs7_note_data),
+ [ 75] = ASN1_OP_END_SEQ,
+ [ 76] = ASN1_OP_RETURN,
+
+ // ExtendedCertificateOrCertificate
+ // Certificate
+ [ 77] = ASN1_OP_MATCH_ANY_ACT_OR_SKIP,
+ [ 78] = _action(ACT_pkcs7_extract_cert),
+ // ExtendedCertificate
+ // Certificate
+ [ 79] = ASN1_OP_COND_MATCH_ANY_ACT_OR_SKIP,
+ [ 80] = _action(ACT_pkcs7_extract_cert),
+ [ 81] = ASN1_OP_COND_FAIL,
+ [ 82] = ASN1_OP_END_SET_OF,
+ [ 83] = _jump_target(77),
+ [ 84] = ASN1_OP_RETURN,
+
+ // Certificate
+ [ 85] = ASN1_OP_MATCH_ANY_ACT,
+ [ 86] = _action(ACT_pkcs7_extract_cert),
+ [ 87] = ASN1_OP_END_SEQ_OF,
+ [ 88] = _jump_target(85),
+ [ 89] = ASN1_OP_RETURN,
+
+ // CertificateList
+ [ 90] = ASN1_OP_MATCH_JUMP,
+ [ 91] = _tag(UNIV, CONS, SEQ),
+ [ 92] = _jump_target(120), // --> CertificateList
+ [ 93] = ASN1_OP_END_SET_OF,
+ [ 94] = _jump_target(90),
+ [ 95] = ASN1_OP_RETURN,
+
+ // CertificateList
+ [ 96] = ASN1_OP_MATCH_JUMP,
+ [ 97] = _tag(UNIV, CONS, SEQ),
+ [ 98] = _jump_target(120), // --> CertificateList
+ [ 99] = ASN1_OP_END_SEQ_OF,
+ [ 100] = _jump_target(96),
+ [ 101] = ASN1_OP_RETURN,
+
+ // SignerInfo
+ [ 102] = ASN1_OP_MATCH_JUMP,
+ [ 103] = _tag(UNIV, CONS, SEQ),
+ [ 104] = _jump_target(125), // --> SignerInfo
+ [ 105] = ASN1_OP_END_SET_OF,
+ [ 106] = _jump_target(102),
+ [ 107] = ASN1_OP_RETURN,
+
+ // SignerInfo
+ [ 108] = ASN1_OP_MATCH_JUMP,
+ [ 109] = _tag(UNIV, CONS, SEQ),
+ [ 110] = _jump_target(125), // --> SignerInfo
+ [ 111] = ASN1_OP_END_SEQ_OF,
+ [ 112] = _jump_target(108),
+ [ 113] = ASN1_OP_RETURN,
+
+ [ 114] = ASN1_OP_MATCH_ACT, // algorithm
+ [ 115] = _tag(UNIV, PRIM, OID),
+ [ 116] = _action(ACT_pkcs7_note_OID),
+ [ 117] = ASN1_OP_MATCH_ANY_OR_SKIP, // parameters
+ [ 118] = ASN1_OP_END_SEQ,
+ [ 119] = ASN1_OP_RETURN,
+
+ // Certificate
+ [ 120] = ASN1_OP_MATCH_ANY_ACT,
+ [ 121] = _action(ACT_pkcs7_extract_cert),
+ [ 122] = ASN1_OP_END_SEQ_OF,
+ [ 123] = _jump_target(120),
+ [ 124] = ASN1_OP_RETURN,
+
+ [ 125] = ASN1_OP_MATCH_ACT, // version
+ [ 126] = _tag(UNIV, PRIM, INT),
+ [ 127] = _action(ACT_pkcs7_note_signerinfo_version),
+ // SignerIdentifier
+ // IssuerAndSerialNumber
+ [ 128] = ASN1_OP_MATCH_JUMP_OR_SKIP, // issuerAndSerialNumber
+ [ 129] = _tag(UNIV, CONS, SEQ),
+ [ 130] = _jump_target(169), // --> IssuerAndSerialNumber
+ // SubjectKeyIdentifier
+ [ 131] = ASN1_OP_COND_MATCH_ACT_OR_SKIP, // subjectKeyIdentifier
+ [ 132] = _tagn(CONT, PRIM, 0),
+ [ 133] = _action(ACT_pkcs7_sig_note_skid),
+ [ 134] = ASN1_OP_COND_FAIL,
+ // DigestAlgorithmIdentifier
+ [ 135] = ASN1_OP_MATCH_JUMP,
+ [ 136] = _tag(UNIV, CONS, SEQ),
+ [ 137] = _jump_target(114), // --> DigestAlgorithmIdentifier
+ [ 138] = ASN1_OP_ACT,
+ [ 139] = _action(ACT_pkcs7_sig_note_digest_algo),
+ // SetOfAuthenticatedAttribute
+ [ 140] = ASN1_OP_MATCH_JUMP_OR_SKIP, // aaSet
+ [ 141] = _tagn(CONT, CONS, 0),
+ [ 142] = _jump_target(192), // --> SetOfAuthenticatedAttribute
+ [ 143] = ASN1_OP_MAYBE_ACT,
+ [ 144] = _action(ACT_pkcs7_sig_note_set_of_authattrs),
+ [ 145] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // aaSequence
+ [ 146] = _tagn(CONT, CONS, 2),
+ [ 147] = _jump_target(198),
+ // DigestEncryptionAlgorithmIdentifier
+ [ 148] = ASN1_OP_MATCH,
+ [ 149] = _tag(UNIV, CONS, SEQ),
+ [ 150] = ASN1_OP_MATCH_ACT, // algorithm
+ [ 151] = _tag(UNIV, PRIM, OID),
+ [ 152] = _action(ACT_pkcs7_note_OID),
+ [ 153] = ASN1_OP_MATCH_ANY_OR_SKIP, // parameters
+ [ 154] = ASN1_OP_END_SEQ,
+ [ 155] = ASN1_OP_ACT,
+ [ 156] = _action(ACT_pkcs7_sig_note_pkey_algo),
+ // EncryptedDigest
+ [ 157] = ASN1_OP_MATCH_ACT,
+ [ 158] = _tag(UNIV, PRIM, OTS),
+ [ 159] = _action(ACT_pkcs7_sig_note_signature),
+ [ 160] = ASN1_OP_MATCH_JUMP_OR_SKIP, // uaSet
+ [ 161] = _tagn(CONT, CONS, 1),
+ [ 162] = _jump_target(207),
+ [ 163] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // uaSequence
+ [ 164] = _tagn(CONT, CONS, 3),
+ [ 165] = _jump_target(213),
+ [ 166] = ASN1_OP_END_SEQ_ACT,
+ [ 167] = _action(ACT_pkcs7_note_signed_info),
+ [ 168] = ASN1_OP_RETURN,
+
+ // Name
+ [ 169] = ASN1_OP_MATCH,
+ [ 170] = _tag(UNIV, CONS, SEQ),
+ // RelativeDistinguishedName
+ [ 171] = ASN1_OP_MATCH,
+ [ 172] = _tag(UNIV, CONS, SET),
+ // AttributeValueAssertion
+ [ 173] = ASN1_OP_MATCH,
+ [ 174] = _tag(UNIV, CONS, SEQ),
+ [ 175] = ASN1_OP_MATCH_ACT, // attributeType
+ [ 176] = _tag(UNIV, PRIM, OID),
+ [ 177] = _action(ACT_pkcs7_note_OID),
+ [ 178] = ASN1_OP_MATCH_ANY, // attributeValue
+ [ 179] = ASN1_OP_END_SEQ,
+ [ 180] = ASN1_OP_END_SET_OF,
+ [ 181] = _jump_target(173),
+ [ 182] = ASN1_OP_END_SEQ_OF,
+ [ 183] = _jump_target(171),
+ [ 184] = ASN1_OP_ACT,
+ [ 185] = _action(ACT_pkcs7_sig_note_issuer),
+ // CertificateSerialNumber
+ [ 186] = ASN1_OP_MATCH,
+ [ 187] = _tag(UNIV, PRIM, INT),
+ [ 188] = ASN1_OP_ACT,
+ [ 189] = _action(ACT_pkcs7_sig_note_serial),
+ [ 190] = ASN1_OP_END_SEQ,
+ [ 191] = ASN1_OP_RETURN,
+
+ // AuthenticatedAttribute
+ [ 192] = ASN1_OP_MATCH_JUMP,
+ [ 193] = _tag(UNIV, CONS, SEQ),
+ [ 194] = _jump_target(219), // --> AuthenticatedAttribute
+ [ 195] = ASN1_OP_END_SET_OF,
+ [ 196] = _jump_target(192),
+ [ 197] = ASN1_OP_RETURN,
+
+ [ 198] = ASN1_OP_MATCH, // aaSequence
+ [ 199] = _tag(UNIV, CONS, SEQ),
+ // AuthenticatedAttribute
+ [ 200] = ASN1_OP_MATCH_JUMP,
+ [ 201] = _tag(UNIV, CONS, SEQ),
+ [ 202] = _jump_target(219), // --> AuthenticatedAttribute
+ [ 203] = ASN1_OP_END_SEQ_OF,
+ [ 204] = _jump_target(200),
+ [ 205] = ASN1_OP_END_SEQ,
+ [ 206] = ASN1_OP_RETURN,
+
+ // UnauthenticatedAttribute
+ [ 207] = ASN1_OP_MATCH_JUMP,
+ [ 208] = _tag(UNIV, CONS, SEQ),
+ [ 209] = _jump_target(230), // --> UnauthenticatedAttribute
+ [ 210] = ASN1_OP_END_SET_OF,
+ [ 211] = _jump_target(207),
+ [ 212] = ASN1_OP_RETURN,
+
+ // UnauthenticatedAttribute
+ [ 213] = ASN1_OP_MATCH_JUMP,
+ [ 214] = _tag(UNIV, CONS, SEQ),
+ [ 215] = _jump_target(230), // --> UnauthenticatedAttribute
+ [ 216] = ASN1_OP_END_SEQ_OF,
+ [ 217] = _jump_target(213),
+ [ 218] = ASN1_OP_RETURN,
+
+ [ 219] = ASN1_OP_MATCH_ACT, // type
+ [ 220] = _tag(UNIV, PRIM, OID),
+ [ 221] = _action(ACT_pkcs7_note_OID),
+ [ 222] = ASN1_OP_MATCH, // values
+ [ 223] = _tag(UNIV, CONS, SET),
+ [ 224] = ASN1_OP_MATCH_ANY_ACT,
+ [ 225] = _action(ACT_pkcs7_sig_note_authenticated_attr),
+ [ 226] = ASN1_OP_END_SET_OF,
+ [ 227] = _jump_target(224),
+ [ 228] = ASN1_OP_END_SEQ,
+ [ 229] = ASN1_OP_RETURN,
+
+ [ 230] = ASN1_OP_MATCH, // type
+ [ 231] = _tag(UNIV, PRIM, OID),
+ [ 232] = ASN1_OP_MATCH, // values
+ [ 233] = _tag(UNIV, CONS, SET),
+ [ 234] = ASN1_OP_MATCH_ANY,
+ [ 235] = ASN1_OP_END_SET_OF,
+ [ 236] = _jump_target(234),
+ [ 237] = ASN1_OP_END_SEQ,
+ [ 238] = ASN1_OP_RETURN,
+};
+
+const struct asn1_decoder pkcs7_decoder = {
+ .machine = pkcs7_machine,
+ .machlen = sizeof(pkcs7_machine),
+ .actions = pkcs7_action_table,
+};