libtasn1

libtasn1 — GNU ASN.1 library

Types and Values

Description

The Libtasn1 library provides Abstract Syntax Notation One (ASN.1, as specified by the X.680 ITU-T recommendation) parsing and structures management, and Distinguished Encoding Rules (DER, as per X.690) encoding and decoding functions.

Functions

Types and Values

ASN1_API

#define ASN1_API __attribute__((__visibility__("default")))

ASN1_VERSION

#define ASN1_VERSION "4.14"

Version of the library as a string.


ASN1_SUCCESS

#define ASN1_SUCCESS			0

ASN1_FILE_NOT_FOUND

#define ASN1_FILE_NOT_FOUND		1

ASN1_ELEMENT_NOT_FOUND

#define ASN1_ELEMENT_NOT_FOUND		2

ASN1_IDENTIFIER_NOT_FOUND

#define ASN1_IDENTIFIER_NOT_FOUND 3

ASN1_DER_ERROR

#define ASN1_DER_ERROR			4

ASN1_VALUE_NOT_FOUND

#define ASN1_VALUE_NOT_FOUND		5

ASN1_GENERIC_ERROR

#define ASN1_GENERIC_ERROR		6

ASN1_VALUE_NOT_VALID

#define ASN1_VALUE_NOT_VALID		7

ASN1_TAG_ERROR

#define ASN1_TAG_ERROR			8

ASN1_TAG_IMPLICIT

#define ASN1_TAG_IMPLICIT		9

ASN1_ERROR_TYPE_ANY

#define ASN1_ERROR_TYPE_ANY		10

ASN1_SYNTAX_ERROR

#define ASN1_SYNTAX_ERROR		11

ASN1_MEM_ERROR

#define ASN1_MEM_ERROR			12

ASN1_MEM_ALLOC_ERROR

#define ASN1_MEM_ALLOC_ERROR		13

ASN1_DER_OVERFLOW

#define ASN1_DER_OVERFLOW		14

ASN1_NAME_TOO_LONG

#define ASN1_NAME_TOO_LONG		15

ASN1_ARRAY_ERROR

#define ASN1_ARRAY_ERROR		16

ASN1_ELEMENT_NOT_EMPTY

#define ASN1_ELEMENT_NOT_EMPTY		17

ASN1_TIME_ENCODING_ERROR

#define ASN1_TIME_ENCODING_ERROR 18

ASN1_PRINT_NAME

#define ASN1_PRINT_NAME			1

ASN1_PRINT_NAME_TYPE

#define ASN1_PRINT_NAME_TYPE		2

ASN1_PRINT_NAME_TYPE_VALUE

#define ASN1_PRINT_NAME_TYPE_VALUE 3

ASN1_PRINT_ALL

#define ASN1_PRINT_ALL			4

ASN1_CLASS_UNIVERSAL

#define ASN1_CLASS_UNIVERSAL		0x00 /* old: 1 */

ASN1_CLASS_APPLICATION

#define ASN1_CLASS_APPLICATION		0x40 /* old: 2 */

ASN1_CLASS_CONTEXT_SPECIFIC

#define ASN1_CLASS_CONTEXT_SPECIFIC 0x80 /* old: 3 */

ASN1_CLASS_PRIVATE

#define ASN1_CLASS_PRIVATE		0xC0 /* old: 4 */

ASN1_CLASS_STRUCTURED

#define ASN1_CLASS_STRUCTURED		0x20

ASN1_TAG_BOOLEAN

#define ASN1_TAG_BOOLEAN		0x01

ASN1_TAG_INTEGER

#define ASN1_TAG_INTEGER		0x02

ASN1_TAG_SEQUENCE

#define ASN1_TAG_SEQUENCE		0x10

ASN1_TAG_SET

#define ASN1_TAG_SET			0x11

ASN1_TAG_OCTET_STRING

#define ASN1_TAG_OCTET_STRING		0x04

ASN1_TAG_BIT_STRING

#define ASN1_TAG_BIT_STRING		0x03

ASN1_TAG_UTCTime

#define ASN1_TAG_UTCTime		0x17

ASN1_TAG_GENERALIZEDTime

#define ASN1_TAG_GENERALIZEDTime 0x18

ASN1_TAG_OBJECT_ID

#define ASN1_TAG_OBJECT_ID		0x06

ASN1_TAG_ENUMERATED

#define ASN1_TAG_ENUMERATED		0x0A

ASN1_TAG_NULL

#define ASN1_TAG_NULL			0x05

ASN1_TAG_GENERALSTRING

#define ASN1_TAG_GENERALSTRING		0x1B

ASN1_TAG_NUMERIC_STRING

#define ASN1_TAG_NUMERIC_STRING		0x12

ASN1_TAG_IA5_STRING

#define ASN1_TAG_IA5_STRING		0x16

ASN1_TAG_TELETEX_STRING

#define ASN1_TAG_TELETEX_STRING		0x14

ASN1_TAG_PRINTABLE_STRING

#define ASN1_TAG_PRINTABLE_STRING 0x13

ASN1_TAG_UNIVERSAL_STRING

#define ASN1_TAG_UNIVERSAL_STRING 0x1C

ASN1_TAG_BMP_STRING

#define ASN1_TAG_BMP_STRING		0x1E

ASN1_TAG_UTF8_STRING

#define ASN1_TAG_UTF8_STRING		0x0C

ASN1_TAG_VISIBLE_STRING

#define ASN1_TAG_VISIBLE_STRING		0x1A

asn1_node_st

typedef struct asn1_node_st asn1_node_st;

asn1_node

typedef asn1_node_st *asn1_node;

Structure definition used for the node of the tree that represents an ASN.1 DEFINITION.


ASN1_MAX_NAME_SIZE

#define ASN1_MAX_NAME_SIZE 64

Maximum number of characters of a name inside a file with ASN1 definitions.