linux-zen-desktop/crypto/asymmetric_keys/pkcs7.asn1.c

356 lines
11 KiB
C

/*
* 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,
};