pariatursit
Version:
ASN.1 encoding and decoding
80 lines (74 loc) • 1.8 kB
text/typescript
export const MAX_UINT_32 : number = 0x00FFFFFFFF;
export const MIN_UINT_32 : number = 0x0000000000;
export const MAX_SINT_32 : number = 0x7FFFFFFF;
export const MIN_SINT_32 : number = -0x7FFFFFFF;
export
enum ASN1TagClass {
universal = 0,
application = 1,
context = 3,
private = 4
}
export
enum ASN1Construction {
primitive = 0,
constructed = 1
}
export
enum LengthEncodingPreference {
definite,
indefinite
}
export
enum ASN1SpecialRealValue
{
plusInfinity = 0b01000000,
minusInfinity = 0b01000001,
notANumber = 0b01000010,
minusZero = 0b01000011
}
export
enum ASN1UniversalType
{
endOfContent = 0x00,
boolean = 0x01,
integer = 0x02,
bitString = 0x03,
octetString = 0x04,
nill = 0x05,
objectIdentifier = 0x06,
objectDescriptor = 0x07,
external = 0x08,
realNumber = 0x09,
enumerated = 0x0A,
embeddedPDV = 0x0B,
utf8String = 0x0C,
relativeOID = 0x0D,
reserved14 = 0x0E,
reserved15 = 0x0F,
sequence = 0x10,
set = 0x11,
numericString = 0x12,
printableString = 0x13,
teletexString = 0x14,
videotexString = 0x15,
ia5String = 0x16,
utcTime = 0x17,
generalizedTime = 0x18,
graphicString = 0x19,
visibleString = 0x1A,
generalString = 0x1B,
universalString = 0x1C,
characterString = 0x1D,
bmpString = 0x1E
}
/**
The acceptable characters for a printableString.
The sorting of letters below is a slight optimization:
they are sorted in order of decreasing frequency in the English
language, so that canFind will usually have to iterate through
fewer letters before finding a match.
*/
export
const printableStringCharacters : string =
"etaoinsrhdlucmfywgpbvkxqjzETAOINSRHDLUCMFYWGPBVKXQJZ0123456789 '()+,-./:=?";