Class Index | File Index

Classes


Class ASN1HEX

ASN.1 DER encoded hexadecimal string utility class
Defined in: asn1hex-1.1.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
ASN.1 DER encoded hexadecimal string utility class This class provides a parser for hexadecimal string of DER encoded ASN.1 binary data.
Method Summary
Method Attributes Method Name and Description
<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, pos)
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.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
<static>  
ASN1HEX.getNthChildIdx(h, idx, nth)
get string index of nth child object of ASN.1 object refered by h, idx
<static>  
ASN1HEX.getTLV(s, idx)
get hexadecimal string of ASN.1 TLV at
<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.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.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
<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.
<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.
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.getV - get ASN.1 V at specified position
    • ASN1HEX.getVlen - 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.getNthChildIndex_AtObj - get nth child index at specified position
    • ASN1HEX.getPosArrayOfChildren_AtObj - get indexes of children
    • ASN1HEX.getPosOfNextSibling_AtObj - get position of next sibling
  • ACCESS NESTED ASN.1 STRUCTURE
  • UTILITIES
Since:
jsrsasign 1.1
Method Detail
<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: NOTE1: Argument KJUR.asn1.ASN1Object object is supported since jsrsasign 6.2.4 asn1hex 1.0.8
// 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, pos)
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.
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} pos
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> {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> ASN1HEX.getNextSiblingIdx(s, idx)
get next sibling starting index for ASN.1 object string
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
Since:
jsrsasign 7.2.0 asn1hex 1.1.11
Returns:
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.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> 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".
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

<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> 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:
ASN.1 L(length) integer value

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

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

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

© 2012-2017 Kenji Urushima, All rights reserved
Documentation generated by JsDoc Toolkit 2.4.0