UNPKG

asn1-ts

Version:

ASN.1 encoding and decoding, including BER, CER, and DER.

20 lines (19 loc) 822 B
import { ASN1TagClass, CANONICAL_TAG_CLASS_ORDERING } from "../values.mjs"; export default function isInCanonicalOrder(elements) { let previousTagClass = null; let previousTagNumber = null; return (elements.every((element) => { if (previousTagClass !== null && element.tagClass !== previousTagClass && CANONICAL_TAG_CLASS_ORDERING.indexOf(element.tagClass) <= CANONICAL_TAG_CLASS_ORDERING.indexOf(previousTagClass)) return false; if (element.tagClass !== previousTagClass) previousTagNumber = null; if (previousTagNumber !== null && element.tagNumber < previousTagNumber) return false; previousTagClass = element.tagClass; previousTagNumber = element.tagNumber; return true; })); }