Return to Unit Reference
Description
Ultibo ASN.1 interface unit
Abstract Syntax Notation One (ASN.1) is an interface description language for defining data structures that can be serialized and deserialized in a standard, cross-platform way. It's broadly used in telecommunications and computer networking, and especially in cryptography.
This unit currently only provides the basic functionality required by X509 to read and parse a certificate in DER format.
It is expected that this unit will be expanded to incorporate additional functions over time.
Constants
[Expand]
ASN1 specific constants ASN1_*
ASN1_TAG_EOC = $00;
|
Not used with DER
|
ASN1_TAG_BOOLEAN = $01;
|
|
ASN1_TAG_INTEGER = $02;
|
|
ASN1_TAG_BITSTRING = $03;
|
|
ASN1_TAG_OCTETSTRING = $04;
|
|
ASN1_TAG_NULL = $05;
|
|
ASN1_TAG_OID = $06;
|
|
ASN1_TAG_OBJECT_DESCRIPTOR = $07;
|
Not supported
|
ASN1_TAG_EXTERNAL = $08;
|
Not supported
|
ASN1_TAG_REAL = $09;
|
Not supported
|
ASN1_TAG_ENUMERATED = $0A;
|
Not supported
|
ASN1_TAG_EMBEDDED_PDV = $0B;
|
Not supported
|
ASN1_TAG_UTF8STRING = $0C;
|
Not supported
|
ANS1_TAG_RELATIVE_OID = $0D;
|
|
ASN1_TAG_SEQUENCE = $10;
|
Constructed
|
ASN1_TAG_SET = $11;
|
|
ASN1_TAG_NUMERICSTRING = $12;
|
Not supported
|
ASN1_TAG_PRINTABLESTRING = $13;
|
|
ASN1_TAG_TG1STRING = $14;
|
Not supported
|
ASN1_TAG_VIDEOTEXSTRING = $15;
|
Not supported
|
ASN1_TAG_IA5STRING = $16;
|
|
ASN1_TAG_UTCTIME = $17;
|
|
ASN1_TAG_GENERALIZEDTIME = $18;
|
Not supported
|
ASN1_TAG_GRAPHICSTRING = $19;
|
Not supported
|
ASN1_TAG_VISIBLESTRING = $1A;
|
|
ASN1_TAG_GENERALSTRING = $1B;
|
Not supported
|
ASN1_TAG_UNIVERSALSTRING = $1C;
|
Not supported
|
ASN1_TAG_CHARACTERSTRING = $1D;
|
Not supported
|
ASN1_TAG_BMPSTRING = $1E;
|
Not supported
|
|
ASN1_TAG_LONGFORM = $1F;
|
Tag is encoded in long form
|
|
ASN1_CLASS_UNIVERSAL = 0;
|
|
ASN1_CLASS_APPLICATION = 1;
|
|
ASN1_CLASS_CONTEXT_SPECIFIC = 2;
|
|
ASN1_CLASS_PRIVATE = 3;
|
|
|
ASN1_MAX_OID_LEN = 20;
|
|
Type definitions
ASN1 tag
[Expand]
PASN1Tag = ^TASN1Tag;
TASN1Tag = record
TagNumber:LongWord;
|
|
TagClass:LongWord;
|
|
Length:LongWord;
|
|
Constructed:Boolean;
|
|
Contents:PByte;
|
|
ASN1 OID
[Expand]
PASN1OID = ^TASN1OID;
TASN1OID = record
Len:Integer;
|
|
OID:array[0..ASN1_MAX_OID_LEN - 1] of LongWord;
|
|
Public variables
None defined
Function declarations
To be documented
Return to Unit Reference