libtasn1

## libtasn1 libtasn1 — GNU ASN.1 library |

## Types and Values

#define | ASN1_API
#define | ASN1_VERSION
#define | ASN1_SUCCESS
#define | ASN1_FILE_NOT_FOUND
#define | ASN1_ELEMENT_NOT_FOUND
#define | ASN1_IDENTIFIER_NOT_FOUND
#define | ASN1_DER_ERROR
#define | ASN1_VALUE_NOT_FOUND
#define | ASN1_GENERIC_ERROR
#define | ASN1_VALUE_NOT_VALID
#define | ASN1_TAG_ERROR
#define | ASN1_TAG_IMPLICIT
#define | ASN1_ERROR_TYPE_ANY
#define | ASN1_SYNTAX_ERROR
#define | ASN1_MEM_ERROR
#define | ASN1_MEM_ALLOC_ERROR
#define | ASN1_DER_OVERFLOW
#define | ASN1_NAME_TOO_LONG
#define | ASN1_ARRAY_ERROR
#define | ASN1_ELEMENT_NOT_EMPTY
#define | ASN1_TIME_ENCODING_ERROR
#define | ASN1_PRINT_NAME
#define | ASN1_PRINT_NAME_TYPE
#define | ASN1_PRINT_NAME_TYPE_VALUE
#define | ASN1_PRINT_ALL
#define | ASN1_CLASS_UNIVERSAL
#define | ASN1_CLASS_APPLICATION
#define | ASN1_CLASS_CONTEXT_SPECIFIC
#define | ASN1_CLASS_PRIVATE
#define | ASN1_CLASS_STRUCTURED
#define | ASN1_TAG_BOOLEAN
#define | ASN1_TAG_INTEGER
#define | ASN1_TAG_SEQUENCE
#define | ASN1_TAG_SET
#define | ASN1_TAG_OCTET_STRING
#define | ASN1_TAG_BIT_STRING
#define | ASN1_TAG_UTCTime
#define | ASN1_TAG_GENERALIZEDTime
#define | ASN1_TAG_OBJECT_ID
#define | ASN1_TAG_ENUMERATED
#define | ASN1_TAG_NULL
#define | ASN1_TAG_GENERALSTRING
#define | ASN1_TAG_NUMERIC_STRING
#define | ASN1_TAG_IA5_STRING
#define | ASN1_TAG_TELETEX_STRING
#define | ASN1_TAG_PRINTABLE_STRING
#define | ASN1_TAG_UNIVERSAL_STRING
#define | ASN1_TAG_BMP_STRING
#define | ASN1_TAG_UTF8_STRING
#define | ASN1_TAG_VISIBLE_STRING
typedef | asn1_node_st
typedef | asn1_node
#define | ASN1_MAX_NAME_SIZE

## 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

### 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.