{"id":"asn1-der-parse","version":"1.0.0","description":"Parse one ASN.1 DER value into a flat schema-free TLV node list.","supported_operations":["parse asn1 der tlv tree","decode distinguished encoding into nodes","der hex to schema free node list","read asn1 tag length and value","split one der value into tlvs","universal type of a der encoding","פענוח מבנה תגיות אסן אחד לעץ שטוח"],"unsupported_operations":["verify a signature carried inside the encoding","accept ber indefinite length or non-canonical contents","parse a pem certificate chain"],"semantics":["Input der_hex is one lowercase even-length hex encoding of exactly one DER value. Trailing bytes are rejected.","The node list is a preorder walk. Index 0 is the root, parent -1. child_indexes point at later nodes. content_hex is the contents octets only; header_hex is the tag and definite length.","Universal types with DER content rules are checked, including BOOLEAN 0x00/0xff, minimal two's-complement INTEGER and ENUMERATED, primitive BIT STRING with zero padding, NULL, minimal OIDs, and REAL under X.690 8.5 and 11.3.","REAL plus zero is empty contents and value_text \"0\". +INF is \"INF\", -INF is \"-INF\". A finite canonical value is \"<mantissa>*2^<exponent>\" with an odd mantissa, base 2 and scaling factor 0. 0x00, decimal encodings, base 8/16, a nonzero scale, an even mantissa, and a non-shortest exponent are rejected. 0x42 and 0x43 are reserved.","UTCTime must be YYMMDDHHMMSSZ, with years 00-49 read as 2000-2049 and 50-99 as 1950-1999 (RFC 5280). GeneralizedTime must be YYYYMMDDHHMMSS[.fraction]Z with no trailing zero in the fraction.","SET components must already be in ascending raw DER order. SEQUENCE order is preserved. Unknown and non-universal tags are kept structurally. Tag 0 and tag 15 are reserved.","Large integers, OID arcs and REAL mantissas are decimal strings. No floating-point value is returned.","Limits are enforced before a full walk: 512 hex characters, 256 decoded bytes, depth 8, 32 nodes, 600 tag digits, and 16384 UTF-8 bytes of JSON output.","Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity."],"limits":{"max_der_bytes":256,"max_depth":8,"max_nodes":32,"max_output_bytes":16384,"max_tag_decimal_digits":600,"max_hex_chars":512},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["der_hex"],"properties":{"der_hex":{"type":"string","minLength":2,"maxLength":512,"pattern":"^([0-9a-f]{2})+$"}}},"output_schema":{"type":"object","additionalProperties":false,"required":["der_hex","byte_length","node_count","depth","nodes"],"properties":{"der_hex":{"type":"string","minLength":4,"maxLength":512,"pattern":"^([0-9a-f]{2})+$"},"byte_length":{"type":"integer","minimum":2,"maximum":256},"node_count":{"type":"integer","minimum":1,"maximum":32},"depth":{"type":"integer","minimum":1,"maximum":8},"nodes":{"type":"array","minItems":1,"maxItems":32,"items":{"type":"object","additionalProperties":false,"required":["index","parent","depth","offset","tag_class","tag_number","constructed","header_hex","content_hex","der_hex","universal_type","value_kind","value_text","child_indexes"],"properties":{"index":{"type":"integer","minimum":0,"maximum":31},"parent":{"type":"integer","minimum":-1,"maximum":31},"depth":{"type":"integer","minimum":1,"maximum":8},"offset":{"type":"integer","minimum":0,"maximum":255},"tag_class":{"type":"string","enum":["universal","application","context","private"]},"tag_number":{"type":"string","minLength":1,"maxLength":600,"pattern":"^(0|[1-9][0-9]{0,599})$"},"constructed":{"type":"boolean"},"header_hex":{"type":"string","minLength":4,"maxLength":512,"pattern":"^([0-9a-f]{2})+$"},"content_hex":{"type":"string","maxLength":512,"pattern":"^([0-9a-f]{2})*$"},"der_hex":{"type":"string","minLength":4,"maxLength":512,"pattern":"^([0-9a-f]{2})+$"},"universal_type":{"type":"string","enum":["","unknown","boolean","integer","bit_string","octet_string","null","object_identifier","object_descriptor","external","real","enumerated","embedded_pdv","utf8_string","relative_oid","time","sequence","set","numeric_string","printable_string","teletex_string","videotex_string","ia5_string","utc_time","generalized_time","graphic_string","visible_string","general_string","universal_string","character_string","bmp_string","date","time_of_day","date_time","duration","oid_iri","relative_oid_iri"]},"value_kind":{"type":"string","enum":["none","boolean","integer","bit_string","octet_string","null","oid","relative_oid","real","enumerated","string","time","opaque"]},"value_text":{"type":"string","maxLength":4096},"child_indexes":{"type":"array","maxItems":31,"items":{"type":"integer","minimum":0,"maximum":31}}}}}}},"examples":[{"input":{"der_hex":"0500"},"output":{"der_hex":"0500","byte_length":2,"node_count":1,"depth":1,"nodes":[{"index":0,"parent":-1,"depth":1,"offset":0,"tag_class":"universal","tag_number":"5","constructed":false,"header_hex":"0500","content_hex":"","der_hex":"0500","universal_type":"null","value_kind":"null","value_text":"","child_indexes":[]}]}},{"input":{"der_hex":"0903800001"},"output":{"der_hex":"0903800001","byte_length":5,"node_count":1,"depth":1,"nodes":[{"index":0,"parent":-1,"depth":1,"offset":0,"tag_class":"universal","tag_number":"9","constructed":false,"header_hex":"0903","content_hex":"800001","der_hex":"0903800001","universal_type":"real","value_kind":"real","value_text":"1*2^0","child_indexes":[]}]}},{"input":{"der_hex":"300906052b0e03021a0500"},"output":{"der_hex":"300906052b0e03021a0500","byte_length":11,"node_count":3,"depth":2,"nodes":[{"index":0,"parent":-1,"depth":1,"offset":0,"tag_class":"universal","tag_number":"16","constructed":true,"header_hex":"3009","content_hex":"06052b0e03021a0500","der_hex":"300906052b0e03021a0500","universal_type":"sequence","value_kind":"none","value_text":"","child_indexes":[1,2]},{"index":1,"parent":0,"depth":2,"offset":2,"tag_class":"universal","tag_number":"6","constructed":false,"header_hex":"0605","content_hex":"2b0e03021a","der_hex":"06052b0e03021a","universal_type":"object_identifier","value_kind":"oid","value_text":"1.3.14.3.2.26","child_indexes":[]},{"index":2,"parent":0,"depth":2,"offset":9,"tag_class":"universal","tag_number":"5","constructed":false,"header_hex":"0500","content_hex":"","der_hex":"0500","universal_type":"null","value_kind":"null","value_text":"","child_indexes":[]}]}}],"execute_url":"/v1/tools/asn1-der-parse/versions/1.0.0/execute"}