Class ASN1HEX
ASN.1 DER encoded hexadecimal string utility class
Defined in: asn1hex-1.1.js.
| Constructor Attributes | Constructor Name and Description |
|---|---|
|
ASN1HEX()
ASN.1 DER encoded hexadecimal string utility class
|
| Method Attributes | Method Name and Description |
|---|---|
| <static> |
ASN1HEX.dump(hex, associative, idx, indent)
get string of simple ASN.1 dump from hexadecimal ASN.1 data
This method will get an ASN.1 dump from
hexadecmal string of ASN.1 DER encoded data.
|
| <static> |
ASN1HEX.getByteLengthOfL_AtObj(s, pos)
get byte length for ASN.1 L(length) bytes
|
| <static> |
ASN1HEX.getDecendantHexTLVByNthList(h, currentIndex, nthList)
get hexadecimal string of ASN.1 TLV refered by current index and nth index list.
|
| <static> |
ASN1HEX.getDecendantHexVByNthList(h, currentIndex, nthList)
get hexadecimal string of ASN.1 V refered by current index and nth index list.
|
| <static> |
ASN1HEX.getDecendantIndexByNthList(h, currentIndex, nthList)
get string index of nth child object of ASN.1 object refered by h, idx
|
| <static> |
ASN1HEX.getHexOfL_AtObj(s, pos)
get hexadecimal string for ASN.1 L(length) bytes
|
| <static> |
ASN1HEX.getHexOfTLV_AtObj(s, pos)
get hexadecimal string of ASN.1 TLV at
|
| <static> |
ASN1HEX.getHexOfV_AtObj(s, pos)
get hexadecimal string of ASN.1 V(value)
|
| <static> |
ASN1HEX.getIntOfL_AtObj(s, pos)
get integer value of ASN.1 length for ASN.1 data
|
| <static> |
ASN1HEX.getNthChildIndex_AtObj(h, idx, nth)
get string index of nth child object of ASN.1 object refered by h, idx
|
| <static> |
ASN1HEX.getPosArrayOfChildren_AtObj(s, start)
get array of indexes of child ASN.1 objects
|
| <static> |
ASN1HEX.getPosOfNextSibling_AtObj(s, pos)
get next sibling starting index for ASN.1 object string
|
| <static> |
ASN1HEX.getStartPosOfV_AtObj(s, pos)
get ASN.1 value starting string position for ASN.1 object refered by index 'idx'.
|
| <static> |
ASN1HEX.hextooidstr(hex)
get OID string from hexadecimal encoded value
|
| <static> |
ASN1HEX.isASN1HEX(hex)
check wheather the string is ASN.1 hexadecimal string or not
This method checks wheather the argument 'hex' is a hexadecimal string of
ASN.1 data or not.
|
Method Detail
<static>
{String}
ASN1HEX.dump(hex, associative, idx, indent)
get string of simple ASN.1 dump from hexadecimal ASN.1 data
This method will get an ASN.1 dump from
hexadecmal string of ASN.1 DER encoded data.
Here are features:
- ommit long hexadecimal string
- dump encapsulated OCTET STRING (good for X.509v3 extensions)
- structured/primitive context specific tag support (i.e. [0], [3] ...)
- automatic decode for implicit primitive context specific tag
(good for X.509v3 extension value)
- if hex starts '68747470'(i.e. http) it is decoded as utf8 encoded string.
- if it is in 'subjectAltName' extension value and is '[2]'(dNSName) tag value will be encoded as utf8 string
- otherwise it shows as hexadecimal string
// ASN.1 INTEGER
ASN1HEX.dump('0203012345')
↓
INTEGER 012345
// ASN.1 Object Identifier
ASN1HEX.dump('06052b0e03021a')
↓
ObjectIdentifier sha1 (1 3 14 3 2 26)
// ASN.1 SEQUENCE
ASN1HEX.dump('3006020101020102')
↓
SEQUENCE
INTEGER 01
INTEGER 02
// ASN.1 DUMP FOR X.509 CERTIFICATE
ASN1HEX.dump(X509.pemToHex(certPEM))
↓
SEQUENCE
SEQUENCE
[0]
INTEGER 02
INTEGER 0c009310d206dbe337553580118ddc87
SEQUENCE
ObjectIdentifier SHA256withRSA (1 2 840 113549 1 1 11)
NULL
SEQUENCE
SET
SEQUENCE
ObjectIdentifier countryName (2 5 4 6)
PrintableString 'US'
:
- Parameters:
- {String} hex
- hexadecmal string of ASN.1 data
- {Array} associative
- array of flags for dump (OPTION)
- {Number} idx
- string index for starting dump (OPTION)
- {String} indent
- string (OPTION)
- Since:
- jsrsasign 4.8.3 asn1hex 1.1.6
- Returns:
- {String} string of simple ASN.1 dump
<static>
ASN1HEX.getByteLengthOfL_AtObj(s, pos)
get byte length for ASN.1 L(length) bytes
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} pos
- string index
- Returns:
- byte length for ASN.1 L(length) bytes
<static>
{Number}
ASN1HEX.getDecendantHexTLVByNthList(h, currentIndex, nthList)
get hexadecimal string of ASN.1 TLV refered by current index and nth index list.
- Parameters:
- {String} h
- hexadecimal string of ASN.1 DER encoded data
- {Number} currentIndex
- start string index of ASN.1 object
- {Array of Number} nthList
- array list of nth
- Since:
- 1.1
- Returns:
- {Number} hexadecimal string of ASN.1 TLV refered by nthList
<static>
{Number}
ASN1HEX.getDecendantHexVByNthList(h, currentIndex, nthList)
get hexadecimal string of ASN.1 V refered by current index and nth index list.
- Parameters:
- {String} h
- hexadecimal string of ASN.1 DER encoded data
- {Number} currentIndex
- start string index of ASN.1 object
- {Array of Number} nthList
- array list of nth
- Since:
- 1.1
- Returns:
- {Number} hexadecimal string of ASN.1 V refered by nthList
<static>
{Number}
ASN1HEX.getDecendantIndexByNthList(h, currentIndex, nthList)
get string index of nth child object of ASN.1 object refered by h, idx
The "nthList" is a index list of structured ASN.1 object
reference. Here is a sample structure and "nthList"s which
refers each objects.
SQUENCE -
SEQUENCE - [0]
IA5STRING 000 - [0, 0]
UTF8STRING 001 - [0, 1]
SET - [1]
IA5STRING 010 - [1, 0]
UTF8STRING 011 - [1, 1]
- Parameters:
- {String} h
- hexadecimal string of ASN.1 DER encoded data
- {Number} currentIndex
- start string index of ASN.1 object
- {Array of Number} nthList
- array list of nth
- Since:
- 1.1
- Returns:
- {Number} string index refered by nthList
<static>
{String}
ASN1HEX.getHexOfL_AtObj(s, pos)
get hexadecimal string for ASN.1 L(length) bytes
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} pos
- string index
- Returns:
- {String} hexadecimal string for ASN.1 L(length) bytes
<static>
{String}
ASN1HEX.getHexOfTLV_AtObj(s, pos)
get hexadecimal string of ASN.1 TLV at
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} pos
- string index
- Since:
- 1.1
- Returns:
- {String} hexadecimal string of ASN.1 TLV.
<static>
{String}
ASN1HEX.getHexOfV_AtObj(s, pos)
get hexadecimal string of ASN.1 V(value)
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} pos
- string index
- Returns:
- {String} hexadecimal string of ASN.1 value.
<static>
ASN1HEX.getIntOfL_AtObj(s, pos)
get integer value of ASN.1 length for ASN.1 data
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} pos
- string index
- Returns:
- ASN.1 L(length) integer value
<static>
{Number}
ASN1HEX.getNthChildIndex_AtObj(h, idx, nth)
get string index of nth child object of ASN.1 object refered by h, idx
- Parameters:
- {String} h
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- start string index of ASN.1 object
- {Number} nth
- for child
- Since:
- 1.1
- Returns:
- {Number} string index of nth child.
<static>
{Array of Number}
ASN1HEX.getPosArrayOfChildren_AtObj(s, start)
get array of indexes of child ASN.1 objects
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} start
- string index of ASN.1 object
- Returns:
- {Array of Number} array of indexes for childen of ASN.1 objects
<static>
ASN1HEX.getPosOfNextSibling_AtObj(s, pos)
get next sibling starting index for ASN.1 object string
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} pos
- string index
- Returns:
- next sibling starting index for ASN.1 object string
<static>
ASN1HEX.getStartPosOfV_AtObj(s, pos)
get ASN.1 value starting string position for ASN.1 object refered by index 'idx'.
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} pos
- string index
<static>
{String}
ASN1HEX.hextooidstr(hex)
get OID string from hexadecimal encoded value
- Parameters:
- {String} hex
- hexadecmal string of ASN.1 DER encoded OID value
- Since:
- asn1hex 1.1.5
- Returns:
- {String} OID string (ex. '1.2.3.4.567')
<static>
{Boolean}
ASN1HEX.isASN1HEX(hex)
check wheather the string is ASN.1 hexadecimal string or not
This method checks wheather the argument 'hex' is a hexadecimal string of
ASN.1 data or not.
ASN1HEX.isASN1HEX('0203012345') → true // PROPER ASN.1 INTEGER
ASN1HEX.isASN1HEX('0203012345ff') → false // TOO LONG VALUE
ASN1HEX.isASN1HEX('02030123') → false // TOO SHORT VALUE
ASN1HEX.isASN1HEX('fa3bcd') → false // WRONG FOR ASN.1
- Parameters:
- {String} hex
- string to check whether it is hexadecmal string for ASN.1 DER or not
- Since:
- jsrsasign 4.8.3 asn1hex 1.1.6
- Returns:
- {Boolean} true if it is hexadecimal string of ASN.1 data otherwise false