/* * Automatically generated by asn1_compiler. Do not edit * * ASN.1 parser for x509_akid */ #include #include "x509_akid-asn1.h" enum x509_akid_actions { ACT_x509_akid_note_kid = 0, ACT_x509_akid_note_name = 1, ACT_x509_akid_note_serial = 2, ACT_x509_extract_name_segment = 3, ACT_x509_note_OID = 4, NR__x509_akid_actions = 5 }; static const asn1_action_t x509_akid_action_table[NR__x509_akid_actions] = { [ 0] = x509_akid_note_kid, [ 1] = x509_akid_note_name, [ 2] = x509_akid_note_serial, [ 3] = x509_extract_name_segment, [ 4] = x509_note_OID, }; static const unsigned char x509_akid_machine[] = { // AuthorityKeyIdentifier [ 0] = ASN1_OP_MATCH, [ 1] = _tag(UNIV, CONS, SEQ), // KeyIdentifier [ 2] = ASN1_OP_MATCH_ACT_OR_SKIP, // keyIdentifier [ 3] = _tagn(CONT, PRIM, 0), [ 4] = _action(ACT_x509_akid_note_kid), // GeneralNames [ 5] = ASN1_OP_MATCH_JUMP_OR_SKIP, // authorityCertIssuer [ 6] = _tagn(CONT, CONS, 1), [ 7] = _jump_target(13), // --> GeneralNames // CertificateSerialNumber [ 8] = ASN1_OP_MATCH_ACT_OR_SKIP, // authorityCertSerialNumber [ 9] = _tagn(CONT, PRIM, 2), [ 10] = _action(ACT_x509_akid_note_serial), [ 11] = ASN1_OP_END_SEQ, [ 12] = ASN1_OP_COMPLETE, // GeneralName [ 13] = ASN1_OP_MATCH_JUMP_OR_SKIP, // otherName [ 14] = _tagn(CONT, CONS, 0), [ 15] = _jump_target(44), [ 16] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // rfc822Name [ 17] = _tagn(CONT, CONS, 1), [ 18] = _jump_target(47), [ 19] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // dNSName [ 20] = _tagn(CONT, CONS, 2), [ 21] = _jump_target(51), [ 22] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // x400Address [ 23] = _tagn(CONT, CONS, 3), [ 24] = _jump_target(55), [ 25] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // directoryName [ 26] = _tagn(CONT, CONS, 4), [ 27] = _jump_target(58), [ 28] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // ediPartyName [ 29] = _tagn(CONT, CONS, 5), [ 30] = _jump_target(78), [ 31] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // uniformResourceIdentifier [ 32] = _tagn(CONT, CONS, 6), [ 33] = _jump_target(81), [ 34] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // iPAddress [ 35] = _tagn(CONT, CONS, 7), [ 36] = _jump_target(85), [ 37] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // registeredID [ 38] = _tagn(CONT, CONS, 8), [ 39] = _jump_target(89), [ 40] = ASN1_OP_COND_FAIL, [ 41] = ASN1_OP_END_SEQ_OF, [ 42] = _jump_target(13), [ 43] = ASN1_OP_RETURN, [ 44] = ASN1_OP_MATCH_ANY, // otherName [ 45] = ASN1_OP_END_SEQ, [ 46] = ASN1_OP_RETURN, [ 47] = ASN1_OP_MATCH, // rfc822Name [ 48] = _tag(UNIV, PRIM, IA5STR), [ 49] = ASN1_OP_END_SEQ, [ 50] = ASN1_OP_RETURN, [ 51] = ASN1_OP_MATCH, // dNSName [ 52] = _tag(UNIV, PRIM, IA5STR), [ 53] = ASN1_OP_END_SEQ, [ 54] = ASN1_OP_RETURN, [ 55] = ASN1_OP_MATCH_ANY, // x400Address [ 56] = ASN1_OP_END_SEQ, [ 57] = ASN1_OP_RETURN, // Name [ 58] = ASN1_OP_MATCH, [ 59] = _tag(UNIV, CONS, SEQ), // RelativeDistinguishedName [ 60] = ASN1_OP_MATCH, [ 61] = _tag(UNIV, CONS, SET), // AttributeValueAssertion [ 62] = ASN1_OP_MATCH, [ 63] = _tag(UNIV, CONS, SEQ), [ 64] = ASN1_OP_MATCH_ACT, // attributeType [ 65] = _tag(UNIV, PRIM, OID), [ 66] = _action(ACT_x509_note_OID), [ 67] = ASN1_OP_MATCH_ANY_ACT, // attributeValue [ 68] = _action(ACT_x509_extract_name_segment), [ 69] = ASN1_OP_END_SEQ, [ 70] = ASN1_OP_END_SET_OF, [ 71] = _jump_target(62), [ 72] = ASN1_OP_END_SEQ_OF, [ 73] = _jump_target(60), [ 74] = ASN1_OP_ACT, [ 75] = _action(ACT_x509_akid_note_name), [ 76] = ASN1_OP_END_SEQ, [ 77] = ASN1_OP_RETURN, [ 78] = ASN1_OP_MATCH_ANY, // ediPartyName [ 79] = ASN1_OP_END_SEQ, [ 80] = ASN1_OP_RETURN, [ 81] = ASN1_OP_MATCH, // uniformResourceIdentifier [ 82] = _tag(UNIV, PRIM, IA5STR), [ 83] = ASN1_OP_END_SEQ, [ 84] = ASN1_OP_RETURN, [ 85] = ASN1_OP_MATCH, // iPAddress [ 86] = _tag(UNIV, PRIM, OTS), [ 87] = ASN1_OP_END_SEQ, [ 88] = ASN1_OP_RETURN, [ 89] = ASN1_OP_MATCH, // registeredID [ 90] = _tag(UNIV, PRIM, OID), [ 91] = ASN1_OP_END_SEQ, [ 92] = ASN1_OP_RETURN, }; const struct asn1_decoder x509_akid_decoder = { .machine = x509_akid_machine, .machlen = sizeof(x509_akid_machine), .actions = x509_akid_action_table, };