/******************************************************************************/ /* asn1codec.h */ /* */ /* Definition of ASN.1 encoder / decoder loading functions */ /* The protocol loading interface to Talura ASN.1 run-time engine (TARE) */ /* Used by code generated by Talura ASN.1 compiler (TACO) */ /* */ /* Copyright: Talura 2002, All rights reserved */ /* */ /******************************************************************************/ /* prevent multiple definition */ #ifndef _ASN1CODEC_H #define _ASN1CODEC_H /* standard header files */ #include #include #include /* proprietary header files */ #include /* typedef definitions */ /* (none) */ /* constant definitions */ /* (none) */ /* macro definitions */ /* (none) */ /* enumerator definitions */ enum transfer_syntax { BER, CER, DER, PER_Aligned, PER_Unligned, BASIC_PER_Aligned, BASIC_PER_Unligned, CANONICAL_PER_Aligned, CANONICAL_PER_Unaligned, BASIC_XER, CANONICAL_XER, ECN }; /* structure definitions */ typedef struct { int MagicCode; } ASN1_BitStringArg_t; typedef struct { int MagicCode; } ASN1_BooleanArg_t; typedef struct { int MagicCode; } ASN1_CharacterStringArg_t; typedef struct { int MagicCode; } ASN1_BMPStringArg_t; typedef struct { int MagicCode; } ASN1_GeneralStringArg_t; typedef struct { int MagicCode; } ASN1_GraphicStringArg_t; typedef ASN1_GraphicStringArg_t ASN1_ObjectDescriptorArg_t; typedef struct { int MagicCode; } ASN1_IA5StringArg_t; typedef struct { int MagicCode; } ASN1_ISO646StringArg_t; typedef struct { int MagicCode; } ASN1_NumericStringArg_t; typedef struct { int MagicCode; } ASN1_PrintableStringArg_t; typedef struct { int MagicCode; } ASN1_TeletexStringArg_t; typedef struct { int MagicCode; } ASN1_T61StringArg_t; typedef struct { int MagicCode; } ASN1_UniversalStringArg_t; typedef struct { int MagicCode; } ASN1_UTF8StringArg_t; typedef struct { int MagicCode; } ASN1_VideotexStringArg_t; typedef struct { int MagicCode; } ASN1_VisibleStringArg_t; typedef ASN1_VisibleStringArg_t ASN1_GeneralizedTimeArg_t; typedef ASN1_VisibleStringArg_t ASN1_UTCTimeArg_t; typedef struct { int MagicCode; int alternatives; bool automatic_tagging; bool extensible; bool extensibility_implied; void * initialvalue; } ASN1_ChoiceArg_t; typedef struct { int MagicCode; } ASN1_EmbeddedPDVArg_t; typedef struct { char * identifier; ASN1_Enumerated_t value; } ASN1_EnumerationItem_t; typedef struct { int MagicCode; int rootenumerations; ASN1_EnumerationItem_t * rootenumerationlist; bool extensible; bool extensibility_implied; int additionalenumerations; ASN1_EnumerationItem_t * additionalenumerationlist; size_t mem_size; } ASN1_EnumeratedArg_t; typedef struct { int MagicCode; } ASN1_ExternalArg_t; typedef struct { int MagicCode; } ASN1_InstanceOfArg_t; typedef struct { int MagicCode; } ASN1_IntegerArg_t; typedef struct { int MagicCode; } ASN1_NullArg_t; typedef struct { int MagicCode; } ASN1_ObjectIdentifierArg_t; typedef struct { int MagicCode; int type; } ASN1_ObjectClassFieldArg_t; typedef struct { int MagicCode; } ASN1_OctetStringArg_t; typedef struct { int MagicCode; } ASN1_RealArg_t; typedef struct { int MagicCode; } ASN1_RelativeOIDArg_t; typedef struct { int MagicCode; int components; size_t mem_size; void * initializer; bool automatic_tagging; bool extensible; bool extensibility_implied; size_t ext_offset; void * initialvalue; } ASN1_SequenceArg_t; typedef struct { int MagicCode; char * identifier; char * NonParameterizedTypeName; int type; } ASN1_SequenceOfArg_t; typedef struct { int MagicCode; int components; size_t mem_size; void * initializer; bool automatic_tagging; bool extensible; bool extensibility_implied; size_t ext_offset; void * initialvalue; } ASN1_SetArg_t; typedef struct { int MagicCode; char * identifier; char * NonParameterizedTypeName; int type; } ASN1_SetOfArg_t; typedef struct { int MagicCode; uint32_t tag; bool implicit; int type; } ASN1_TaggedArg_t; typedef struct { int MagicCode; char * prime; int type; } ASN1_ConstrainedArg_t; typedef struct { size_t offset; bool mandatory; int extensionaddition; char * identifier; char * NonParameterizedTypeName; int type; } ASN1_ComponentArg_t; typedef struct { int extensionaddition; char * identifier; char * NonParameterizedTypeName; int type; } ASN1_AlternativeArg_t; typedef struct { size_t offset; } ASN1_ExtensionArg_t; typedef struct { int id; int type; void * value; } ASN1_ExceptionArg_t; typedef struct { int MagicCode; int type; } ASN1_RecursiveArg_t; typedef struct { int optimize_level; int tagging_levels; } Compile_t; typedef struct { size_t protocol; size_t typerecords; size_t requested; size_t provided; enum transfer_syntax transfer_syntax; } Initialize_t; /* function prototypes */ int codec_Initialize(Initialize_t args); int codec_BitStringType(int typeno, ASN1_BitStringArg_t args); int codec_BooleanType(int typeno, ASN1_BooleanArg_t args); int codec_CharacterStringType(int typeno, ASN1_CharacterStringArg_t args); /* RestrictedCharacterStringTypes */ int codec_BMPStringType(int typeno, ASN1_BMPStringArg_t args); int codec_GeneralStringType(int typeno, ASN1_GeneralStringArg_t args); int codec_GraphicStringType(int typeno, ASN1_GraphicStringArg_t args); int codec_IA5StringType(int typeno, ASN1_IA5StringArg_t args); int codec_ISO646StringType(int typeno, ASN1_ISO646StringArg_t args); int codec_NumericStringType(int typeno, ASN1_NumericStringArg_t args); int codec_PrintableStringType(int typeno, ASN1_PrintableStringArg_t args); int codec_TeletexStringType(int typeno, ASN1_TeletexStringArg_t args); int codec_T61StringType(int typeno, ASN1_T61StringArg_t args); int codec_UniversalStringType(int typeno, ASN1_UniversalStringArg_t args); int codec_UTF8StringType(int typeno, ASN1_UTF8StringArg_t args); int codec_VideotexStringType(int typeno, ASN1_VideotexStringArg_t args); int codec_VisibleStringType(int typeno, ASN1_VisibleStringArg_t args); /* UsefulTypes */ int codec_GeneralizedTimeType(int typeno, ASN1_GeneralizedTimeArg_t args); int codec_UTCTimeType(int typeno, ASN1_UTCTimeArg_t args); int codec_ObjectDescriptorType(int typeno, ASN1_ObjectDescriptorArg_t args); int codec_ChoiceType(int typeno, ASN1_ChoiceArg_t args); int codec_EmbeddedPDVType(int typeno, ASN1_EmbeddedPDVArg_t args); int codec_EnumeratedType(int typeno, ASN1_EnumeratedArg_t args); int codec_ExternalType(int typeno, ASN1_ExternalArg_t args); int codec_InstanceOfType(int typeno, ASN1_InstanceOfArg_t args); int codec_IntegerType(int typeno, ASN1_IntegerArg_t args); int codec_NullType(int typeno, ASN1_NullArg_t args); int codec_ObjectClassFieldType(int typeno, ASN1_ObjectClassFieldArg_t args); int codec_ObjectIdentifierType(int typeno, ASN1_ObjectIdentifierArg_t args); int codec_OctetStringType(int typeno, ASN1_OctetStringArg_t args); int codec_RealType(int typeno, ASN1_RealArg_t args); int codec_RelativeOIDType(int typeno, ASN1_RelativeOIDArg_t args); int codec_SequenceType(int typeno, ASN1_SequenceArg_t args); int codec_SequenceOfType(int typeno, ASN1_SequenceOfArg_t args); int codec_SetType(int typeno, ASN1_SetArg_t args); int codec_SetOfType(int typeno, ASN1_SetOfArg_t args); int codec_TaggedType(int typeno, ASN1_TaggedArg_t args); int codec_ConstrainedType(int typeno, ASN1_ConstrainedArg_t args); int codec_ComponentType(int typeno, ASN1_ComponentArg_t args); int codec_AlternativeType(int typeno, ASN1_AlternativeArg_t args); int codec_ExceptionSpec(int typeno, ASN1_ExceptionArg_t args); int codec_RecursiveType(int typeno, ASN1_RecursiveArg_t args); int codec_Compile(Compile_t args); #endif /* _ASN1CODEC_H */