/*
 * Automatically generated by asn1_compiler.  Do not edit
 *
 * ASN.1 parser for rsaprivkey
 */
#include <linux/asn1_ber_bytecode.h>
#include "rsaprivkey-asn1.h"

enum rsaprivkey_actions {
	ACT_rsa_get_d = 0,
	ACT_rsa_get_e = 1,
	ACT_rsa_get_n = 2,
	NR__rsaprivkey_actions = 3
};

static const asn1_action_t rsaprivkey_action_table[NR__rsaprivkey_actions] = {
	[   0] = rsa_get_d,
	[   1] = rsa_get_e,
	[   2] = rsa_get_n,
};

static const unsigned char rsaprivkey_machine[] = {
	// RsaPrivKey
	[   0] = ASN1_OP_MATCH,
	[   1] = _tag(UNIV, CONS, SEQ),
	[   2] =  ASN1_OP_MATCH,		// version
	[   3] =  _tag(UNIV, PRIM, INT),
	[   4] =  ASN1_OP_MATCH_ACT,		// n
	[   5] =  _tag(UNIV, PRIM, INT),
	[   6] =  _action(ACT_rsa_get_n),
	[   7] =  ASN1_OP_MATCH_ACT,		// e
	[   8] =  _tag(UNIV, PRIM, INT),
	[   9] =  _action(ACT_rsa_get_e),
	[  10] =  ASN1_OP_MATCH_ACT,		// d
	[  11] =  _tag(UNIV, PRIM, INT),
	[  12] =  _action(ACT_rsa_get_d),
	[  13] =  ASN1_OP_MATCH,		// prime1
	[  14] =  _tag(UNIV, PRIM, INT),
	[  15] =  ASN1_OP_MATCH,		// prime2
	[  16] =  _tag(UNIV, PRIM, INT),
	[  17] =  ASN1_OP_MATCH,		// exponent1
	[  18] =  _tag(UNIV, PRIM, INT),
	[  19] =  ASN1_OP_MATCH,		// exponent2
	[  20] =  _tag(UNIV, PRIM, INT),
	[  21] =  ASN1_OP_MATCH,		// coefficient
	[  22] =  _tag(UNIV, PRIM, INT),
	[  23] = ASN1_OP_END_SEQ,
	[  24] = ASN1_OP_COMPLETE,
};

const struct asn1_decoder rsaprivkey_decoder = {
	.machine = rsaprivkey_machine,
	.machlen = sizeof(rsaprivkey_machine),
	.actions = rsaprivkey_action_table,
};
