Jeder Wert ist als Tag–Länge–Wert aufgebaut: ein Tag-Byte (0x30 SEQUENCE, 0x02 INTEGER, 0x03 BIT STRING, 0x04 OCTET STRING, 0x05 NULL, 0x06 OBJECT IDENTIFIER, 0x0C UTF8String, 0x17 UTCTime), eine Länge (ein Byte unter 128, sonst 0x81/0x82… gefolgt von den Längenbytes) und der Inhalt. DER ist eine eingeschränkte Form von BER: nur definite Längen, minimale Kodierung von Längen und Ganzzahlen, 0xFF für TRUE, sortierte Elemente in SET OF.
Die kanonische Kodierung ist wichtig, weil Signaturen exakte Bytes abdecken: Das tbsCertificate eines Zertifikats muss sich identisch neu kodieren lassen, damit die Signaturprüfung gelingt. Zu tolerante Parser, die BER akzeptieren, wo DER vorgeschrieben ist, haben Signatur-Malleability verursacht (BIP 66 bei Bitcoin) und in mehreren Bibliotheken das Umgehen der Signaturprüfung ermöglicht.
DER-Integer sind vorzeichenbehaftet, daher erhält ein positiver Wert, dessen oberstes Bit gesetzt ist, ein führendes 0x00; deshalb sind ECDSA-Signaturen in DER bei P-256 zwischen 70 und 72 Byte lang. PEM ist schlicht base64-kodiertes DER mit Header-Zeilen. Der ASN.1-Explorer dekodiert jede DER-Struktur lokal.