asn1-ts 8.0.5 → 9.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/{node/ConstructedElementSpecification.d.ts → ConstructedElementSpecification.d.mts} +2 -2
- package/dist/ConstructedElementSpecification.mjs +1 -0
- package/dist/{node/asn1.d.ts → asn1.d.mts} +7 -7
- package/dist/{node/asn1.js → asn1.mjs} +91 -132
- package/dist/{node/classes/ABSTRACT-SYNTAX.d.ts → classes/ABSTRACT-SYNTAX.d.mts} +2 -2
- package/dist/classes/ABSTRACT-SYNTAX.mjs +1 -0
- package/dist/{node/classes/TYPE-IDENTIFIER.d.ts → classes/TYPE-IDENTIFIER.d.mts} +2 -2
- package/dist/classes/TYPE-IDENTIFIER.mjs +1 -0
- package/dist/classes/index.d.mts +2 -0
- package/dist/classes/index.mjs +1 -0
- package/dist/{node/codecs/ber/decoders/decodeBitString.d.ts → codecs/ber/decoders/decodeBitString.d.mts} +1 -1
- package/dist/codecs/ber/decoders/decodeBitString.mjs +19 -0
- package/dist/{node/codecs/ber/decoders/decodeBoolean.d.ts → codecs/ber/decoders/decodeBoolean.d.mts} +1 -1
- package/dist/codecs/ber/decoders/decodeBoolean.mjs +7 -0
- package/dist/{node/codecs/ber/decoders/decodeDuration.d.ts → codecs/ber/decoders/decodeDuration.d.mts} +1 -1
- package/dist/{node/codecs/ber/decoders/decodeDuration.js → codecs/ber/decoders/decodeDuration.mjs} +9 -48
- package/dist/{node/codecs/ber/decoders/decodeGeneralizedTime.d.ts → codecs/ber/decoders/decodeGeneralizedTime.d.mts} +1 -1
- package/dist/{node/codecs/ber/decoders/decodeGeneralizedTime.js → codecs/ber/decoders/decodeGeneralizedTime.mjs} +10 -49
- package/dist/{node/codecs/ber/decoders/decodeReal.d.ts → codecs/ber/decoders/decodeReal.d.mts} +1 -1
- package/dist/codecs/ber/decoders/decodeReal.mjs +108 -0
- package/dist/codecs/ber/decoders/decodeSequence.d.mts +3 -0
- package/dist/codecs/ber/decoders/decodeSequence.mjs +11 -0
- package/dist/{node/codecs/ber/decoders/decodeUTCTime.d.ts → codecs/ber/decoders/decodeUTCTime.d.mts} +1 -1
- package/dist/codecs/ber/decoders/decodeUTCTime.mjs +45 -0
- package/dist/{node/codecs/ber/encoders/encodeGeneralString.d.ts → codecs/ber/encoders/encodeGeneralString.d.mts} +1 -1
- package/dist/codecs/ber/encoders/encodeGeneralString.mjs +13 -0
- package/dist/{node/codecs/ber/encoders/encodeGraphicString.d.ts → codecs/ber/encoders/encodeGraphicString.d.mts} +1 -1
- package/dist/codecs/ber/encoders/encodeGraphicString.mjs +13 -0
- package/dist/{node/codecs/ber/encoders/encodeNumericString.d.ts → codecs/ber/encoders/encodeNumericString.d.mts} +1 -1
- package/dist/codecs/ber/encoders/encodeNumericString.mjs +13 -0
- package/dist/{node/codecs/ber/encoders/encodeObjectDescriptor.d.ts → codecs/ber/encoders/encodeObjectDescriptor.d.mts} +1 -1
- package/dist/codecs/ber/encoders/encodeObjectDescriptor.mjs +13 -0
- package/dist/{node/codecs/ber/encoders/encodePrintableString.d.ts → codecs/ber/encoders/encodePrintableString.d.mts} +1 -1
- package/dist/codecs/ber/encoders/encodePrintableString.mjs +14 -0
- package/dist/{node/codecs/ber/encoders/encodeVisibleString.d.ts → codecs/ber/encoders/encodeVisibleString.d.mts} +1 -1
- package/dist/codecs/ber/encoders/encodeVisibleString.mjs +13 -0
- package/dist/{node/codecs/ber.d.ts → codecs/ber.d.mts} +5 -5
- package/dist/{node/codecs/ber.js → codecs/ber.mjs} +142 -180
- package/dist/codecs/cer/decoders/decodeSequence.d.mts +3 -0
- package/dist/codecs/cer/decoders/decodeSequence.mjs +14 -0
- package/dist/{node/codecs/cer.d.ts → codecs/cer.d.mts} +5 -5
- package/dist/{node/codecs/cer.js → codecs/cer.mjs} +146 -184
- package/dist/{node/codecs/coer/decoders/decodeBoolean.d.ts → codecs/coer/decoders/decodeBoolean.d.mts} +1 -1
- package/dist/codecs/coer/decoders/decodeBoolean.mjs +10 -0
- package/dist/{node/codecs/der/decoders/decodeBitString.d.ts → codecs/der/decoders/decodeBitString.d.mts} +1 -1
- package/dist/codecs/der/decoders/decodeBitString.mjs +23 -0
- package/dist/{node/codecs/der/decoders/decodeBoolean.d.ts → codecs/der/decoders/decodeBoolean.d.mts} +1 -1
- package/dist/codecs/der/decoders/decodeBoolean.mjs +10 -0
- package/dist/{node/codecs/der/decoders/decodeDuration.d.ts → codecs/der/decoders/decodeDuration.d.mts} +1 -1
- package/dist/{node/codecs/der/decoders/decodeDuration.js → codecs/der/decoders/decodeDuration.mjs} +9 -48
- package/dist/{node/codecs/der/decoders/decodeGeneralizedTime.d.ts → codecs/der/decoders/decodeGeneralizedTime.d.mts} +1 -1
- package/dist/codecs/der/decoders/decodeGeneralizedTime.mjs +42 -0
- package/dist/{node/codecs/der/decoders/decodeReal.d.ts → codecs/der/decoders/decodeReal.d.mts} +1 -1
- package/dist/codecs/der/decoders/decodeReal.mjs +95 -0
- package/dist/codecs/der/decoders/decodeSequence.d.mts +3 -0
- package/dist/codecs/der/decoders/decodeSequence.mjs +14 -0
- package/dist/{node/codecs/der/decoders/decodeUTCTime.d.ts → codecs/der/decoders/decodeUTCTime.d.mts} +1 -1
- package/dist/codecs/der/decoders/decodeUTCTime.mjs +24 -0
- package/dist/{node/codecs/der.d.ts → codecs/der.d.mts} +5 -5
- package/dist/{node/codecs/der.js → codecs/der.mjs} +138 -176
- package/dist/{node/codecs/x690/decoders/decodeCharacterString.d.ts → codecs/x690/decoders/decodeCharacterString.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeCharacterString.mjs +12 -0
- package/dist/{node/codecs/x690/decoders/decodeDate.d.ts → codecs/x690/decoders/decodeDate.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeDate.mjs +10 -0
- package/dist/{node/codecs/x690/decoders/decodeDateTime.d.ts → codecs/x690/decoders/decodeDateTime.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeDateTime.mjs +13 -0
- package/dist/{node/codecs/x690/decoders/decodeEmbeddedPDV.d.ts → codecs/x690/decoders/decodeEmbeddedPDV.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeEmbeddedPDV.mjs +8 -0
- package/dist/{node/codecs/x690/decoders/decodeExternal.d.ts → codecs/x690/decoders/decodeExternal.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeExternal.mjs +39 -0
- package/dist/{node/codecs/x690/decoders/decodeGeneralString.d.ts → codecs/x690/decoders/decodeGeneralString.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeGeneralString.mjs +12 -0
- package/dist/{node/codecs/x690/decoders/decodeGraphicString.d.ts → codecs/x690/decoders/decodeGraphicString.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeGraphicString.mjs +12 -0
- package/dist/{node/codecs/x690/decoders/decodeInteger.d.ts → codecs/x690/decoders/decodeInteger.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeInteger.mjs +16 -0
- package/dist/{node/codecs/x690/decoders/decodeNumericString.d.ts → codecs/x690/decoders/decodeNumericString.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeNumericString.mjs +12 -0
- package/dist/{node/codecs/x690/decoders/decodeOIDIRI.d.ts → codecs/x690/decoders/decodeOIDIRI.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeOIDIRI.mjs +4 -0
- package/dist/{node/codecs/x690/decoders/decodeObjectDescriptor.d.ts → codecs/x690/decoders/decodeObjectDescriptor.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeObjectDescriptor.mjs +12 -0
- package/dist/{node/codecs/x690/decoders/decodeObjectIdentifier.d.ts → codecs/x690/decoders/decodeObjectIdentifier.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeObjectIdentifier.mjs +46 -0
- package/dist/{node/codecs/x690/decoders/decodePrintableString.d.ts → codecs/x690/decoders/decodePrintableString.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodePrintableString.mjs +13 -0
- package/dist/{node/codecs/x690/decoders/decodeRelativeOIDIRI.d.ts → codecs/x690/decoders/decodeRelativeOIDIRI.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeRelativeOIDIRI.mjs +4 -0
- package/dist/{node/codecs/x690/decoders/decodeRelativeObjectIdentifier.d.ts → codecs/x690/decoders/decodeRelativeObjectIdentifier.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeRelativeObjectIdentifier.mjs +24 -0
- package/dist/{node/codecs/x690/decoders/decodeTime.d.ts → codecs/x690/decoders/decodeTime.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeTime.mjs +4 -0
- package/dist/{node/codecs/x690/decoders/decodeTimeOfDay.d.ts → codecs/x690/decoders/decodeTimeOfDay.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeTimeOfDay.mjs +14 -0
- package/dist/{node/codecs/x690/decoders/decodeVisibleString.d.ts → codecs/x690/decoders/decodeVisibleString.d.mts} +1 -1
- package/dist/codecs/x690/decoders/decodeVisibleString.mjs +12 -0
- package/dist/{node/codecs/x690/encoders/encodeBitString.d.ts → codecs/x690/encoders/encodeBitString.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeBitString.mjs +13 -0
- package/dist/{node/codecs/x690/encoders/encodeBoolean.d.ts → codecs/x690/encoders/encodeBoolean.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeBoolean.mjs +3 -0
- package/dist/{node/codecs/x690/encoders/encodeCharacterString.d.ts → codecs/x690/encoders/encodeCharacterString.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeCharacterString.mjs +9 -0
- package/dist/{node/codecs/x690/encoders/encodeDate.d.ts → codecs/x690/encoders/encodeDate.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeDate.mjs +11 -0
- package/dist/{node/codecs/x690/encoders/encodeDateTime.d.ts → codecs/x690/encoders/encodeDateTime.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeDateTime.mjs +14 -0
- package/dist/{node/codecs/x690/encoders/encodeDuration.d.ts → codecs/x690/encoders/encodeDuration.d.mts} +1 -1
- package/dist/{node/codecs/x690/encoders/encodeDuration.js → codecs/x690/encoders/encodeDuration.mjs} +5 -11
- package/dist/{node/codecs/x690/encoders/encodeEmbeddedPDV.d.ts → codecs/x690/encoders/encodeEmbeddedPDV.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeEmbeddedPDV.mjs +9 -0
- package/dist/{node/codecs/x690/encoders/encodeExternal.d.ts → codecs/x690/encoders/encodeExternal.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeExternal.mjs +36 -0
- package/dist/{node/codecs/x690/encoders/encodeGeneralizedTime.d.ts → codecs/x690/encoders/encodeGeneralizedTime.d.mts} +1 -1
- package/dist/{node/codecs/x690/encoders/encodeGeneralizedTime.js → codecs/x690/encoders/encodeGeneralizedTime.mjs} +3 -9
- package/dist/{node/codecs/x690/encoders/encodeInteger.d.ts → codecs/x690/encoders/encodeInteger.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeInteger.mjs +4 -0
- package/dist/{node/codecs/x690/encoders/encodeOIDIRI.d.ts → codecs/x690/encoders/encodeOIDIRI.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeOIDIRI.mjs +4 -0
- package/dist/{node/codecs/x690/encoders/encodeObjectIdentifier.d.ts → codecs/x690/encoders/encodeObjectIdentifier.d.mts} +1 -1
- package/dist/{node/codecs/x690/encoders/encodeObjectIdentifier.js → codecs/x690/encoders/encodeObjectIdentifier.mjs} +3 -6
- package/dist/{node/codecs/x690/encoders/encodeReal.d.ts → codecs/x690/encoders/encodeReal.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeReal.mjs +4 -0
- package/dist/{node/codecs/x690/encoders/encodeRelativeOIDIRI.d.ts → codecs/x690/encoders/encodeRelativeOIDIRI.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeRelativeOIDIRI.mjs +4 -0
- package/dist/{node/codecs/x690/encoders/encodeRelativeObjectIdentifier.d.ts → codecs/x690/encoders/encodeRelativeObjectIdentifier.d.mts} +1 -1
- package/dist/{node/codecs/x690/encoders/encodeRelativeObjectIdentifier.js → codecs/x690/encoders/encodeRelativeObjectIdentifier.mjs} +3 -6
- package/dist/codecs/x690/encoders/encodeSequence.d.mts +3 -0
- package/dist/codecs/x690/encoders/encodeSequence.mjs +4 -0
- package/dist/{node/codecs/x690/encoders/encodeTime.d.ts → codecs/x690/encoders/encodeTime.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeTime.mjs +4 -0
- package/dist/{node/codecs/x690/encoders/encodeTimeOfDay.d.ts → codecs/x690/encoders/encodeTimeOfDay.d.mts} +1 -1
- package/dist/codecs/x690/encoders/encodeTimeOfDay.mjs +4 -0
- package/dist/{node/codecs/x690/encoders/encodeUTCTime.d.ts → codecs/x690/encoders/encodeUTCTime.d.mts} +1 -1
- package/dist/{node/codecs/x690/encoders/encodeUTCTime.js → codecs/x690/encoders/encodeUTCTime.mjs} +3 -9
- package/dist/{node/errors.d.ts → errors.d.mts} +1 -1
- package/dist/{node/errors.js → errors.mjs} +26 -23
- package/dist/{node/functional.d.ts → functional.d.mts} +2 -2
- package/dist/functional.mjs +766 -0
- package/dist/index.d.mts +16 -0
- package/dist/index.mjs +15 -0
- package/dist/interfaces/Byteable.d.mts +4 -0
- package/dist/interfaces/Byteable.mjs +1 -0
- package/dist/interfaces/CharacterValidationFunction.mjs +1 -0
- package/dist/interfaces/Debyteable.mjs +1 -0
- package/dist/{node/interfaces/Deelementable.d.ts → interfaces/Deelementable.d.mts} +1 -1
- package/dist/interfaces/Deelementable.mjs +1 -0
- package/dist/interfaces/Destringable.mjs +1 -0
- package/dist/interfaces/Elementable.d.mts +4 -0
- package/dist/interfaces/Elementable.mjs +1 -0
- package/dist/interfaces/Enbyteable.mjs +1 -0
- package/dist/{node/interfaces/Enelementable.d.ts → interfaces/Enelementable.d.mts} +1 -1
- package/dist/interfaces/Enelementable.mjs +1 -0
- package/dist/interfaces/Enstringable.mjs +1 -0
- package/dist/{node/interfaces/Identified.d.ts → interfaces/Identified.d.mts} +1 -1
- package/dist/interfaces/Identified.mjs +1 -0
- package/dist/interfaces/Long.mjs +1 -0
- package/dist/interfaces/Named.mjs +1 -0
- package/dist/interfaces/Stringable.d.mts +4 -0
- package/dist/interfaces/Stringable.mjs +1 -0
- package/dist/interfaces/index.d.mts +12 -0
- package/dist/interfaces/index.mjs +1 -0
- package/dist/{node/macros.d.ts → macros.d.mts} +5 -5
- package/dist/macros.mjs +14 -0
- package/dist/{node/types/CharacterString.d.ts → types/CharacterString.d.mts} +1 -1
- package/dist/{node/types/CharacterString.js → types/CharacterString.mjs} +3 -4
- package/dist/{node/types/EmbeddedPDV.d.ts → types/EmbeddedPDV.d.mts} +1 -1
- package/dist/{node/types/EmbeddedPDV.js → types/EmbeddedPDV.mjs} +3 -4
- package/dist/{node/types/External.d.ts → types/External.d.mts} +2 -2
- package/dist/{node/types/External.js → types/External.mjs} +7 -9
- package/dist/{node/types/ObjectIdentifier.js → types/ObjectIdentifier.mjs} +6 -11
- package/dist/{node/types/TypeIdentifier.d.ts → types/TypeIdentifier.d.mts} +2 -2
- package/dist/types/TypeIdentifier.mjs +8 -0
- package/dist/types/index.d.mts +18 -0
- package/dist/types/index.mjs +18 -0
- package/dist/{node/types/time/DATE-ENCODING.d.ts → types/time/DATE-ENCODING.d.mts} +1 -1
- package/dist/types/time/DATE-ENCODING.mjs +13 -0
- package/dist/{node/types/time/DURATION-EQUIVALENT.d.ts → types/time/DURATION-EQUIVALENT.d.mts} +1 -1
- package/dist/types/time/DURATION-EQUIVALENT.mjs +93 -0
- package/dist/{node/types/time/DURATION-INTERVAL-ENCODING.d.ts → types/time/DURATION-INTERVAL-ENCODING.d.mts} +1 -1
- package/dist/types/time/DURATION-INTERVAL-ENCODING.mjs +50 -0
- package/dist/{node/types/time/HOURS-DIFF-ENCODING.d.ts → types/time/HOURS-DIFF-ENCODING.d.mts} +1 -1
- package/dist/types/time/HOURS-DIFF-ENCODING.mjs +11 -0
- package/dist/{node/types/time/HOURS-ENCODING.d.ts → types/time/HOURS-ENCODING.d.mts} +1 -1
- package/dist/types/time/HOURS-ENCODING.mjs +8 -0
- package/dist/{node/types/time/HOURS-MINUTES-DIFF-ENCODING.d.ts → types/time/HOURS-MINUTES-DIFF-ENCODING.d.mts} +1 -1
- package/dist/types/time/HOURS-MINUTES-DIFF-ENCODING.mjs +14 -0
- package/dist/{node/types/time/HOURS-MINUTES-ENCODING.d.ts → types/time/HOURS-MINUTES-ENCODING.d.mts} +1 -1
- package/dist/types/time/HOURS-MINUTES-ENCODING.mjs +11 -0
- package/dist/{node/types/time/TIME-OF-DAY-DIFF-ENCODING.d.ts → types/time/TIME-OF-DAY-DIFF-ENCODING.d.mts} +1 -1
- package/dist/types/time/TIME-OF-DAY-DIFF-ENCODING.mjs +17 -0
- package/dist/{node/types/time/TIME-OF-DAY-ENCODING.d.ts → types/time/TIME-OF-DAY-ENCODING.d.mts} +1 -1
- package/dist/types/time/TIME-OF-DAY-ENCODING.mjs +14 -0
- package/dist/{node/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.d.ts → types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.d.mts} +1 -1
- package/dist/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.mjs +20 -0
- package/dist/{node/types/time/TIME-OF-DAY-FRACTION-ENCODING.d.ts → types/time/TIME-OF-DAY-FRACTION-ENCODING.d.mts} +1 -1
- package/dist/types/time/TIME-OF-DAY-FRACTION-ENCODING.mjs +17 -0
- package/dist/{node/types/time/YEAR-ENCODING.d.ts → types/time/YEAR-ENCODING.d.mts} +1 -1
- package/dist/types/time/YEAR-ENCODING.mjs +6 -0
- package/dist/{node/types/time/YEAR-MONTH-ENCODING.d.ts → types/time/YEAR-MONTH-ENCODING.d.mts} +1 -1
- package/dist/types/time/YEAR-MONTH-ENCODING.mjs +10 -0
- package/dist/utils/base128Length.mjs +3 -0
- package/dist/{node/utils/bigint.d.ts → utils/bigint.d.mts} +1 -1
- package/dist/{node/utils/bigint.js → utils/bigint.mjs} +21 -25
- package/dist/{node/utils/compareSetOfElementsCanonically.d.ts → utils/compareSetOfElementsCanonically.d.mts} +1 -1
- package/dist/{node/utils/compareSetOfElementsCanonically.js → utils/compareSetOfElementsCanonically.mjs} +1 -4
- package/dist/utils/convertBytesToText.mjs +14 -0
- package/dist/utils/convertTextToBytes.mjs +11 -0
- package/dist/utils/decodeIEEE754DoublePrecisionFloat.mjs +3 -0
- package/dist/utils/decodeIEEE754SinglePrecisionFloat.mjs +3 -0
- package/dist/utils/decodeSignedBigEndianInteger.mjs +13 -0
- package/dist/utils/decodeUnsignedBigEndianInteger.mjs +13 -0
- package/dist/utils/decodeX690RealNumber.mjs +108 -0
- package/dist/utils/dissectFloat.mjs +13 -0
- package/dist/utils/encodeIEEE754DoublePrecisionFloat.mjs +3 -0
- package/dist/utils/encodeIEEE754SinglePrecisionFloat.mjs +3 -0
- package/dist/utils/encodeSignedBigEndianInteger.mjs +36 -0
- package/dist/utils/encodeUnsignedBigEndianInteger.mjs +23 -0
- package/dist/utils/encodeX690Base10RealNumber.mjs +21 -0
- package/dist/utils/encodeX690BinaryRealNumber.mjs +43 -0
- package/dist/utils/getBitFromBase128.mjs +4 -0
- package/dist/utils/getBitFromBase256.mjs +3 -0
- package/dist/{node/utils/index.d.ts → utils/index.d.mts} +22 -22
- package/dist/utils/index.mjs +22 -0
- package/dist/{node/utils/isInCanonicalOrder.d.ts → utils/isInCanonicalOrder.d.mts} +1 -1
- package/dist/{node/utils/isInCanonicalOrder.js → utils/isInCanonicalOrder.mjs} +4 -7
- package/dist/{node/utils/isUniquelyTagged.d.ts → utils/isUniquelyTagged.d.mts} +1 -1
- package/dist/{node/utils/isUniquelyTagged.js → utils/isUniquelyTagged.mjs} +1 -4
- package/dist/{node/utils/packBits.d.ts → utils/packBits.d.mts} +1 -1
- package/dist/{node/utils/packBits.js → utils/packBits.mjs} +3 -6
- package/dist/{node/utils/setBitInBase128.js → utils/setBitInBase128.mjs} +1 -4
- package/dist/{node/utils/setBitInBase256.js → utils/setBitInBase256.mjs} +1 -4
- package/dist/{node/utils/sortCanonically.d.ts → utils/sortCanonically.d.mts} +1 -1
- package/dist/utils/sortCanonically.mjs +11 -0
- package/dist/utils/splitOctetsCanonically.mjs +5 -0
- package/dist/{node/utils/trimLeadingPaddingBytes.js → utils/trimLeadingPaddingBytes.mjs} +1 -4
- package/dist/{node/utils/unpackBits.d.ts → utils/unpackBits.d.mts} +1 -1
- package/dist/{node/utils/unpackBits.js → utils/unpackBits.mjs} +3 -6
- package/dist/{node/validators/datetimeComponentValidator.d.ts → validators/datetimeComponentValidator.d.mts} +1 -1
- package/dist/validators/datetimeComponentValidator.mjs +14 -0
- package/dist/{node/validators/index.d.ts → validators/index.d.mts} +6 -6
- package/dist/validators/index.mjs +6 -0
- package/dist/validators/isGeneralCharacter.mjs +3 -0
- package/dist/validators/isGraphicCharacter.mjs +3 -0
- package/dist/validators/isNumericCharacter.mjs +3 -0
- package/dist/validators/isObjectDescriptorCharacter.mjs +4 -0
- package/dist/{node/validators/isPrintableCharacter.js → validators/isPrintableCharacter.mjs} +1 -4
- package/dist/validators/isVisibleCharacter.mjs +4 -0
- package/dist/{node/validators/validateConstruction.d.ts → validators/validateConstruction.d.mts} +2 -2
- package/dist/validators/validateConstruction.mjs +37 -0
- package/dist/validators/validateDate.mjs +49 -0
- package/dist/validators/validateDateTime.mjs +6 -0
- package/dist/validators/validateTime.mjs +21 -0
- package/dist/{node/values.js → values.mjs} +36 -39
- package/dist/{node/x690.d.ts → x690.d.mts} +2 -2
- package/dist/x690.mjs +95 -0
- package/package.json +8 -7
- package/dist/node/ConstructedElementSpecification.js +0 -2
- package/dist/node/classes/ABSTRACT-SYNTAX.js +0 -2
- package/dist/node/classes/TYPE-IDENTIFIER.js +0 -2
- package/dist/node/classes/index.d.ts +0 -2
- package/dist/node/classes/index.js +0 -2
- package/dist/node/codecs/ber/decoders/decodeBitString.js +0 -55
- package/dist/node/codecs/ber/decoders/decodeBoolean.js +0 -43
- package/dist/node/codecs/ber/decoders/decodeReal.js +0 -147
- package/dist/node/codecs/ber/decoders/decodeSequence.d.ts +0 -3
- package/dist/node/codecs/ber/decoders/decodeSequence.js +0 -17
- package/dist/node/codecs/ber/decoders/decodeUTCTime.js +0 -84
- package/dist/node/codecs/ber/encoders/encodeGeneralString.js +0 -19
- package/dist/node/codecs/ber/encoders/encodeGraphicString.js +0 -19
- package/dist/node/codecs/ber/encoders/encodeNumericString.js +0 -19
- package/dist/node/codecs/ber/encoders/encodeObjectDescriptor.js +0 -19
- package/dist/node/codecs/ber/encoders/encodePrintableString.js +0 -20
- package/dist/node/codecs/ber/encoders/encodeVisibleString.js +0 -19
- package/dist/node/codecs/cer/decoders/decodeSequence.d.ts +0 -3
- package/dist/node/codecs/cer/decoders/decodeSequence.js +0 -20
- package/dist/node/codecs/coer/decoders/decodeBoolean.js +0 -46
- package/dist/node/codecs/der/decoders/decodeBitString.js +0 -59
- package/dist/node/codecs/der/decoders/decodeBoolean.js +0 -46
- package/dist/node/codecs/der/decoders/decodeGeneralizedTime.js +0 -81
- package/dist/node/codecs/der/decoders/decodeReal.js +0 -134
- package/dist/node/codecs/der/decoders/decodeSequence.d.ts +0 -3
- package/dist/node/codecs/der/decoders/decodeSequence.js +0 -20
- package/dist/node/codecs/der/decoders/decodeUTCTime.js +0 -63
- package/dist/node/codecs/oer/decoders/decodeBoolean.d.ts +0 -2
- package/dist/node/codecs/oer/decoders/decodeBoolean.js +0 -43
- package/dist/node/codecs/x690/decoders/decodeCharacterString.js +0 -18
- package/dist/node/codecs/x690/decoders/decodeDate.js +0 -16
- package/dist/node/codecs/x690/decoders/decodeDateTime.js +0 -19
- package/dist/node/codecs/x690/decoders/decodeEmbeddedPDV.js +0 -14
- package/dist/node/codecs/x690/decoders/decodeExternal.js +0 -78
- package/dist/node/codecs/x690/decoders/decodeGeneralString.js +0 -18
- package/dist/node/codecs/x690/decoders/decodeGraphicString.js +0 -18
- package/dist/node/codecs/x690/decoders/decodeInteger.js +0 -52
- package/dist/node/codecs/x690/decoders/decodeNumericString.js +0 -18
- package/dist/node/codecs/x690/decoders/decodeOIDIRI.js +0 -10
- package/dist/node/codecs/x690/decoders/decodeObjectDescriptor.js +0 -18
- package/dist/node/codecs/x690/decoders/decodeObjectIdentifier.js +0 -85
- package/dist/node/codecs/x690/decoders/decodePrintableString.js +0 -19
- package/dist/node/codecs/x690/decoders/decodeRelativeOIDIRI.js +0 -10
- package/dist/node/codecs/x690/decoders/decodeRelativeObjectIdentifier.js +0 -60
- package/dist/node/codecs/x690/decoders/decodeTime.js +0 -10
- package/dist/node/codecs/x690/decoders/decodeTimeOfDay.js +0 -20
- package/dist/node/codecs/x690/decoders/decodeVisibleString.js +0 -18
- package/dist/node/codecs/x690/encoders/encodeBitString.js +0 -19
- package/dist/node/codecs/x690/encoders/encodeBoolean.js +0 -6
- package/dist/node/codecs/x690/encoders/encodeCharacterString.js +0 -15
- package/dist/node/codecs/x690/encoders/encodeDate.js +0 -50
- package/dist/node/codecs/x690/encoders/encodeDateTime.js +0 -53
- package/dist/node/codecs/x690/encoders/encodeEmbeddedPDV.js +0 -15
- package/dist/node/codecs/x690/encoders/encodeExternal.js +0 -42
- package/dist/node/codecs/x690/encoders/encodeInteger.js +0 -7
- package/dist/node/codecs/x690/encoders/encodeOIDIRI.js +0 -10
- package/dist/node/codecs/x690/encoders/encodeReal.js +0 -10
- package/dist/node/codecs/x690/encoders/encodeRelativeOIDIRI.js +0 -10
- package/dist/node/codecs/x690/encoders/encodeSequence.d.ts +0 -3
- package/dist/node/codecs/x690/encoders/encodeSequence.js +0 -7
- package/dist/node/codecs/x690/encoders/encodeTime.js +0 -10
- package/dist/node/codecs/x690/encoders/encodeTimeOfDay.js +0 -10
- package/dist/node/codecs/x696/encoders/encodeBoolean.d.ts +0 -2
- package/dist/node/codecs/x696/encoders/encodeBoolean.js +0 -6
- package/dist/node/functional.js +0 -880
- package/dist/node/index.d.ts +0 -16
- package/dist/node/index.js +0 -42
- package/dist/node/interfaces/Byteable.d.ts +0 -4
- package/dist/node/interfaces/Byteable.js +0 -2
- package/dist/node/interfaces/CharacterValidationFunction.js +0 -2
- package/dist/node/interfaces/Debyteable.js +0 -2
- package/dist/node/interfaces/Deelementable.js +0 -2
- package/dist/node/interfaces/Destringable.js +0 -2
- package/dist/node/interfaces/Elementable.d.ts +0 -4
- package/dist/node/interfaces/Elementable.js +0 -2
- package/dist/node/interfaces/Enbyteable.js +0 -2
- package/dist/node/interfaces/Enelementable.js +0 -2
- package/dist/node/interfaces/Enstringable.js +0 -2
- package/dist/node/interfaces/Identified.js +0 -2
- package/dist/node/interfaces/Long.js +0 -2
- package/dist/node/interfaces/Named.js +0 -2
- package/dist/node/interfaces/Stringable.d.ts +0 -4
- package/dist/node/interfaces/Stringable.js +0 -2
- package/dist/node/interfaces/index.d.ts +0 -12
- package/dist/node/interfaces/index.js +0 -2
- package/dist/node/macros.js +0 -21
- package/dist/node/types/TypeIdentifier.js +0 -9
- package/dist/node/types/index.d.ts +0 -18
- package/dist/node/types/index.js +0 -42
- package/dist/node/types/time/DATE-ENCODING.js +0 -16
- package/dist/node/types/time/DURATION-EQUIVALENT.js +0 -124
- package/dist/node/types/time/DURATION-INTERVAL-ENCODING.js +0 -81
- package/dist/node/types/time/HOURS-DIFF-ENCODING.js +0 -15
- package/dist/node/types/time/HOURS-ENCODING.js +0 -13
- package/dist/node/types/time/HOURS-MINUTES-DIFF-ENCODING.js +0 -17
- package/dist/node/types/time/HOURS-MINUTES-ENCODING.js +0 -15
- package/dist/node/types/time/TIME-OF-DAY-DIFF-ENCODING.js +0 -19
- package/dist/node/types/time/TIME-OF-DAY-ENCODING.js +0 -17
- package/dist/node/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.js +0 -21
- package/dist/node/types/time/TIME-OF-DAY-FRACTION-ENCODING.js +0 -19
- package/dist/node/types/time/YEAR-ENCODING.js +0 -8
- package/dist/node/types/time/YEAR-MONTH-ENCODING.js +0 -14
- package/dist/node/utils/base128Length.js +0 -6
- package/dist/node/utils/convertBytesToText.js +0 -17
- package/dist/node/utils/convertTextToBytes.js +0 -14
- package/dist/node/utils/decodeIEEE754DoublePrecisionFloat.js +0 -6
- package/dist/node/utils/decodeIEEE754SinglePrecisionFloat.js +0 -6
- package/dist/node/utils/decodeSignedBigEndianInteger.js +0 -49
- package/dist/node/utils/decodeUnsignedBigEndianInteger.js +0 -49
- package/dist/node/utils/decodeX690RealNumber.js +0 -147
- package/dist/node/utils/dissectFloat.js +0 -16
- package/dist/node/utils/encodeIEEE754DoublePrecisionFloat.js +0 -6
- package/dist/node/utils/encodeIEEE754SinglePrecisionFloat.js +0 -6
- package/dist/node/utils/encodeSignedBigEndianInteger.js +0 -72
- package/dist/node/utils/encodeUnsignedBigEndianInteger.js +0 -59
- package/dist/node/utils/encodeX690Base10RealNumber.js +0 -27
- package/dist/node/utils/encodeX690BinaryRealNumber.js +0 -82
- package/dist/node/utils/getBitFromBase128.js +0 -7
- package/dist/node/utils/getBitFromBase256.js +0 -6
- package/dist/node/utils/index.js +0 -50
- package/dist/node/utils/sortCanonically.js +0 -14
- package/dist/node/utils/splitOctetsCanonically.js +0 -8
- package/dist/node/validators/datetimeComponentValidator.js +0 -50
- package/dist/node/validators/index.js +0 -18
- package/dist/node/validators/isGeneralCharacter.js +0 -6
- package/dist/node/validators/isGraphicCharacter.js +0 -6
- package/dist/node/validators/isNumericCharacter.js +0 -6
- package/dist/node/validators/isObjectDescriptorCharacter.js +0 -10
- package/dist/node/validators/isVisibleCharacter.js +0 -10
- package/dist/node/validators/validateConstruction.js +0 -73
- package/dist/node/validators/validateDate.js +0 -85
- package/dist/node/validators/validateDateTime.js +0 -12
- package/dist/node/validators/validateTime.js +0 -57
- package/dist/node/x690.js +0 -134
- /package/dist/{node/interfaces/CharacterValidationFunction.d.ts → interfaces/CharacterValidationFunction.d.mts} +0 -0
- /package/dist/{node/interfaces/Debyteable.d.ts → interfaces/Debyteable.d.mts} +0 -0
- /package/dist/{node/interfaces/Destringable.d.ts → interfaces/Destringable.d.mts} +0 -0
- /package/dist/{node/interfaces/Enbyteable.d.ts → interfaces/Enbyteable.d.mts} +0 -0
- /package/dist/{node/interfaces/Enstringable.d.ts → interfaces/Enstringable.d.mts} +0 -0
- /package/dist/{node/interfaces/Long.d.ts → interfaces/Long.d.mts} +0 -0
- /package/dist/{node/interfaces/Named.d.ts → interfaces/Named.d.mts} +0 -0
- /package/dist/{node/types/ObjectIdentifier.d.ts → types/ObjectIdentifier.d.mts} +0 -0
- /package/dist/{node/utils/base128Length.d.ts → utils/base128Length.d.mts} +0 -0
- /package/dist/{node/utils/convertBytesToText.d.ts → utils/convertBytesToText.d.mts} +0 -0
- /package/dist/{node/utils/convertTextToBytes.d.ts → utils/convertTextToBytes.d.mts} +0 -0
- /package/dist/{node/utils/decodeIEEE754DoublePrecisionFloat.d.ts → utils/decodeIEEE754DoublePrecisionFloat.d.mts} +0 -0
- /package/dist/{node/utils/decodeIEEE754SinglePrecisionFloat.d.ts → utils/decodeIEEE754SinglePrecisionFloat.d.mts} +0 -0
- /package/dist/{node/utils/decodeSignedBigEndianInteger.d.ts → utils/decodeSignedBigEndianInteger.d.mts} +0 -0
- /package/dist/{node/utils/decodeUnsignedBigEndianInteger.d.ts → utils/decodeUnsignedBigEndianInteger.d.mts} +0 -0
- /package/dist/{node/utils/decodeX690RealNumber.d.ts → utils/decodeX690RealNumber.d.mts} +0 -0
- /package/dist/{node/utils/dissectFloat.d.ts → utils/dissectFloat.d.mts} +0 -0
- /package/dist/{node/utils/encodeIEEE754DoublePrecisionFloat.d.ts → utils/encodeIEEE754DoublePrecisionFloat.d.mts} +0 -0
- /package/dist/{node/utils/encodeIEEE754SinglePrecisionFloat.d.ts → utils/encodeIEEE754SinglePrecisionFloat.d.mts} +0 -0
- /package/dist/{node/utils/encodeSignedBigEndianInteger.d.ts → utils/encodeSignedBigEndianInteger.d.mts} +0 -0
- /package/dist/{node/utils/encodeUnsignedBigEndianInteger.d.ts → utils/encodeUnsignedBigEndianInteger.d.mts} +0 -0
- /package/dist/{node/utils/encodeX690Base10RealNumber.d.ts → utils/encodeX690Base10RealNumber.d.mts} +0 -0
- /package/dist/{node/utils/encodeX690BinaryRealNumber.d.ts → utils/encodeX690BinaryRealNumber.d.mts} +0 -0
- /package/dist/{node/utils/getBitFromBase128.d.ts → utils/getBitFromBase128.d.mts} +0 -0
- /package/dist/{node/utils/getBitFromBase256.d.ts → utils/getBitFromBase256.d.mts} +0 -0
- /package/dist/{node/utils/setBitInBase128.d.ts → utils/setBitInBase128.d.mts} +0 -0
- /package/dist/{node/utils/setBitInBase256.d.ts → utils/setBitInBase256.d.mts} +0 -0
- /package/dist/{node/utils/splitOctetsCanonically.d.ts → utils/splitOctetsCanonically.d.mts} +0 -0
- /package/dist/{node/utils/trimLeadingPaddingBytes.d.ts → utils/trimLeadingPaddingBytes.d.mts} +0 -0
- /package/dist/{node/validators/isGeneralCharacter.d.ts → validators/isGeneralCharacter.d.mts} +0 -0
- /package/dist/{node/validators/isGraphicCharacter.d.ts → validators/isGraphicCharacter.d.mts} +0 -0
- /package/dist/{node/validators/isNumericCharacter.d.ts → validators/isNumericCharacter.d.mts} +0 -0
- /package/dist/{node/validators/isObjectDescriptorCharacter.d.ts → validators/isObjectDescriptorCharacter.d.mts} +0 -0
- /package/dist/{node/validators/isPrintableCharacter.d.ts → validators/isPrintableCharacter.d.mts} +0 -0
- /package/dist/{node/validators/isVisibleCharacter.d.ts → validators/isVisibleCharacter.d.mts} +0 -0
- /package/dist/{node/validators/validateDate.d.ts → validators/validateDate.d.mts} +0 -0
- /package/dist/{node/validators/validateDateTime.d.ts → validators/validateDateTime.d.mts} +0 -0
- /package/dist/{node/validators/validateTime.d.ts → validators/validateTime.d.mts} +0 -0
- /package/dist/{node/values.d.ts → values.d.mts} +0 -0
|
@@ -1,91 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const decodeBoolean_1 = __importDefault(require("./der/decoders/decodeBoolean"));
|
|
49
|
-
const encodeBitString_1 = __importDefault(require("./x690/encoders/encodeBitString"));
|
|
50
|
-
const decodeBitString_1 = __importDefault(require("./der/decoders/decodeBitString"));
|
|
51
|
-
const encodeReal_1 = __importDefault(require("./x690/encoders/encodeReal"));
|
|
52
|
-
const decodeReal_1 = __importDefault(require("./der/decoders/decodeReal"));
|
|
53
|
-
const encodeSequence_1 = __importDefault(require("./x690/encoders/encodeSequence"));
|
|
54
|
-
const decodeSequence_1 = __importDefault(require("./cer/decoders/decodeSequence"));
|
|
55
|
-
const encodeUTCTime_1 = __importDefault(require("./x690/encoders/encodeUTCTime"));
|
|
56
|
-
const decodeUTCTime_1 = __importDefault(require("./der/decoders/decodeUTCTime"));
|
|
57
|
-
const encodeGeneralizedTime_1 = __importDefault(require("./x690/encoders/encodeGeneralizedTime"));
|
|
58
|
-
const decodeGeneralizedTime_1 = __importDefault(require("./der/decoders/decodeGeneralizedTime"));
|
|
59
|
-
const encodeExternal_1 = __importDefault(require("../codecs/x690/encoders/encodeExternal"));
|
|
60
|
-
const encodeEmbeddedPDV_1 = __importDefault(require("../codecs/x690/encoders/encodeEmbeddedPDV"));
|
|
61
|
-
const encodeCharacterString_1 = __importDefault(require("../codecs/x690/encoders/encodeCharacterString"));
|
|
62
|
-
const decodeExternal_1 = __importDefault(require("../codecs/x690/decoders/decodeExternal"));
|
|
63
|
-
const decodeEmbeddedPDV_1 = __importDefault(require("../codecs/x690/decoders/decodeEmbeddedPDV"));
|
|
64
|
-
const decodeCharacterString_1 = __importDefault(require("../codecs/x690/decoders/decodeCharacterString"));
|
|
65
|
-
const splitOctetsCanonically_1 = __importDefault(require("../utils/splitOctetsCanonically"));
|
|
66
|
-
const encodeGraphicString_1 = __importDefault(require("../codecs/ber/encoders/encodeGraphicString"));
|
|
67
|
-
const encodeNumericString_1 = __importDefault(require("../codecs/ber/encoders/encodeNumericString"));
|
|
68
|
-
const encodeObjectDescriptor_1 = __importDefault(require("../codecs/ber/encoders/encodeObjectDescriptor"));
|
|
69
|
-
const encodePrintableString_1 = __importDefault(require("../codecs/ber/encoders/encodePrintableString"));
|
|
70
|
-
const encodeVisibleString_1 = __importDefault(require("../codecs/ber/encoders/encodeVisibleString"));
|
|
71
|
-
const encodeGeneralString_1 = __importDefault(require("../codecs/ber/encoders/encodeGeneralString"));
|
|
72
|
-
const decodeGraphicString_1 = __importDefault(require("../codecs/x690/decoders/decodeGraphicString"));
|
|
73
|
-
const decodeNumericString_1 = __importDefault(require("../codecs/x690/decoders/decodeNumericString"));
|
|
74
|
-
const decodeObjectDescriptor_1 = __importDefault(require("../codecs/x690/decoders/decodeObjectDescriptor"));
|
|
75
|
-
const decodePrintableString_1 = __importDefault(require("../codecs/x690/decoders/decodePrintableString"));
|
|
76
|
-
const decodeVisibleString_1 = __importDefault(require("../codecs/x690/decoders/decodeVisibleString"));
|
|
77
|
-
const decodeGeneralString_1 = __importDefault(require("../codecs/x690/decoders/decodeGeneralString"));
|
|
78
|
-
const encodeDuration_1 = __importDefault(require("../codecs/x690/encoders/encodeDuration"));
|
|
79
|
-
const decodeDuration_1 = __importDefault(require("../codecs/der/decoders/decodeDuration"));
|
|
80
|
-
const macros_1 = require("../macros");
|
|
81
|
-
const utils_1 = require("../utils");
|
|
82
|
-
const node_buffer_1 = require("node:buffer");
|
|
83
|
-
class CERElement extends x690_1.default {
|
|
1
|
+
import ASN1Element from "../asn1.mjs";
|
|
2
|
+
import * as errors from "../errors.mjs";
|
|
3
|
+
import { ASN1Construction, ASN1TagClass, ASN1UniversalType, } from "../values.mjs";
|
|
4
|
+
import X690Element from "../x690.mjs";
|
|
5
|
+
import convertBytesToText from "../utils/convertBytesToText.mjs";
|
|
6
|
+
import convertTextToBytes from "../utils/convertTextToBytes.mjs";
|
|
7
|
+
import sortCanonically from "../utils/sortCanonically.mjs";
|
|
8
|
+
import ObjectIdentifier from "../types/ObjectIdentifier.mjs";
|
|
9
|
+
import encodeBoolean from "./x690/encoders/encodeBoolean.mjs";
|
|
10
|
+
import decodeBoolean from "./der/decoders/decodeBoolean.mjs";
|
|
11
|
+
import encodeBitString from "./x690/encoders/encodeBitString.mjs";
|
|
12
|
+
import decodeBitString from "./der/decoders/decodeBitString.mjs";
|
|
13
|
+
import encodeReal from "./x690/encoders/encodeReal.mjs";
|
|
14
|
+
import decodeReal from "./der/decoders/decodeReal.mjs";
|
|
15
|
+
import encodeSequence from "./x690/encoders/encodeSequence.mjs";
|
|
16
|
+
import decodeSequence from "./cer/decoders/decodeSequence.mjs";
|
|
17
|
+
import encodeUTCTime from "./x690/encoders/encodeUTCTime.mjs";
|
|
18
|
+
import decodeUTCTime from "./der/decoders/decodeUTCTime.mjs";
|
|
19
|
+
import encodeGeneralizedTime from "./x690/encoders/encodeGeneralizedTime.mjs";
|
|
20
|
+
import decodeGeneralizedTime from "./der/decoders/decodeGeneralizedTime.mjs";
|
|
21
|
+
import encodeExternal from "../codecs/x690/encoders/encodeExternal.mjs";
|
|
22
|
+
import encodeEmbeddedPDV from "../codecs/x690/encoders/encodeEmbeddedPDV.mjs";
|
|
23
|
+
import encodeCharacterString from "../codecs/x690/encoders/encodeCharacterString.mjs";
|
|
24
|
+
import decodeExternal from "../codecs/x690/decoders/decodeExternal.mjs";
|
|
25
|
+
import decodeEmbeddedPDV from "../codecs/x690/decoders/decodeEmbeddedPDV.mjs";
|
|
26
|
+
import decodeCharacterString from "../codecs/x690/decoders/decodeCharacterString.mjs";
|
|
27
|
+
import splitOctetsCanonically from "../utils/splitOctetsCanonically.mjs";
|
|
28
|
+
import encodeGraphicString from "../codecs/ber/encoders/encodeGraphicString.mjs";
|
|
29
|
+
import encodeNumericString from "../codecs/ber/encoders/encodeNumericString.mjs";
|
|
30
|
+
import encodeObjectDescriptor from "../codecs/ber/encoders/encodeObjectDescriptor.mjs";
|
|
31
|
+
import encodePrintableString from "../codecs/ber/encoders/encodePrintableString.mjs";
|
|
32
|
+
import encodeVisibleString from "../codecs/ber/encoders/encodeVisibleString.mjs";
|
|
33
|
+
import encodeGeneralString from "../codecs/ber/encoders/encodeGeneralString.mjs";
|
|
34
|
+
import decodeGraphicString from "../codecs/x690/decoders/decodeGraphicString.mjs";
|
|
35
|
+
import decodeNumericString from "../codecs/x690/decoders/decodeNumericString.mjs";
|
|
36
|
+
import decodeObjectDescriptor from "../codecs/x690/decoders/decodeObjectDescriptor.mjs";
|
|
37
|
+
import decodePrintableString from "../codecs/x690/decoders/decodePrintableString.mjs";
|
|
38
|
+
import decodeVisibleString from "../codecs/x690/decoders/decodeVisibleString.mjs";
|
|
39
|
+
import decodeGeneralString from "../codecs/x690/decoders/decodeGeneralString.mjs";
|
|
40
|
+
import encodeDuration from "../codecs/x690/encoders/encodeDuration.mjs";
|
|
41
|
+
import decodeDuration from "../codecs/der/decoders/decodeDuration.mjs";
|
|
42
|
+
import { FALSE_BIT, } from "../macros.mjs";
|
|
43
|
+
import { isUniquelyTagged } from "../utils/index.mjs";
|
|
44
|
+
import { Buffer } from "node:buffer";
|
|
45
|
+
export default class CERElement extends X690Element {
|
|
46
|
+
_value = new Uint8Array(0);
|
|
47
|
+
_currentValueLength;
|
|
84
48
|
get value() {
|
|
85
49
|
if (this._value instanceof Uint8Array) {
|
|
86
50
|
return this._value;
|
|
87
51
|
}
|
|
88
|
-
const bytes = (
|
|
52
|
+
const bytes = encodeSequence(this._value);
|
|
89
53
|
this._value = bytes;
|
|
90
54
|
return bytes;
|
|
91
55
|
}
|
|
@@ -102,31 +66,31 @@ class CERElement extends x690_1.default {
|
|
|
102
66
|
}
|
|
103
67
|
set unfragmentedValue(value) {
|
|
104
68
|
if (value.length <= 1000) {
|
|
105
|
-
this.construction =
|
|
69
|
+
this.construction = ASN1Construction.primitive;
|
|
106
70
|
this.value = value;
|
|
107
71
|
}
|
|
108
72
|
else {
|
|
109
|
-
this.construction =
|
|
110
|
-
this.value = (
|
|
111
|
-
.from((
|
|
112
|
-
.map((fragment) => new CERElement(
|
|
73
|
+
this.construction = ASN1Construction.constructed;
|
|
74
|
+
this.value = encodeSequence(Array
|
|
75
|
+
.from(splitOctetsCanonically(value))
|
|
76
|
+
.map((fragment) => new CERElement(ASN1TagClass.universal, ASN1Construction.primitive, ASN1UniversalType.octetString, new Uint8Array(fragment))));
|
|
113
77
|
}
|
|
114
78
|
}
|
|
115
79
|
set boolean(value) {
|
|
116
|
-
this.value = (
|
|
80
|
+
this.value = encodeBoolean(value);
|
|
117
81
|
}
|
|
118
82
|
get boolean() {
|
|
119
|
-
if (this.construction !==
|
|
83
|
+
if (this.construction !== ASN1Construction.primitive) {
|
|
120
84
|
throw new errors.ASN1ConstructionError("BOOLEAN cannot be constructed.", this);
|
|
121
85
|
}
|
|
122
|
-
return (
|
|
86
|
+
return decodeBoolean(this.value);
|
|
123
87
|
}
|
|
124
88
|
set bitString(value) {
|
|
125
|
-
this.unfragmentedValue = (
|
|
89
|
+
this.unfragmentedValue = encodeBitString(value);
|
|
126
90
|
}
|
|
127
91
|
get bitString() {
|
|
128
|
-
if (this.construction ===
|
|
129
|
-
return (
|
|
92
|
+
if (this.construction === ASN1Construction.primitive) {
|
|
93
|
+
return decodeBitString(this.value);
|
|
130
94
|
}
|
|
131
95
|
if ((this.recursionCount + 1) > CERElement.nestingRecursionLimit) {
|
|
132
96
|
throw new errors.ASN1RecursionError();
|
|
@@ -134,7 +98,7 @@ class CERElement extends x690_1.default {
|
|
|
134
98
|
const appendy = [];
|
|
135
99
|
const substrings = this.sequence;
|
|
136
100
|
for (const substring of substrings.slice(0, (substrings.length - 1))) {
|
|
137
|
-
if (substring.construction ===
|
|
101
|
+
if (substring.construction === ASN1Construction.primitive
|
|
138
102
|
&& substring.value.length > 0
|
|
139
103
|
&& substring.value[0] !== 0x00) {
|
|
140
104
|
throw new errors.ASN1Error("Only the last subelement of a constructed BIT STRING may have a non-zero first value byte.", this);
|
|
@@ -148,7 +112,7 @@ class CERElement extends x690_1.default {
|
|
|
148
112
|
throw new errors.ASN1ConstructionError("Invalid tag class in recursively-encoded BIT STRING.", this);
|
|
149
113
|
}
|
|
150
114
|
substring.recursionCount = (this.recursionCount + 1);
|
|
151
|
-
appendy.push(...Array.from(substring.bitString).map((b) => b !==
|
|
115
|
+
appendy.push(...Array.from(substring.bitString).map((b) => b !== FALSE_BIT));
|
|
152
116
|
}
|
|
153
117
|
return new Uint8ClampedArray(appendy.map((b) => (b ? 1 : 0)));
|
|
154
118
|
}
|
|
@@ -159,76 +123,76 @@ class CERElement extends x690_1.default {
|
|
|
159
123
|
return this.deconstruct("OCTET STRING");
|
|
160
124
|
}
|
|
161
125
|
set objectDescriptor(value) {
|
|
162
|
-
this.unfragmentedValue = (
|
|
126
|
+
this.unfragmentedValue = encodeObjectDescriptor(value);
|
|
163
127
|
}
|
|
164
128
|
get objectDescriptor() {
|
|
165
|
-
return (
|
|
129
|
+
return decodeObjectDescriptor(this.deconstruct("ObjectDescriptor"));
|
|
166
130
|
}
|
|
167
131
|
set external(value) {
|
|
168
|
-
this.value = (
|
|
169
|
-
this.construction =
|
|
132
|
+
this.value = encodeExternal(value);
|
|
133
|
+
this.construction = ASN1Construction.constructed;
|
|
170
134
|
}
|
|
171
135
|
get external() {
|
|
172
|
-
return (
|
|
136
|
+
return decodeExternal(this.value);
|
|
173
137
|
}
|
|
174
138
|
set real(value) {
|
|
175
|
-
this.value = (
|
|
139
|
+
this.value = encodeReal(value);
|
|
176
140
|
}
|
|
177
141
|
get real() {
|
|
178
|
-
if (this.construction !==
|
|
142
|
+
if (this.construction !== ASN1Construction.primitive) {
|
|
179
143
|
throw new errors.ASN1ConstructionError("REAL cannot be constructed.");
|
|
180
144
|
}
|
|
181
|
-
return (
|
|
145
|
+
return decodeReal(this.value);
|
|
182
146
|
}
|
|
183
147
|
set embeddedPDV(value) {
|
|
184
|
-
this.value = (
|
|
185
|
-
this.construction =
|
|
148
|
+
this.value = encodeEmbeddedPDV(value);
|
|
149
|
+
this.construction = ASN1Construction.constructed;
|
|
186
150
|
}
|
|
187
151
|
get embeddedPDV() {
|
|
188
|
-
return (
|
|
152
|
+
return decodeEmbeddedPDV(this.value);
|
|
189
153
|
}
|
|
190
154
|
set utf8String(value) {
|
|
191
|
-
this.unfragmentedValue = (
|
|
155
|
+
this.unfragmentedValue = convertTextToBytes(value);
|
|
192
156
|
}
|
|
193
157
|
get utf8String() {
|
|
194
|
-
return (
|
|
158
|
+
return convertBytesToText(this.deconstruct("UTF8String"));
|
|
195
159
|
}
|
|
196
160
|
set sequence(value) {
|
|
197
161
|
this.construct(value);
|
|
198
|
-
this.construction =
|
|
162
|
+
this.construction = ASN1Construction.constructed;
|
|
199
163
|
}
|
|
200
164
|
get sequence() {
|
|
201
|
-
if (this.construction !==
|
|
165
|
+
if (this.construction !== ASN1Construction.constructed) {
|
|
202
166
|
throw new errors.ASN1ConstructionError("SET or SEQUENCE cannot be primitively constructed.", this);
|
|
203
167
|
}
|
|
204
168
|
if (Array.isArray(this._value)) {
|
|
205
169
|
return this._value;
|
|
206
170
|
}
|
|
207
|
-
return (
|
|
171
|
+
return decodeSequence(this.value);
|
|
208
172
|
}
|
|
209
173
|
set set(value) {
|
|
210
|
-
(
|
|
174
|
+
sortCanonically(value);
|
|
211
175
|
this.sequence = value;
|
|
212
176
|
}
|
|
213
177
|
get set() {
|
|
214
178
|
const ret = this.sequence;
|
|
215
|
-
if (!
|
|
179
|
+
if (!isUniquelyTagged(ret)) {
|
|
216
180
|
throw new errors.ASN1ConstructionError("Duplicate tag in SET.", this);
|
|
217
181
|
}
|
|
218
182
|
return ret;
|
|
219
183
|
}
|
|
220
184
|
set sequenceOf(value) {
|
|
221
185
|
this.construct(value);
|
|
222
|
-
this.construction =
|
|
186
|
+
this.construction = ASN1Construction.constructed;
|
|
223
187
|
}
|
|
224
188
|
get sequenceOf() {
|
|
225
|
-
if (this.construction !==
|
|
189
|
+
if (this.construction !== ASN1Construction.constructed) {
|
|
226
190
|
throw new errors.ASN1ConstructionError("SET or SEQUENCE cannot be primitively constructed.", this);
|
|
227
191
|
}
|
|
228
192
|
if (Array.isArray(this._value)) {
|
|
229
193
|
return this._value;
|
|
230
194
|
}
|
|
231
|
-
return (
|
|
195
|
+
return decodeSequence(this.value);
|
|
232
196
|
}
|
|
233
197
|
set setOf(value) {
|
|
234
198
|
this.sequence = value;
|
|
@@ -237,16 +201,16 @@ class CERElement extends x690_1.default {
|
|
|
237
201
|
return this.sequence;
|
|
238
202
|
}
|
|
239
203
|
set numericString(value) {
|
|
240
|
-
this.unfragmentedValue = (
|
|
204
|
+
this.unfragmentedValue = encodeNumericString(value);
|
|
241
205
|
}
|
|
242
206
|
get numericString() {
|
|
243
|
-
return (
|
|
207
|
+
return decodeNumericString(this.deconstruct("NumericString"));
|
|
244
208
|
}
|
|
245
209
|
set printableString(value) {
|
|
246
|
-
this.unfragmentedValue = (
|
|
210
|
+
this.unfragmentedValue = encodePrintableString(value);
|
|
247
211
|
}
|
|
248
212
|
get printableString() {
|
|
249
|
-
return (
|
|
213
|
+
return decodePrintableString(this.deconstruct("PrintableString"));
|
|
250
214
|
}
|
|
251
215
|
set teletexString(value) {
|
|
252
216
|
this.unfragmentedValue = new Uint8Array(value);
|
|
@@ -261,47 +225,47 @@ class CERElement extends x690_1.default {
|
|
|
261
225
|
return this.deconstruct("VideotexString");
|
|
262
226
|
}
|
|
263
227
|
set ia5String(value) {
|
|
264
|
-
this.unfragmentedValue = (
|
|
228
|
+
this.unfragmentedValue = convertTextToBytes(value);
|
|
265
229
|
}
|
|
266
230
|
get ia5String() {
|
|
267
|
-
return (
|
|
231
|
+
return convertBytesToText(this.deconstruct("IA5String"));
|
|
268
232
|
}
|
|
269
233
|
set utcTime(value) {
|
|
270
|
-
this.value = (
|
|
234
|
+
this.value = encodeUTCTime(value);
|
|
271
235
|
}
|
|
272
236
|
get utcTime() {
|
|
273
|
-
return (
|
|
237
|
+
return decodeUTCTime(this.value);
|
|
274
238
|
}
|
|
275
239
|
set generalizedTime(value) {
|
|
276
|
-
this.value = (
|
|
240
|
+
this.value = encodeGeneralizedTime(value);
|
|
277
241
|
}
|
|
278
242
|
get generalizedTime() {
|
|
279
|
-
return (
|
|
243
|
+
return decodeGeneralizedTime(this.value);
|
|
280
244
|
}
|
|
281
245
|
set graphicString(value) {
|
|
282
|
-
this.unfragmentedValue = (
|
|
246
|
+
this.unfragmentedValue = encodeGraphicString(value);
|
|
283
247
|
}
|
|
284
248
|
get graphicString() {
|
|
285
|
-
return (
|
|
249
|
+
return decodeGraphicString(this.deconstruct("GraphicString"));
|
|
286
250
|
}
|
|
287
251
|
set visibleString(value) {
|
|
288
|
-
this.unfragmentedValue = (
|
|
252
|
+
this.unfragmentedValue = encodeVisibleString(value);
|
|
289
253
|
}
|
|
290
254
|
get visibleString() {
|
|
291
|
-
return (
|
|
255
|
+
return decodeVisibleString(this.deconstruct("VisibleString"));
|
|
292
256
|
}
|
|
293
257
|
set generalString(value) {
|
|
294
|
-
this.unfragmentedValue = (
|
|
258
|
+
this.unfragmentedValue = encodeGeneralString(value);
|
|
295
259
|
}
|
|
296
260
|
get generalString() {
|
|
297
|
-
return (
|
|
261
|
+
return decodeGeneralString(this.deconstruct("GeneralString"));
|
|
298
262
|
}
|
|
299
263
|
set characterString(value) {
|
|
300
|
-
this.value = (
|
|
301
|
-
this.construction =
|
|
264
|
+
this.value = encodeCharacterString(value);
|
|
265
|
+
this.construction = ASN1Construction.constructed;
|
|
302
266
|
}
|
|
303
267
|
get characterString() {
|
|
304
|
-
return (
|
|
268
|
+
return decodeCharacterString(this.value);
|
|
305
269
|
}
|
|
306
270
|
set universalString(value) {
|
|
307
271
|
const buf = new Uint8Array(value.length << 2);
|
|
@@ -339,8 +303,8 @@ class CERElement extends x690_1.default {
|
|
|
339
303
|
const valueBytes = this.deconstruct("BMPString");
|
|
340
304
|
if (valueBytes.length % 2)
|
|
341
305
|
throw new errors.ASN1Error("BMPString encoded on non-mulitple of two bytes.", this);
|
|
342
|
-
if (typeof
|
|
343
|
-
const swappedEndianness =
|
|
306
|
+
if (typeof Buffer !== "undefined") {
|
|
307
|
+
const swappedEndianness = Buffer.allocUnsafe(valueBytes.length);
|
|
344
308
|
for (let i = 0; i < valueBytes.length; i += 2) {
|
|
345
309
|
swappedEndianness[i] = valueBytes[i + 1];
|
|
346
310
|
swappedEndianness[i + 1] = valueBytes[i];
|
|
@@ -348,17 +312,17 @@ class CERElement extends x690_1.default {
|
|
|
348
312
|
return swappedEndianness.toString("utf16le");
|
|
349
313
|
}
|
|
350
314
|
else if (typeof TextEncoder !== "undefined") {
|
|
351
|
-
return (new TextDecoder("utf-16be")).decode(valueBytes
|
|
315
|
+
return (new TextDecoder("utf-16be")).decode(valueBytes);
|
|
352
316
|
}
|
|
353
317
|
else {
|
|
354
318
|
throw new errors.ASN1Error("Neither TextDecoder nor Buffer are defined to decode bytes into text.", this);
|
|
355
319
|
}
|
|
356
320
|
}
|
|
357
321
|
set duration(value) {
|
|
358
|
-
this.value = (
|
|
322
|
+
this.value = encodeDuration(value);
|
|
359
323
|
}
|
|
360
324
|
get duration() {
|
|
361
|
-
return (
|
|
325
|
+
return decodeDuration(this.value);
|
|
362
326
|
}
|
|
363
327
|
encode(value) {
|
|
364
328
|
switch (typeof value) {
|
|
@@ -367,52 +331,52 @@ class CERElement extends x690_1.default {
|
|
|
367
331
|
break;
|
|
368
332
|
}
|
|
369
333
|
case ("boolean"): {
|
|
370
|
-
this.tagNumber =
|
|
334
|
+
this.tagNumber = ASN1UniversalType.boolean;
|
|
371
335
|
this.boolean = value;
|
|
372
336
|
break;
|
|
373
337
|
}
|
|
374
338
|
case ("number"): {
|
|
375
339
|
if (Number.isInteger(value)) {
|
|
376
|
-
this.tagNumber =
|
|
340
|
+
this.tagNumber = ASN1UniversalType.integer;
|
|
377
341
|
this.integer = value;
|
|
378
342
|
}
|
|
379
343
|
else {
|
|
380
|
-
this.tagNumber =
|
|
344
|
+
this.tagNumber = ASN1UniversalType.realNumber;
|
|
381
345
|
this.real = value;
|
|
382
346
|
}
|
|
383
347
|
break;
|
|
384
348
|
}
|
|
385
349
|
case ("bigint"): {
|
|
386
|
-
this.tagNumber =
|
|
350
|
+
this.tagNumber = ASN1UniversalType.integer;
|
|
387
351
|
this.integer = value;
|
|
388
352
|
break;
|
|
389
353
|
}
|
|
390
354
|
case ("string"): {
|
|
391
|
-
this.tagNumber =
|
|
355
|
+
this.tagNumber = ASN1UniversalType.utf8String;
|
|
392
356
|
this.utf8String = value;
|
|
393
357
|
break;
|
|
394
358
|
}
|
|
395
359
|
case ("object"): {
|
|
396
360
|
if (!value) {
|
|
397
|
-
this.tagNumber =
|
|
361
|
+
this.tagNumber = ASN1UniversalType.nill;
|
|
398
362
|
this.value = new Uint8Array(0);
|
|
399
363
|
}
|
|
400
364
|
else if (value instanceof Uint8Array) {
|
|
401
|
-
this.tagNumber =
|
|
365
|
+
this.tagNumber = ASN1UniversalType.octetString;
|
|
402
366
|
this.octetString = value;
|
|
403
367
|
}
|
|
404
368
|
else if (value instanceof Uint8ClampedArray) {
|
|
405
|
-
this.tagNumber =
|
|
369
|
+
this.tagNumber = ASN1UniversalType.bitString;
|
|
406
370
|
this.bitString = value;
|
|
407
371
|
}
|
|
408
|
-
else if (value instanceof
|
|
409
|
-
this.construction =
|
|
372
|
+
else if (value instanceof ASN1Element) {
|
|
373
|
+
this.construction = ASN1Construction.constructed;
|
|
410
374
|
this.sequence = [value];
|
|
411
375
|
}
|
|
412
376
|
else if (value instanceof Set) {
|
|
413
|
-
this.construction =
|
|
377
|
+
this.construction = ASN1Construction.constructed;
|
|
414
378
|
this.set = Array.from(value).map((v) => {
|
|
415
|
-
if (typeof v === "object" && v instanceof
|
|
379
|
+
if (typeof v === "object" && v instanceof ASN1Element) {
|
|
416
380
|
return v;
|
|
417
381
|
}
|
|
418
382
|
else {
|
|
@@ -422,13 +386,13 @@ class CERElement extends x690_1.default {
|
|
|
422
386
|
}
|
|
423
387
|
});
|
|
424
388
|
}
|
|
425
|
-
else if ((value instanceof
|
|
426
|
-
this.tagNumber =
|
|
389
|
+
else if ((value instanceof ObjectIdentifier) || (value.constructor?.name === "ObjectIdentifier")) {
|
|
390
|
+
this.tagNumber = ASN1UniversalType.objectIdentifier;
|
|
427
391
|
this.objectIdentifier = value;
|
|
428
392
|
}
|
|
429
393
|
else if (Array.isArray(value)) {
|
|
430
|
-
this.construction =
|
|
431
|
-
this.tagNumber =
|
|
394
|
+
this.construction = ASN1Construction.constructed;
|
|
395
|
+
this.tagNumber = ASN1UniversalType.sequence;
|
|
432
396
|
this.sequence = value.map((sub) => {
|
|
433
397
|
const ret = new CERElement();
|
|
434
398
|
ret.encode(sub);
|
|
@@ -449,22 +413,22 @@ class CERElement extends x690_1.default {
|
|
|
449
413
|
}
|
|
450
414
|
}
|
|
451
415
|
static fromSequence(sequence) {
|
|
452
|
-
const ret = new CERElement(
|
|
416
|
+
const ret = new CERElement(ASN1TagClass.universal, ASN1Construction.constructed, ASN1UniversalType.sequence);
|
|
453
417
|
ret.sequence = sequence.filter((element) => Boolean(element));
|
|
454
418
|
return ret;
|
|
455
419
|
}
|
|
456
420
|
static fromSet(set) {
|
|
457
|
-
const ret = new CERElement(
|
|
421
|
+
const ret = new CERElement(ASN1TagClass.universal, ASN1Construction.constructed, ASN1UniversalType.set);
|
|
458
422
|
ret.set = set.filter((element) => Boolean(element));
|
|
459
423
|
return ret;
|
|
460
424
|
}
|
|
461
425
|
static fromSetOf(set) {
|
|
462
|
-
const ret = new CERElement(
|
|
426
|
+
const ret = new CERElement(ASN1TagClass.universal, ASN1Construction.constructed, ASN1UniversalType.set);
|
|
463
427
|
ret.setOf = set.filter((element) => Boolean(element));
|
|
464
428
|
return ret;
|
|
465
429
|
}
|
|
466
430
|
get inner() {
|
|
467
|
-
if (this.construction !==
|
|
431
|
+
if (this.construction !== ASN1Construction.constructed) {
|
|
468
432
|
throw new errors.ASN1ConstructionError("An explicitly-encoded element cannot be encoded using "
|
|
469
433
|
+ "primitive construction.", this);
|
|
470
434
|
}
|
|
@@ -485,12 +449,11 @@ class CERElement extends x690_1.default {
|
|
|
485
449
|
return ret;
|
|
486
450
|
}
|
|
487
451
|
set inner(value) {
|
|
488
|
-
this.construction =
|
|
452
|
+
this.construction = ASN1Construction.constructed;
|
|
489
453
|
this._value = [value];
|
|
490
454
|
}
|
|
491
|
-
constructor(tagClass =
|
|
455
|
+
constructor(tagClass = ASN1TagClass.universal, construction = ASN1Construction.primitive, tagNumber = ASN1UniversalType.endOfContent, value = undefined) {
|
|
492
456
|
super();
|
|
493
|
-
this._value = new Uint8Array(0);
|
|
494
457
|
this.encode(value);
|
|
495
458
|
this.tagClass = tagClass;
|
|
496
459
|
this.construction = construction;
|
|
@@ -506,21 +469,21 @@ class CERElement extends x690_1.default {
|
|
|
506
469
|
let cursor = 0;
|
|
507
470
|
switch (bytes[cursor] & 0b11000000) {
|
|
508
471
|
case (0b00000000):
|
|
509
|
-
this.tagClass =
|
|
472
|
+
this.tagClass = ASN1TagClass.universal;
|
|
510
473
|
break;
|
|
511
474
|
case (0b01000000):
|
|
512
|
-
this.tagClass =
|
|
475
|
+
this.tagClass = ASN1TagClass.application;
|
|
513
476
|
break;
|
|
514
477
|
case (0b10000000):
|
|
515
|
-
this.tagClass =
|
|
478
|
+
this.tagClass = ASN1TagClass.context;
|
|
516
479
|
break;
|
|
517
480
|
case (0b11000000):
|
|
518
|
-
this.tagClass =
|
|
481
|
+
this.tagClass = ASN1TagClass.private;
|
|
519
482
|
break;
|
|
520
|
-
default: this.tagClass =
|
|
483
|
+
default: this.tagClass = ASN1TagClass.universal;
|
|
521
484
|
}
|
|
522
485
|
this.construction = ((bytes[cursor] & 0b00100000)
|
|
523
|
-
?
|
|
486
|
+
? ASN1Construction.constructed : ASN1Construction.primitive);
|
|
524
487
|
this.tagNumber = (bytes[cursor] & 0b00011111);
|
|
525
488
|
cursor++;
|
|
526
489
|
if (this.tagNumber >= 31) {
|
|
@@ -582,7 +545,7 @@ class CERElement extends x690_1.default {
|
|
|
582
545
|
return (cursor + length);
|
|
583
546
|
}
|
|
584
547
|
else {
|
|
585
|
-
if (this.construction !==
|
|
548
|
+
if (this.construction !== ASN1Construction.constructed) {
|
|
586
549
|
throw new errors.ASN1ConstructionError("Indefinite length ASN.1 element was not of constructed construction.", this);
|
|
587
550
|
}
|
|
588
551
|
const startOfValue = ++cursor;
|
|
@@ -590,9 +553,9 @@ class CERElement extends x690_1.default {
|
|
|
590
553
|
while (sentinel < bytes.length) {
|
|
591
554
|
const child = new CERElement();
|
|
592
555
|
sentinel += child.fromBytes(bytes.subarray(sentinel));
|
|
593
|
-
if (child.tagClass ===
|
|
594
|
-
&& child.construction ===
|
|
595
|
-
&& child.tagNumber ===
|
|
556
|
+
if (child.tagClass === ASN1TagClass.universal
|
|
557
|
+
&& child.construction === ASN1Construction.primitive
|
|
558
|
+
&& child.tagNumber === ASN1UniversalType.endOfContent
|
|
596
559
|
&& child.value.length === 0)
|
|
597
560
|
break;
|
|
598
561
|
}
|
|
@@ -633,7 +596,7 @@ class CERElement extends x690_1.default {
|
|
|
633
596
|
}
|
|
634
597
|
let lengthOctets = [0x00];
|
|
635
598
|
switch (this.construction) {
|
|
636
|
-
case (
|
|
599
|
+
case (ASN1Construction.primitive): {
|
|
637
600
|
if (this.value.length < 127) {
|
|
638
601
|
lengthOctets[0] = this.value.length;
|
|
639
602
|
}
|
|
@@ -653,7 +616,7 @@ class CERElement extends x690_1.default {
|
|
|
653
616
|
}
|
|
654
617
|
break;
|
|
655
618
|
}
|
|
656
|
-
case (
|
|
619
|
+
case (ASN1Construction.constructed): {
|
|
657
620
|
lengthOctets = [0b10000000];
|
|
658
621
|
break;
|
|
659
622
|
}
|
|
@@ -671,13 +634,13 @@ class CERElement extends x690_1.default {
|
|
|
671
634
|
...(Array.isArray(this._value)
|
|
672
635
|
? this._value.flatMap((el) => el.toBuffers())
|
|
673
636
|
: [this._value]),
|
|
674
|
-
...(this.construction ===
|
|
637
|
+
...(this.construction === ASN1Construction.constructed
|
|
675
638
|
? [new Uint8Array(2)]
|
|
676
639
|
: []),
|
|
677
640
|
];
|
|
678
641
|
}
|
|
679
642
|
deconstruct(dataType) {
|
|
680
|
-
if (this.construction ===
|
|
643
|
+
if (this.construction === ASN1Construction.primitive) {
|
|
681
644
|
return new Uint8Array(this.value);
|
|
682
645
|
}
|
|
683
646
|
else {
|
|
@@ -686,17 +649,17 @@ class CERElement extends x690_1.default {
|
|
|
686
649
|
const appendy = [];
|
|
687
650
|
const substrings = this.sequence;
|
|
688
651
|
for (const substring of substrings) {
|
|
689
|
-
if (substring.tagClass !==
|
|
652
|
+
if (substring.tagClass !== ASN1TagClass.universal) {
|
|
690
653
|
throw new errors.ASN1ConstructionError(`Invalid tag class in constructed ${dataType}. Must be UNIVERSAL`, this);
|
|
691
654
|
}
|
|
692
|
-
if (substring.tagNumber !==
|
|
655
|
+
if (substring.tagNumber !== ASN1UniversalType.octetString) {
|
|
693
656
|
throw new errors.ASN1ConstructionError(`Invalid tag number in constructed ${dataType}. Must be 4 (OCTET STRING).`, this);
|
|
694
657
|
}
|
|
695
658
|
substring.recursionCount = (this.recursionCount + 1);
|
|
696
659
|
const deconstructed = substring.deconstruct(dataType);
|
|
697
660
|
appendy.push(deconstructed);
|
|
698
661
|
}
|
|
699
|
-
return
|
|
662
|
+
return Buffer.concat(appendy);
|
|
700
663
|
}
|
|
701
664
|
}
|
|
702
665
|
get components() {
|
|
@@ -743,7 +706,7 @@ class CERElement extends x690_1.default {
|
|
|
743
706
|
return len;
|
|
744
707
|
}
|
|
745
708
|
tlvLength() {
|
|
746
|
-
const eoc_bytes = (this.construction ===
|
|
709
|
+
const eoc_bytes = (this.construction === ASN1Construction.constructed)
|
|
747
710
|
? 2
|
|
748
711
|
: 0;
|
|
749
712
|
const value_len = this.valueLength();
|
|
@@ -753,4 +716,3 @@ class CERElement extends x690_1.default {
|
|
|
753
716
|
+ eoc_bytes);
|
|
754
717
|
}
|
|
755
718
|
}
|
|
756
|
-
exports.default = CERElement;
|