Ambimat GroupAmbimatAmbiSecureSIMAuthAmbiAutomationEngineering BlogAhmedabad · India · Est. 1982
PKI / ASN.1 utility

ASN.1 BER/DER Parser

Walk any BER/DER-encoded ASN.1 tree (X.690). Tags, lengths, types, and value previews; OBJECT IDENTIFIERs are looked up against a built-in dictionary. Useful when you have raw bytes and need to know what they are. Accepts hex, bare base64, or a PEM block.

Client-sideX.690OID lookup

Input

Result

Paste, drop, or pick a file.
All parsing runs locally.

About ASN.1 / BER / DER

ASN.1 (Abstract Syntax Notation One) describes the abstract structure; BER/DER is the concrete byte encoding (a tag, a length, and a value, recursively). DER is the canonical, deterministic flavour used by X.509, PKCS#7, PKCS#10, PKCS#12 and friends. Defined by ITU-T X.690.

Spec

X.690 (BER/CER/DER) and X.680 (ASN.1).

Companion tool

For BER-TLV (smart-card flavour, slightly different conventions): use the TLV parser.

TLV parser →

Companion tool

X.509-specific structured view.

X.509 viewer →

Reading ASN.1 DER/BER structure

ASN.1 with DER/BER encoding is the backbone of nearly every PKI and smart-card format: X.509 certificates, PKCS#7/#8/#10, EMV data objects and many JavaCard structures are all trees of tag-length-value (TLV) triples. This parser decodes that tree so you can see the SEQUENCEs, SETs, INTEGERs, OIDs and OCTET STRINGs that make up a structure.

Worked example: the bytes 30 03 02 01 05 parse as a SEQUENCE (tag 0x30, length 3) containing an INTEGER (tag 0x02, length 1) with value 5. Use it to debug a malformed certificate or to learn how a format is laid out. It decodes structure and common types; it does not attach semantic meaning to every object identifier.

Frequently asked questions

What is the difference between BER and DER?

BER allows several valid encodings of the same value; DER is a canonical subset with one encoding, which is what X.509 requires. This tool reads both.

What does a tag like 0x30 or 0xA0 mean?

0x30 is a constructed SEQUENCE; 0xA0 is a context-specific constructed tag ([0]) often used for optional fields. The parser labels the class and whether a tag is constructed.

Does my data leave the browser?

No — parsing is entirely client-side.