/*
 * Generated by asn1c-0.9.28 (http://lionet.info/asn1c)
 * From ASN.1 module "RANAP-IEs"
 * 	found in "../../asn1/ranap/RANAP-IEs.asn"
 */

#ifndef	_RANAP_EncryptionAlgorithm_H_
#define	_RANAP_EncryptionAlgorithm_H_


#include <asn_application.h>

/* Including external dependencies */
#include <NativeInteger.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Dependencies */
typedef enum RANAP_EncryptionAlgorithm {
	RANAP_EncryptionAlgorithm_no_encryption	= 0,
	RANAP_EncryptionAlgorithm_standard_UMTS_encryption_algorith_UEA1	= 1,
	RANAP_EncryptionAlgorithm_standard_UMTS_encryption_algorithm_UEA2	= 2
} e_RANAP_EncryptionAlgorithm;

/* RANAP_EncryptionAlgorithm */
typedef long	 RANAP_EncryptionAlgorithm_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_RANAP_EncryptionAlgorithm;
asn_struct_free_f RANAP_EncryptionAlgorithm_free;
asn_struct_print_f RANAP_EncryptionAlgorithm_print;
asn_constr_check_f RANAP_EncryptionAlgorithm_constraint;
ber_type_decoder_f RANAP_EncryptionAlgorithm_decode_ber;
der_type_encoder_f RANAP_EncryptionAlgorithm_encode_der;
xer_type_decoder_f RANAP_EncryptionAlgorithm_decode_xer;
xer_type_encoder_f RANAP_EncryptionAlgorithm_encode_xer;
per_type_decoder_f RANAP_EncryptionAlgorithm_decode_uper;
per_type_encoder_f RANAP_EncryptionAlgorithm_encode_uper;
per_type_decoder_f RANAP_EncryptionAlgorithm_decode_aper;
per_type_encoder_f RANAP_EncryptionAlgorithm_encode_aper;

#ifdef __cplusplus
}
#endif

#endif	/* _RANAP_EncryptionAlgorithm_H_ */
#include <asn_internal.h>
