1 /* 2 * Automatically generated by asn1_compiler. Do not edit 3 * 4 * ASN.1 parser for x509_akid 5 */ 6 #include <linux/asn1_ber_bytecode.h> 7 #include "x509_akid.asn1.h" 8 9 enum x509_akid_actions { 10 ACT_x509_akid_note_kid = 0, 11 ACT_x509_akid_note_name = 1, 12 ACT_x509_akid_note_serial = 2, 13 ACT_x509_extract_name_segment = 3, 14 ACT_x509_note_OID = 4, 15 NR__x509_akid_actions = 5 16 }; 17 18 static const asn1_action_t x509_akid_action_table[NR__x509_akid_actions] = { 19 [ 0] = x509_akid_note_kid, 20 [ 1] = x509_akid_note_name, 21 [ 2] = x509_akid_note_serial, 22 [ 3] = x509_extract_name_segment, 23 [ 4] = x509_note_OID, 24 }; 25 26 static const unsigned char x509_akid_machine[] = { 27 // AuthorityKeyIdentifier 28 [ 0] = ASN1_OP_MATCH, 29 [ 1] = _tag(UNIV, CONS, SEQ), 30 // KeyIdentifier 31 [ 2] = ASN1_OP_MATCH_ACT_OR_SKIP, // keyIdentifier 32 [ 3] = _tagn(CONT, PRIM, 0), 33 [ 4] = _action(ACT_x509_akid_note_kid), 34 // GeneralNames 35 [ 5] = ASN1_OP_MATCH_JUMP_OR_SKIP, // authorityCertIssuer 36 [ 6] = _tagn(CONT, CONS, 1), 37 [ 7] = _jump_target(13), // --> GeneralNames 38 // CertificateSerialNumber 39 [ 8] = ASN1_OP_MATCH_ACT_OR_SKIP, // authorityCertSerialNumber 40 [ 9] = _tagn(CONT, PRIM, 2), 41 [ 10] = _action(ACT_x509_akid_note_serial), 42 [ 11] = ASN1_OP_END_SEQ, 43 [ 12] = ASN1_OP_COMPLETE, 44 45 // GeneralName 46 [ 13] = ASN1_OP_MATCH_JUMP_OR_SKIP, // otherName 47 [ 14] = _tagn(CONT, CONS, 0), 48 [ 15] = _jump_target(44), 49 [ 16] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // rfc822Name 50 [ 17] = _tagn(CONT, CONS, 1), 51 [ 18] = _jump_target(47), 52 [ 19] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // dNSName 53 [ 20] = _tagn(CONT, CONS, 2), 54 [ 21] = _jump_target(51), 55 [ 22] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // x400Address 56 [ 23] = _tagn(CONT, CONS, 3), 57 [ 24] = _jump_target(55), 58 [ 25] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // directoryName 59 [ 26] = _tagn(CONT, CONS, 4), 60 [ 27] = _jump_target(58), 61 [ 28] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // ediPartyName 62 [ 29] = _tagn(CONT, CONS, 5), 63 [ 30] = _jump_target(78), 64 [ 31] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // uniformResourceIdentifier 65 [ 32] = _tagn(CONT, CONS, 6), 66 [ 33] = _jump_target(81), 67 [ 34] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // iPAddress 68 [ 35] = _tagn(CONT, CONS, 7), 69 [ 36] = _jump_target(85), 70 [ 37] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // registeredID 71 [ 38] = _tagn(CONT, CONS, 8), 72 [ 39] = _jump_target(89), 73 [ 40] = ASN1_OP_COND_FAIL, 74 [ 41] = ASN1_OP_END_SEQ_OF, 75 [ 42] = _jump_target(13), 76 [ 43] = ASN1_OP_RETURN, 77 78 [ 44] = ASN1_OP_MATCH_ANY, // otherName 79 [ 45] = ASN1_OP_END_SEQ, 80 [ 46] = ASN1_OP_RETURN, 81 82 [ 47] = ASN1_OP_MATCH, // rfc822Name 83 [ 48] = _tag(UNIV, PRIM, IA5STR), 84 [ 49] = ASN1_OP_END_SEQ, 85 [ 50] = ASN1_OP_RETURN, 86 87 [ 51] = ASN1_OP_MATCH, // dNSName 88 [ 52] = _tag(UNIV, PRIM, IA5STR), 89 [ 53] = ASN1_OP_END_SEQ, 90 [ 54] = ASN1_OP_RETURN, 91 92 [ 55] = ASN1_OP_MATCH_ANY, // x400Address 93 [ 56] = ASN1_OP_END_SEQ, 94 [ 57] = ASN1_OP_RETURN, 95 96 // Name 97 [ 58] = ASN1_OP_MATCH, 98 [ 59] = _tag(UNIV, CONS, SEQ), 99 // RelativeDistinguishedName 100 [ 60] = ASN1_OP_MATCH, 101 [ 61] = _tag(UNIV, CONS, SET), 102 // AttributeValueAssertion 103 [ 62] = ASN1_OP_MATCH, 104 [ 63] = _tag(UNIV, CONS, SEQ), 105 [ 64] = ASN1_OP_MATCH_ACT, // attributeType 106 [ 65] = _tag(UNIV, PRIM, OID), 107 [ 66] = _action(ACT_x509_note_OID), 108 [ 67] = ASN1_OP_MATCH_ANY_ACT, // attributeValue 109 [ 68] = _action(ACT_x509_extract_name_segment), 110 [ 69] = ASN1_OP_END_SEQ, 111 [ 70] = ASN1_OP_END_SET_OF, 112 [ 71] = _jump_target(62), 113 [ 72] = ASN1_OP_END_SEQ_OF, 114 [ 73] = _jump_target(60), 115 [ 74] = ASN1_OP_ACT, 116 [ 75] = _action(ACT_x509_akid_note_name), 117 [ 76] = ASN1_OP_END_SEQ, 118 [ 77] = ASN1_OP_RETURN, 119 120 [ 78] = ASN1_OP_MATCH_ANY, // ediPartyName 121 [ 79] = ASN1_OP_END_SEQ, 122 [ 80] = ASN1_OP_RETURN, 123 124 [ 81] = ASN1_OP_MATCH, // uniformResourceIdentifier 125 [ 82] = _tag(UNIV, PRIM, IA5STR), 126 [ 83] = ASN1_OP_END_SEQ, 127 [ 84] = ASN1_OP_RETURN, 128 129 [ 85] = ASN1_OP_MATCH, // iPAddress 130 [ 86] = _tag(UNIV, PRIM, OTS), 131 [ 87] = ASN1_OP_END_SEQ, 132 [ 88] = ASN1_OP_RETURN, 133 134 [ 89] = ASN1_OP_MATCH, // registeredID 135 [ 90] = _tag(UNIV, PRIM, OID), 136 [ 91] = ASN1_OP_END_SEQ, 137 [ 92] = ASN1_OP_RETURN, 138 }; 139 140 const struct asn1_decoder x509_akid_decoder = { 141 .machine = x509_akid_machine, 142 .machlen = sizeof(x509_akid_machine), 143 .actions = x509_akid_action_table, 144 }; 145