2018-05-28 00:53:43 +02:00
/ * *
* @ author n1474335 [ n1474335 @ gmail . com ]
* @ copyright Crown Copyright 2016
* @ license Apache - 2.0
* /
import r from "jsrsasign" ;
2019-07-09 13:23:59 +02:00
import Operation from "../Operation.mjs" ;
2018-05-28 00:53:43 +02:00
/ * *
* Parse ASN . 1 hex string operation
* /
class ParseASN1HexString extends Operation {
/ * *
* ParseASN1HexString constructor
* /
constructor ( ) {
super ( ) ;
this . name = "Parse ASN.1 hex string" ;
this . module = "PublicKey" ;
this . description = "Abstract Syntax Notation One (ASN.1) is a standard and notation that describes rules and structures for representing, encoding, transmitting, and decoding data in telecommunications and computer networking.<br><br>This operation parses arbitrary ASN.1 data and presents the resulting tree." ;
2018-08-21 20:07:13 +02:00
this . infoURL = "https://wikipedia.org/wiki/Abstract_Syntax_Notation_One" ;
2018-05-28 00:53:43 +02:00
this . inputType = "string" ;
this . outputType = "string" ;
this . args = [
{
"name" : "Starting index" ,
"type" : "number" ,
"value" : 0
} ,
{
"name" : "Truncate octet strings longer than" ,
"type" : "number" ,
"value" : 32
}
] ;
}
/ * *
* @ param { string } input
* @ param { Object [ ] } args
* @ returns { string }
* /
run ( input , args ) {
const [ index , truncateLen ] = args ;
return r . ASN1HEX . dump ( input . replace ( /\s/g , "" ) , {
"ommitLongOctet" : truncateLen
} , index ) ;
}
}
export default ParseASN1HexString ;