/* * 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 // OtherName [ 13] = ASN1_OP_MATCH_JUMP_OR_SKIP, // otherName [ 14] = _tagn(CONT, CONS, 0), [ 15] = _jump_target(39), // --> OtherName [ 16] = ASN1_OP_COND_MATCH_OR_SKIP, // rfc822Name [ 17] = _tagn(CONT, PRIM, 1), [ 18] = ASN1_OP_COND_MATCH_OR_SKIP, // dNSName [ 19] = _tagn(CONT, PRIM, 2), [ 20] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // x400Address [ 21] = _tagn(CONT, CONS, 3), [ 22] = _jump_target(47), [ 23] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // directoryName [ 24] = _tagn(CONT, CONS, 4), [ 25] = _jump_target(50), // EDIPartyName [ 26] = ASN1_OP_COND_MATCH_JUMP_OR_SKIP, // ediPartyName [ 27] = _tagn(CONT, CONS, 5), [ 28] = _jump_target(70), // --> EDIPartyName [ 29] = ASN1_OP_COND_MATCH_OR_SKIP, // uniformResourceIdentifier [ 30] = _tagn(CONT, PRIM, 6), [ 31] = ASN1_OP_COND_MATCH_OR_SKIP, // iPAddress [ 32] = _tagn(CONT, PRIM, 7), [ 33] = ASN1_OP_COND_MATCH_OR_SKIP, // registeredID [ 34] = _tagn(CONT, PRIM, 8), [ 35] = ASN1_OP_COND_FAIL, [ 36] = ASN1_OP_END_SEQ_OF, [ 37] = _jump_target(13), [ 38] = ASN1_OP_RETURN, [ 39] = ASN1_OP_MATCH, // type-id [ 40] = _tag(UNIV, PRIM, OID), [ 41] = ASN1_OP_MATCH, // value [ 42] = _tagn(CONT, CONS, 0), [ 43] = ASN1_OP_MATCH_ANY, // value [ 44] = ASN1_OP_END_SEQ, [ 45] = ASN1_OP_END_SEQ, [ 46] = ASN1_OP_RETURN, [ 47] = ASN1_OP_MATCH_ANY, // x400Address [ 48] = ASN1_OP_END_SEQ, [ 49] = ASN1_OP_RETURN, // Name [ 50] = ASN1_OP_MATCH, [ 51] = _tag(UNIV, CONS, SEQ), // RelativeDistinguishedName [ 52] = ASN1_OP_MATCH, [ 53] = _tag(UNIV, CONS, SET), // AttributeValueAssertion [ 54] = ASN1_OP_MATCH, [ 55] = _tag(UNIV, CONS, SEQ), [ 56] = ASN1_OP_MATCH_ACT, // attributeType [ 57] = _tag(UNIV, PRIM, OID), [ 58] = _action(ACT_x509_note_OID), [ 59] = ASN1_OP_MATCH_ANY_ACT, // attributeValue [ 60] = _action(ACT_x509_extract_name_segment), [ 61] = ASN1_OP_END_SEQ, [ 62] = ASN1_OP_END_SET_OF, [ 63] = _jump_target(54), [ 64] = ASN1_OP_END_SEQ_OF, [ 65] = _jump_target(52), [ 66] = ASN1_OP_ACT, [ 67] = _action(ACT_x509_akid_note_name), [ 68] = ASN1_OP_END_SEQ, [ 69] = ASN1_OP_RETURN, [ 70] = ASN1_OP_MATCH_JUMP_OR_SKIP, // nameAssigner [ 71] = _tagn(CONT, CONS, 0), [ 72] = _jump_target(79), [ 73] = ASN1_OP_MATCH, // partyName [ 74] = _tagn(CONT, CONS, 1), [ 75] = ASN1_OP_MATCH_ANY, // partyName [ 76] = ASN1_OP_END_SEQ, [ 77] = ASN1_OP_END_SEQ, [ 78] = ASN1_OP_RETURN, [ 79] = ASN1_OP_MATCH_ANY, // nameAssigner [ 80] = ASN1_OP_END_SEQ, [ 81] = ASN1_OP_RETURN, }; const struct asn1_decoder x509_akid_decoder = { .machine = x509_akid_machine, .machlen = sizeof(x509_akid_machine), .actions = x509_akid_action_table, };