Guide
Reading ASN.1 and DER structures in certificates and keys
Certificates, public keys, certificate requests, PKCS#12 files and many protocol messages are written in ASN.1, an abstract notation, and stored in DER, one strict binary encoding of it. DER is compact and unreadable by eye, which is why tools like openssl asn1parse exist. This decoder gives the same view in a browser tab: paste the data and read the structure as an indented tree, with offsets and named identifiers, without installing anything or uploading the file.
How DER is built
Every element has three parts. A tag says what kind of value follows: 0x30 is a SEQUENCE, 0x31 a SET, 0x02 an INTEGER, 0x06 an OBJECT IDENTIFIER, 0x0C a UTF8String, 0x03 a BIT STRING. A length follows, in one byte for values up to 127 and in several bytes after that. The value itself comes last, and for a SEQUENCE it is simply more elements. That recursive layout is why a dump looks like a tree.
A worked example
The Sample button loads a 313-byte certificate request. The page reports “Looks like PEM label CERTIFICATE REQUEST”, size 313 bytes and three top-level elements. The first line, 0: 4+309 SEQUENCE, wraps the whole request. Inside it the subject name is built from SET and SEQUENCE pairs: the object identifier 2.5.4.6 is shown as countryName (C) with the value “DE”, 2.5.4.10 as organizationName (O) with “Test GmbH”, and 2.5.4.3 as commonName (CN) with “api.example.org”. The public key follows: 1.2.840.10045.2.1 is id-ecPublicKey, 1.2.840.10045.3.1.7 the curve prime256v1 (P-256), and a 65-byte BIT STRING beginning 04 holds the uncompressed point. The requested extensions contain subjectAltName with two names, api.example.org and api2.example.org, and the signature algorithm 1.2.840.10045.4.3.2 is ecdsa-with-SHA256.
Reading object identifiers
An OID is a path of numbers assigned by standards bodies. 2.5.4.x entries are X.500 attributes such as names, 1.2.840.113549 is RSA Security’s arc (PKCS), and 1.2.840.10045 is the arc for elliptic-curve algorithms. About 100 common ones are built in; others print as dotted numbers, which you can look up in a registry.
Encapsulated content
Some values are containers: an OCTET STRING that holds a whole extension, or a BIT STRING that holds a signature made of two integers. When the content parses as valid DER, the page expands it and marks the line encapsulated. In the sample the signature BIT STRING opens into a SEQUENCE of two INTEGERs, the r and s values of the ECDSA signature.
Limits
The page reads DER. Files that use BER with indefinite lengths, common in older PKCS#7 or CMS data, are reported as errors; convert them with OpenSSL first. It describes structure only: it does not check that a certificate follows X.509 rules, does not verify signatures here, and does not decide what to trust. For those jobs, use the certificate and CSR decoders.
Practical uses
A dump answers questions that a certificate viewer hides. Is the key usage extension marked critical? Which curve does a key use? Does a signature contain the two integers you expect? Developers paste the output into bug reports, security reviewers compare the extensions of two certificates line by line, and people debugging a library that refuses a key can see at once whether the file is a certificate, a request, a private key or something else entirely, since the first elements differ for each type.
Related tools
- SSL Certificate Decoder turns a certificate into a readable summary.
- CSR Decoder checks a request before you send it to a certificate authority.
- JWK to PEM Converter converts keys between web and file formats.
- SSH Key Fingerprint Calculator works on public keys from authorized_keys files.
Checked against the current version of the ASN.1 Decoder on .

