Ein ASN.1-Modul deklariert Typen; RFC 5280 definiert zum Beispiel Certificate als SEQUENCE aus tbsCertificate, signatureAlgorithm (ein AlgorithmIdentifier) und signatureValue (ein BIT STRING). Bausteine sind SEQUENCE, SET, CHOICE, OPTIONAL- und DEFAULT-Felder, kontextspezifische Tags ([0], [1]) mit IMPLICIT- oder EXPLICIT-Tagging sowie primitive Typen wie INTEGER, BIT STRING, OCTET STRING, OBJECT IDENTIFIER und die String- und Zeittypen.
Kodierungsregeln machen aus einem Wert Bytes: BER und seine kanonische Teilmenge DER (X.690) für PKI, PER für kompakte Telekommunikationsnachrichten, XER und JER für XML und JSON. Das meiste sicherheitsrelevante ASN.1 liegt als DER vor.
Das Parsen von ASN.1 hat eine lange Fehlergeschichte (Längenüberläufe, Verwechslung von BER und DER, Abweichungen bei der Behandlung von Tags); nutze daher einen gepflegten Parser und schreibe nie selbst einen für nicht vertrauenswürdige Eingaben. Einen Dump lesen zu können ist beim Debuggen sehr nützlich: openssl asn1parse -i oder der ASN.1-Explorer zeigen den Baum mit Offsets.