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
This class provides a parser for hexadecimal string of
DER encoded ASN.1 binary data.
|
Method Attributes | Method Name and Description |
---|---|
<static> |
ASN1HEX.checkStrictDER(hex)
strict ASN.1 DER hexadecimal string checker
This method checks wheather the argument 'hex' is a hexadecimal string of
ASN.1 data or not.
|
<static> |
ASN1HEX.dump(hexOrObj, flags, 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.getChildIdx(h, idx)
get array of string indexes of child ASN.1 objects
This method returns array of integers for a concatination of ASN.1 objects in a ASN.1 value. |
<static> |
ASN1HEX.getIdxbyList(h, currentIndex, nthList, checkingTag)
get string index of nth child object of ASN.1 object refered by h, idx
|
<static> |
ASN1HEX.getIdxbyListEx(h, currentIndex, nthList, checkingTag)
get string index of nth child object of ASN.1 object refered by h, idx
This method returns the string index in h specified by currentIndex and nthList. |
<static> |
ASN1HEX.getInt(h, idx, errorReturn)
get integer value from ASN.1 V(value) of Integer or BitString
|
<static> |
ASN1HEX.getL(s, idx)
get hexadecimal string for ASN.1 L(length) bytes
|
<static> |
ASN1HEX.getLblen(s, idx)
get byte length for ASN.1 L(length) bytes
|
<static> |
ASN1HEX.getNextSiblingIdx(s, idx)
get next sibling starting index for ASN.1 object string (DEPRECATED)
|
<static> |
ASN1HEX.getNthChildIdx(h, idx, nth)
get string index of nth child object of ASN.1 object refered by h, idx
|
<static> |
ASN1HEX.getOID(h, idx, errorReturn)
get object identifier string from ASN.1 V(value)
|
<static> |
ASN1HEX.getOIDName(h, idx, errorReturn)
get object identifier name from ASN.1 V(value)
This static method returns object identifier name such as "sha256" if registered. |
<static> |
ASN1HEX.getString(h, idx, errorReturn)
get raw string from ASN.1 V(value)
This static method returns a raw string from any ASN.1 DER primitives. |
<static> |
ASN1HEX.getTLV(s, idx)
get hexadecimal string of ASN.1 TLV at
|
<static> |
ASN1HEX.getTLVblen(h, idx)
get byte length of ASN.1 TLV at specified string index
This method returns a byte length of ASN.1 TLV at specified string index. |
<static> |
ASN1HEX.getTLVbyList(h, currentIndex, nthList, checkingTag)
get ASN.1 TLV by nthList
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag". |
<static> |
ASN1HEX.getTLVbyListEx(h, currentIndex, nthList, checkingTag)
get ASN.1 TLV by nthList
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag". |
<static> |
ASN1HEX.getV(s, idx)
get hexadecimal string of ASN.1 V(value)
|
<static> |
ASN1HEX.getVblen(s, idx)
get integer value of ASN.1 length for ASN.1 data
|
<static> |
ASN1HEX.getVbyList(h, currentIndex, nthList, checkingTag, removeUnusedbits)
get ASN.1 value by nthList
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag". |
<static> |
ASN1HEX.getVbyListEx(h, currentIndex, nthList, checkingTag, removeUnusedbits)
get ASN.1 V by nthList
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag". |
<static> |
ASN1HEX.getVidx(s, idx)
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
This static method converts from ASN.1 DER encoded hexadecimal object identifier value to dot concatinated OID value. |
<static> |
ASN1HEX.isASN1HEX(hex)
simple ASN.1 DER hexadecimal string checker
This method checks wheather the argument 'hex' is a hexadecimal string of ASN.1 data or not. |
<static> |
ASN1HEX.isContextTag(hex, context)
check if a hexadecimal tag is a specified ASN.1 context specific tag
This method checks if a hexadecimal tag is a specified ASN.1 context specific tag.
|
<static> |
ASN1HEX.oidname(oidDotOrHex)
get hexacedimal string from PEM format data
This static method gets a OID name for a specified string of number dot notation (i.e. |
<static> |
ASN1HEX.parse(h)
parse ASN.1 DER hexadecimal string
This method parses ASN.1 DER hexadecimal string. |
Class Detail
ASN1HEX()
ASN.1 DER encoded hexadecimal string utility class
This class provides a parser for hexadecimal string of
DER encoded ASN.1 binary data.
Here are major methods of this class.
- ACCESS BY POSITION
- ASN1HEX.getTLV - get ASN.1 TLV at specified position
- ASN1HEX.getTLVblen - get byte length of ASN.1 TLV at specified position
- ASN1HEX.getV - get ASN.1 V at specified position
- ASN1HEX.getVblen - get integer ASN.1 L at specified position
- ASN1HEX.getVidx - get ASN.1 V position from its ASN.1 TLV position
- ASN1HEX.getL - get hexadecimal ASN.1 L at specified position
- ASN1HEX.getLblen - get byte length for ASN.1 L(length) bytes
- ACCESS FOR CHILD ITEM
- ASN1HEX.getNthChildIdx - get nth child index at specified position
- ASN1HEX.getChildIdx - get indexes of children
- ASN1HEX.getNextSiblingIdx - get position of next sibling (DEPRECATED)
- ACCESS NESTED ASN.1 STRUCTURE
- ASN1HEX.getTLVbyList - get ASN.1 TLV at specified list index
- ASN1HEX.getVbyList - get ASN.1 V at specified nth list index with checking expected tag
- ASN1HEX.getIdxbyList - get index at specified list index
- (NEW)ACCESS NESTED ASN.1 STRUCTURE
- ASN1HEX.getTLVbyListEx - get ASN.1 TLV at specified list index
- ASN1HEX.getVbyListEx - get ASN.1 V at specified nth list index with checking expected tag
- ASN1HEX.getIdxbyListEx - get index at specified list index
- UTILITIES
- ASN1HEX.dump - dump ASN.1 structure
- ASN1HEX.isContextTag - check if a hexadecimal tag is a specified ASN.1 context specific tag
- ASN1HEX.isASN1HEX - simple ASN.1 DER hexadecimal string checker
- ASN1HEX.checkStrictDER - strict ASN.1 DER hexadecimal string checker
- ASN1HEX.hextooidstr - convert hexadecimal string of OID to dotted integer list
- Since:
- jsrsasign 1.1
Method Detail
<static>
ASN1HEX.checkStrictDER(hex)
strict ASN.1 DER hexadecimal string checker
This method checks wheather the argument 'hex' is a hexadecimal string of
ASN.1 data or not. If the argument is not DER string, this
raise an exception.
ASN1HEX.checkStrictDER('0203012345') → NO EXCEPTION FOR PROPER ASN.1 INTEGER ASN1HEX.checkStrictDER('0203012345ff') → RAISE EXCEPTION FOR TOO LONG VALUE ASN1HEX.checkStrictDER('02030123') → false RAISE EXCEPITON FOR TOO SHORT VALUE ASN1HEX.checkStrictDER('fa3bcd') → false RAISE EXCEPTION FOR WRONG ASN.1
- Parameters:
- {String} hex
- string to check whether it is hexadecmal string for ASN.1 DER or not
- Since:
- jsrsasign 8.0.19 asn1hex 1.2.1
- Throws:
- Error when malformed ASN.1 DER hexadecimal string
- Returns:
- unspecified
<static>
{String}
ASN1HEX.dump(hexOrObj, flags, 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:
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
// 1) ASN.1 INTEGER ASN1HEX.dump('0203012345') ↓ INTEGER 012345 // 2) ASN.1 Object Identifier ASN1HEX.dump('06052b0e03021a') ↓ ObjectIdentifier sha1 (1 3 14 3 2 26) // 3) ASN.1 SEQUENCE ASN1HEX.dump('3006020101020102') ↓ SEQUENCE INTEGER 01 INTEGER 02 // 4) ASN.1 SEQUENCE since jsrsasign 6.2.4 o = KJUR.asn1.ASN1Util.newObject({seq: [{int: 1}, {int: 2}]}); ASN1HEX.dump(o) ↓ SEQUENCE INTEGER 01 INTEGER 02 // 5) ASN.1 DUMP FOR X.509 CERTIFICATE ASN1HEX.dump(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:
- {Object} hexOrObj
- hexadecmal string of ASN.1 data or ASN1Object object
- {Array} flags
- associative array of flags for dump (OPTION)
- {Number} idx
- string index for starting dump (OPTION)
- {String} indent
- indent string (OPTION)
- Since:
- jsrsasign 4.8.3 asn1hex 1.1.6
- Returns:
- {String} string of simple ASN.1 dump
<static>
{Array of Number}
ASN1HEX.getChildIdx(h, idx)
get array of string indexes of child ASN.1 objects
This method returns array of integers for a concatination of ASN.1 objects in a ASN.1 value. As for BITSTRING, one byte of unusedbits is skipped. As for other ASN.1 simple types such as INTEGER, OCTET STRING or PRINTABLE STRING, it returns a array of a string index of its ASN.1 value.
NOTE: Since asn1hex 1.1.7 of jsrsasign 6.1.2, Encapsulated BitString is supported.
This method returns array of integers for a concatination of ASN.1 objects in a ASN.1 value. As for BITSTRING, one byte of unusedbits is skipped. As for other ASN.1 simple types such as INTEGER, OCTET STRING or PRINTABLE STRING, it returns a array of a string index of its ASN.1 value.
NOTE: Since asn1hex 1.1.7 of jsrsasign 6.1.2, Encapsulated BitString is supported.
ASN1HEX.getChildIdx("0203012345", 0) ⇒ [4] // INTEGER 012345 ASN1HEX.getChildIdx("1303616161", 0) ⇒ [4] // PrintableString aaa ASN1HEX.getChildIdx("030300ffff", 0) ⇒ [6] // BITSTRING ffff (unusedbits=00a) ASN1HEX.getChildIdx("3006020104020105", 0) ⇒ [4, 10] // SEQUENCE(INT4,INT5)
- Parameters:
- {String} h
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- start string index of ASN.1 object
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- {Array of Number} array of indexes for childen of ASN.1 objects
<static>
{Number}
ASN1HEX.getIdxbyList(h, currentIndex, nthList, checkingTag)
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
- {String} checkingTag
- (OPTIONAL) string of expected ASN.1 tag for nthList
- Since:
- jsrsasign 7.1.4 asn1hex 1.1.10.
- Returns:
- {Number} string index refered by nthList
<static>
{Number}
ASN1HEX.getIdxbyListEx(h, currentIndex, nthList, checkingTag)
get string index of nth child object of ASN.1 object refered by h, idx
This method returns the string index in h specified by currentIndex and nthList. This is useful to dig into a deep structured ASN.1 object by indexes called nthList.
A nthList consists of a position number in children of ASN.1 structured data or a context specific tag string (ex. "[1]"). Here is a sample deep structured ASN.1 data and nthLists referring decendent objects.
This method can dig into ASN.1 object encapsulated by OctetString or BitString with unused bits.
This method returns the string index in h specified by currentIndex and nthList. This is useful to dig into a deep structured ASN.1 object by indexes called nthList.
A nthList consists of a position number in children of ASN.1 structured data or a context specific tag string (ex. "[1]"). Here is a sample deep structured ASN.1 data and nthLists referring decendent objects.
SQUENCE - referring nthList is below: SEQUENCE - [0] IA5STRING "a1" - [0, 0] UTF8STRING "a2" - [0, 1] SET - [1] IA5STRING "b1" - [1, 0] UTF8STRING "b2" - [1, 1] [0] "b3" - [1, "[0]"] // optional since context tag [1] "b4" - [1, "[1]"] // optional since context tag IA5STRING "b5" - [1, 2] // context is skipped. next is 2 UTF8STRING "b6" - [1, 3]
This method can dig into ASN.1 object encapsulated by OctetString or BitString with unused bits.
3014 seq idx=0 3012 seq idx=4 020101 int:1 idx=8 020102 int:2 idx=14 800103 [0]:3 idx=20 810104 [1]:4 idx=26 020105 int:5 idx=32 020106 int:6 idx=38 h = "30140412020101020102800103810104020105020106"; ASN1HEX.getIdxbyListEx(h, 0, [0, "[0]"]) → 16 ASN1HEX.getIdxbyListEx(h, 0, [0, 2]) → 28 ASN1HEX.getIdxbyListEx(h, 0, [0, 2], "0c") → -1 //not UTF8String(0c)
- Parameters:
- {String} h
- hexadecimal string of ASN.1 DER encoded data
- {Number} currentIndex
- start string index of ASN.1 object
- {Array of Object} nthList
- array list of nth index value or context specific tag string (ex. "[0]")
- {String} checkingTag
- (OPTIONAL) string of expected ASN.1 tag for nthList
- Since:
- jsrsasign 8.0.21 asn1hex 1.2.2
- Returns:
- {Number} string index refered by nthList. return -1 if not found
<static>
{Number}
ASN1HEX.getInt(h, idx, errorReturn)
get integer value from ASN.1 V(value) of Integer or BitString
ASN1HEX.getInt("xxxx020103xxxxxx", 4) &rarr 3 // DER Integer ASN1HEX.getInt("xxxx03020780xxxxxx", 4) &rarr 1 // DER BitStringx ASN1HEX.getInt("xxxx030203c8xxxxxx", 4) &rarr 25 // DER BitStringx
- Parameters:
- {String} h
- hexadecimal string
- {Number} idx
- string index in h to get ASN.1 DER Integer or BitString
- {Object} errorReturn
- (OPTION) error return value (DEFAULT: -1)
- Since:
- jsrsasign 10.1.0 asn1hex 1.2.7
- Returns:
- {Number} ASN.1 DER Integer or BitString value
- See:
- bitstrtoint
<static>
{String}
ASN1HEX.getL(s, idx)
get hexadecimal string for ASN.1 L(length) bytes
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- string index to get L of ASN.1 object
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- {String} hexadecimal string for ASN.1 L(length) bytes
<static>
ASN1HEX.getLblen(s, idx)
get byte length for ASN.1 L(length) bytes
ASN1HEX.getLblen('020100', 0) → 1 for '01' ASN1HEX.getLblen('020200', 0) → 1 for '02' ASN1HEX.getLblen('02818003...', 0) → 2 for '8180' ASN1HEX.getLblen('0282025b03...', 0) → 3 for '82025b' ASN1HEX.getLblen('0280020100...', 0) → -1 for '80' BER indefinite length ASN1HEX.getLblen('02ffab...', 0) → -2 for malformed ASN.1 length
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- string index
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- byte length for ASN.1 L(length) bytes
<static>
{Number}
ASN1HEX.getNextSiblingIdx(s, idx)
get next sibling starting index for ASN.1 object string (DEPRECATED)
SEQUENCE { INTEGER 3, INTEGER 4 } 3006 020103 :idx=4 020104 :next sibling idx=10 getNextSiblingIdx("3006020103020104", 4) & rarr 10
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- string index
- Deprecated:
- jsrsasign 9.1.5 asn1hex 1.2.5 Please use ASN1HEX.getTLVblen
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- {Number} next sibling starting index for ASN.1 object string
<static>
{Number}
ASN1HEX.getNthChildIdx(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:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- {Number} string index of nth child.
<static>
{String}
ASN1HEX.getOID(h, idx, errorReturn)
get object identifier string from ASN.1 V(value)
ASN1HEX.getInt("xxxx06032a0304xxxxxx", 4) &rarr "1.2.3.4"
- Parameters:
- {String} h
- hexadecimal string
- {Number} idx
- string index in h to get ASN.1 DER ObjectIdentifier
- {Object} errorReturn
- (OPTION) error return value (DEFAULT: null)
- Since:
- jsrsasign 10.1.0 asn1hex 1.2.7
- Returns:
- {String} object identifier string (ex. "1.2.3.4")
<static>
{String}
ASN1HEX.getOIDName(h, idx, errorReturn)
get object identifier name from ASN.1 V(value)
This static method returns object identifier name such as "sha256" if registered. If not registered, it returns OID string. (ex. "1.2.3.4")
This static method returns object identifier name such as "sha256" if registered. If not registered, it returns OID string. (ex. "1.2.3.4")
ASN1HEX.getOIDName("xxxx0609608648016503040201xxxxxx", 4) &rarr "sha256" ASN1HEX.getOIDName("xxxx06032a0304xxxxxx", 4) &rarr "1.2.3.4"
- Parameters:
- {String} h
- hexadecimal string
- {Number} idx
- string index in h to get ASN.1 DER ObjectIdentifier
- {Object} errorReturn
- (OPTION) error return value (DEFAULT: null)
- Since:
- jsrsasign 10.1.0 asn1hex 1.2.7
- Returns:
- {String} object identifier name (ex. "sha256") oir OID string
<static>
{String}
ASN1HEX.getString(h, idx, errorReturn)
get raw string from ASN.1 V(value)
This static method returns a raw string from any ASN.1 DER primitives.
This static method returns a raw string from any ASN.1 DER primitives.
ASN1HEX.getString("xxxx1303616161xxxxxx", 4) &rarr "aaa" ASN1HEX.getString("xxxx0c03616161xxxxxx", 4) &rarr "aaa"
- Parameters:
- {String} h
- hexadecimal string
- {Number} idx
- string index in h to get any ASN.1 DER String
- {Object} errorReturn
- (OPTION) error return value (DEFAULT: null)
- Since:
- jsrsasign 10.1.3 asn1hex 1.2.8
- Returns:
- {String} raw string
<static>
{String}
ASN1HEX.getTLV(s, idx)
get hexadecimal string of ASN.1 TLV at
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- string index
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- {String} hexadecimal string of ASN.1 TLV.
<static>
{Number}
ASN1HEX.getTLVblen(h, idx)
get byte length of ASN.1 TLV at specified string index
This method returns a byte length of ASN.1 TLV at specified string index.
This method returns a byte length of ASN.1 TLV at specified string index.
v string indx=42 ASN1HEX.getTLVblen("...1303616161...", 42) → 10 (PrintableString 'aaa')
- Parameters:
- {String} h
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- string index to get ASN.1 TLV byte length
- Since:
- jsrsasign 9.1.5 asn1hex 1.1.11
- Returns:
- {Number} byte length of ASN.1 TLV
<static>
{String}
ASN1HEX.getTLVbyList(h, currentIndex, nthList, checkingTag)
get ASN.1 TLV by nthList
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag".
When referring value can't be found, this returns null.
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag".
When referring value can't be found, this returns null.
- Parameters:
- {String} h
- hexadecimal string of ASN.1 structure
- {Integer} currentIndex
- string index to start searching in hexadecimal string "h"
- {Array} nthList
- array of nth list index
- {String} checkingTag
- (OPTIONAL) string of expected ASN.1 tag for nthList
- Since:
- jsrsasign 7.1.4 asn1hex 1.1.10
- Returns:
- {String} referred hexadecimal string of ASN.1 TLV or null
<static>
{String}
ASN1HEX.getTLVbyListEx(h, currentIndex, nthList, checkingTag)
get ASN.1 TLV by nthList
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag". This method can dig into ASN.1 object encapsulated by OctetString or BitString with unused bits.
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag". This method can dig into ASN.1 object encapsulated by OctetString or BitString with unused bits.
3014 seq idx=0 0312 seq idx=4 020101 int:1 idx=8 020102 int:2 idx=14 800103 [0]:3 idx=20 810104 [1]:4 idx=26 020105 int:5 idx=32 020106 int:6 idx=38 h = "30140412020101020102800103810104020105020106"; ASN1HEX.getTLVbyList(h, 0, [0, "[0]"]) → 800103 ASN1HEX.getTLVbyList(h, 0, [0, 2]) → 020105 ASN1HEX.getTLVbyList(h, 0, [0, 2], "0c") → null //not UTF8String(0c)
- Parameters:
- {String} h
- hexadecimal string of ASN.1 structure
- {Integer} currentIndex
- string index to start searching in hexadecimal string "h"
- {Array of Object} nthList
- array list of nth index value or context specific tag string (ex. "[0]")
- {String} checkingTag
- (OPTIONAL) string of expected ASN.1 tag for nthList
- Since:
- jsrsasign 8.0.21 asn1hex 1.2.2
- Returns:
- {String} hexadecimal ASN.1 TLV string refered by nthList. return null if not found
<static>
{String}
ASN1HEX.getV(s, idx)
get hexadecimal string of ASN.1 V(value)
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- string index
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- {String} hexadecimal string of ASN.1 value.
<static>
{Number}
ASN1HEX.getVblen(s, idx)
get integer value of ASN.1 length for ASN.1 data
- Parameters:
- {String} s
- hexadecimal string of ASN.1 DER encoded data
- {Number} idx
- string index
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- {Number} ASN.1 L(length) integer value
<static>
{String}
ASN1HEX.getVbyList(h, currentIndex, nthList, checkingTag, removeUnusedbits)
get ASN.1 value by nthList
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag".
When referring value can't be found, this returns null.
NOTE: 'removeUnusedbits' flag has been supported since jsrsasign 7.1.14 asn1hex 1.1.10.
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag".
When referring value can't be found, this returns null.
NOTE: 'removeUnusedbits' flag has been supported since jsrsasign 7.1.14 asn1hex 1.1.10.
- Parameters:
- {String} h
- hexadecimal string of ASN.1 structure
- {Integer} currentIndex
- string index to start searching in hexadecimal string "h"
- {Array} nthList
- array of nth list index
- {String} checkingTag
- (OPTIONAL) string of expected ASN.1 tag for nthList
- {Boolean} removeUnusedbits
- (OPTIONAL) flag for remove first byte for value (DEFAULT false)
- Since:
- asn1hex 1.1.4
- Returns:
- {String} referred hexadecimal string of ASN.1 value(V) or null
<static>
{String}
ASN1HEX.getVbyListEx(h, currentIndex, nthList, checkingTag, removeUnusedbits)
get ASN.1 V by nthList
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag". This method can dig into ASN.1 object encapsulated by OctetString or BitString with unused bits.
This static method is to get a ASN.1 value which specified "nthList" position with checking expected tag "checkingTag". This method can dig into ASN.1 object encapsulated by OctetString or BitString with unused bits.
3014 seq idx=0 3012 seq idx=4 020101 int:1 idx=8 020102 int:2 idx=14 800103 [0]:3 idx=20 810104 [1]:4 idx=26 020105 int:5 idx=32 020106 int:6 idx=38 h = "30140412020101020102800103810104020105020106"; ASN1HEX.getTLVbyList(h, 0, [0, "[0]"]) → 03 ASN1HEX.getTLVbyList(h, 0, [0, 2]) → 05 ASN1HEX.getTLVbyList(h, 0, [0, 2], "0c") → null //not UTF8String(0c)
- Parameters:
- {String} h
- hexadecimal string of ASN.1 structure
- {Integer} currentIndex
- string index to start searching in hexadecimal string "h"
- {Array of Object} nthList
- array list of nth index value or context specific tag string (ex. "[0]")
- {String} checkingTag
- (OPTIONAL) string of expected ASN.1 tag for nthList (default is undefined)
- {Boolean} removeUnusedbits
- (OPTIONAL) flag for trim unused bit from result value (default is undefined)
- Since:
- jsrsasign 8.0.21 asn1hex 1.2.2
- Returns:
- {String} hexadecimal ASN.1 V string refered by nthList. return null if not found
<static>
ASN1HEX.getVidx(s, idx)
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} idx
- string index
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
<static>
{String}
ASN1HEX.hextooidstr(hex)
get OID string from hexadecimal encoded value
This static method converts from ASN.1 DER encoded hexadecimal object identifier value to dot concatinated OID value. KJUR.asn1.ASN1Util.oidIntToHex is a reverse function of this.
This static method converts from ASN.1 DER encoded hexadecimal object identifier value to dot concatinated OID value. KJUR.asn1.ASN1Util.oidIntToHex is a reverse function of this.
ASN1HEX.hextooidstr("550406") → "2.5.4.6"
- 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')
- See:
<static>
{Boolean}
ASN1HEX.isASN1HEX(hex)
simple ASN.1 DER hexadecimal string checker
This method checks wheather the argument 'hex' is a hexadecimal string of ASN.1 data 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
<static>
{Boolean}
ASN1HEX.isContextTag(hex, context)
check if a hexadecimal tag is a specified ASN.1 context specific tag
This method checks if a hexadecimal tag is a specified ASN.1 context specific tag.
Structured and non-structured type of tag have the same string representation
of context specific tag. For example tag "a0" and "80" have the same string
representation "[0]".
The sTag has a range from from "[0]" to "[31]".
ASN1HEX.isContextTag('a0', '[0]') → true // structured ASN1HEX.isContextTag('a1', '[1]') → true // structured ASN1HEX.isContextTag('a2', '[2]') → true // structured ASN1HEX.isContextTag('80', '[0]') → true // non structured ASN1HEX.isContextTag('81', '[1]') → true // non structured ASN1HEX.isContextTag('82', '[2]') → true // non structured ASN1HEX.isContextTag('a0', '[3]') → false ASN1HEX.isContextTag('80', '[15]') → false ASN.1 tag bits 12345679 ++ tag class(universal:00, context specific:10) + structured:1, primitive:0 +++++ tag number (0 - 31)
- Parameters:
- {hTag} hex
- string of a hexadecimal ASN.1 tag consists by two characters (e.x. "a0")
- {sTag} context
- specific tag in string represention (OPTION) (e.x. "[0]")
- Since:
- jsrsasign 8.0.21 asn1hex 1.2.2
- Returns:
- {Boolean} true if hTag is a ASN.1 context specific tag specified by sTag value.
<static>
{String}
ASN1HEX.oidname(oidDotOrHex)
get hexacedimal string from PEM format data
This static method gets a OID name for a specified string of number dot notation (i.e. 1.2.3) or hexadecimal string.
This static method gets a OID name for a specified string of number dot notation (i.e. 1.2.3) or hexadecimal string.
ASN1HEX.oidname("2.5.29.37") → extKeyUsage ASN1HEX.oidname("551d25") → extKeyUsage ASN1HEX.oidname("0.1.2.3") → 0.1.2.3 // unknown
- Parameters:
- {String} oidDotOrHex
- number dot notation(i.e. 1.2.3) or hexadecimal string for OID
- Since:
- jsrsasign 7.2.0 asn1hex 1.1.11
- Returns:
- {String} name for OID
<static>
{Object}
ASN1HEX.parse(h)
parse ASN.1 DER hexadecimal string
This method parses ASN.1 DER hexadecimal string. Its result can be applied to KJUR.asn1.ASN1Util.newOjbect.
This method parses ASN.1 DER hexadecimal string. Its result can be applied to KJUR.asn1.ASN1Util.newOjbect.
ASN1HEX.parse("31193017...") → // RDN {set: [{seq: [{oid: "localityName"}, {utf8str: {str: "Test"}}] }]}
- Parameters:
- {String} h
- hexadecimal string of ASN1. DER
- Since:
- jsrsasign 10.5.3 asn1hex 1.1.x
- Returns:
- {Object} associative array of ASN.1 parsed result
- See:
- KJUR.asn1.ASN1Util.newOjbect