asn1-ts 8.0.4 → 9.0.0
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} +8 -7
- package/dist/{node/asn1.js → asn1.mjs} +90 -130
- 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} +139 -176
- 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} +143 -180
- 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} +136 -173
- 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/codecs/x690/encoders/encodeObjectIdentifier.d.mts +3 -0
- package/dist/{node/codecs/x690/encoders/encodeObjectIdentifier.js → codecs/x690/encoders/encodeObjectIdentifier.mjs} +2 -4
- 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} +2 -4
- 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.d.ts → types/ObjectIdentifier.d.mts} +1 -0
- 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} +2 -1
- package/dist/{node/utils/bigint.js → utils/bigint.mjs} +7 -10
- 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/{node/utils/convertBytesToText.js → utils/convertBytesToText.mjs} +4 -6
- 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/{node/utils/sortCanonically.js → utils/sortCanonically.mjs} +2 -4
- 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 -51
- 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/encodeObjectIdentifier.d.ts +0 -2
- 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 -6
- 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/convertTextToBytes.js +0 -13
- package/dist/node/utils/decodeIEEE754DoublePrecisionFloat.js +0 -6
- package/dist/node/utils/decodeIEEE754SinglePrecisionFloat.js +0 -6
- package/dist/node/utils/decodeSignedBigEndianInteger.js +0 -48
- package/dist/node/utils/decodeUnsignedBigEndianInteger.js +0 -48
- 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 -58
- 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/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/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,88 +1,54 @@
|
|
|
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
|
-
const decodeBoolean_1 = __importDefault(require("./ber/decoders/decodeBoolean"));
|
|
48
|
-
const encodeBitString_1 = __importDefault(require("./x690/encoders/encodeBitString"));
|
|
49
|
-
const decodeBitString_1 = __importDefault(require("./ber/decoders/decodeBitString"));
|
|
50
|
-
const encodeReal_1 = __importDefault(require("./x690/encoders/encodeReal"));
|
|
51
|
-
const decodeReal_1 = __importDefault(require("./ber/decoders/decodeReal"));
|
|
52
|
-
const encodeSequence_1 = __importDefault(require("./x690/encoders/encodeSequence"));
|
|
53
|
-
const decodeSequence_1 = __importDefault(require("./ber/decoders/decodeSequence"));
|
|
54
|
-
const encodeUTCTime_1 = __importDefault(require("./x690/encoders/encodeUTCTime"));
|
|
55
|
-
const decodeUTCTime_1 = __importDefault(require("./ber/decoders/decodeUTCTime"));
|
|
56
|
-
const encodeGeneralizedTime_1 = __importDefault(require("./x690/encoders/encodeGeneralizedTime"));
|
|
57
|
-
const decodeGeneralizedTime_1 = __importDefault(require("./ber/decoders/decodeGeneralizedTime"));
|
|
58
|
-
const encodeExternal_1 = __importDefault(require("../codecs/x690/encoders/encodeExternal"));
|
|
59
|
-
const encodeEmbeddedPDV_1 = __importDefault(require("../codecs/x690/encoders/encodeEmbeddedPDV"));
|
|
60
|
-
const encodeCharacterString_1 = __importDefault(require("../codecs/x690/encoders/encodeCharacterString"));
|
|
61
|
-
const decodeExternal_1 = __importDefault(require("../codecs/x690/decoders/decodeExternal"));
|
|
62
|
-
const decodeEmbeddedPDV_1 = __importDefault(require("../codecs/x690/decoders/decodeEmbeddedPDV"));
|
|
63
|
-
const decodeCharacterString_1 = __importDefault(require("../codecs/x690/decoders/decodeCharacterString"));
|
|
64
|
-
const encodeGraphicString_1 = __importDefault(require("../codecs/ber/encoders/encodeGraphicString"));
|
|
65
|
-
const encodeNumericString_1 = __importDefault(require("../codecs/ber/encoders/encodeNumericString"));
|
|
66
|
-
const encodeObjectDescriptor_1 = __importDefault(require("../codecs/ber/encoders/encodeObjectDescriptor"));
|
|
67
|
-
const encodePrintableString_1 = __importDefault(require("../codecs/ber/encoders/encodePrintableString"));
|
|
68
|
-
const encodeVisibleString_1 = __importDefault(require("../codecs/ber/encoders/encodeVisibleString"));
|
|
69
|
-
const encodeGeneralString_1 = __importDefault(require("../codecs/ber/encoders/encodeGeneralString"));
|
|
70
|
-
const decodeGraphicString_1 = __importDefault(require("../codecs/x690/decoders/decodeGraphicString"));
|
|
71
|
-
const decodeNumericString_1 = __importDefault(require("../codecs/x690/decoders/decodeNumericString"));
|
|
72
|
-
const decodeObjectDescriptor_1 = __importDefault(require("../codecs/x690/decoders/decodeObjectDescriptor"));
|
|
73
|
-
const decodePrintableString_1 = __importDefault(require("../codecs/x690/decoders/decodePrintableString"));
|
|
74
|
-
const decodeVisibleString_1 = __importDefault(require("../codecs/x690/decoders/decodeVisibleString"));
|
|
75
|
-
const decodeGeneralString_1 = __importDefault(require("../codecs/x690/decoders/decodeGeneralString"));
|
|
76
|
-
const encodeDuration_1 = __importDefault(require("../codecs/x690/encoders/encodeDuration"));
|
|
77
|
-
const decodeDuration_1 = __importDefault(require("../codecs/ber/decoders/decodeDuration"));
|
|
78
|
-
const macros_1 = require("../macros");
|
|
79
|
-
const utils_1 = require("../utils");
|
|
80
|
-
class BERElement extends x690_1.default {
|
|
1
|
+
import ASN1Element from "../asn1.mjs";
|
|
2
|
+
import * as errors from "../errors.mjs";
|
|
3
|
+
import { ASN1Construction, ASN1TagClass, ASN1UniversalType, LengthEncodingPreference, } 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 ObjectIdentifier from "../types/ObjectIdentifier.mjs";
|
|
8
|
+
import encodeBoolean from "./x690/encoders/encodeBoolean.mjs";
|
|
9
|
+
import decodeBoolean from "./ber/decoders/decodeBoolean.mjs";
|
|
10
|
+
import encodeBitString from "./x690/encoders/encodeBitString.mjs";
|
|
11
|
+
import decodeBitString from "./ber/decoders/decodeBitString.mjs";
|
|
12
|
+
import encodeReal from "./x690/encoders/encodeReal.mjs";
|
|
13
|
+
import decodeReal from "./ber/decoders/decodeReal.mjs";
|
|
14
|
+
import encodeSequence from "./x690/encoders/encodeSequence.mjs";
|
|
15
|
+
import decodeSequence from "./ber/decoders/decodeSequence.mjs";
|
|
16
|
+
import encodeUTCTime from "./x690/encoders/encodeUTCTime.mjs";
|
|
17
|
+
import decodeUTCTime from "./ber/decoders/decodeUTCTime.mjs";
|
|
18
|
+
import encodeGeneralizedTime from "./x690/encoders/encodeGeneralizedTime.mjs";
|
|
19
|
+
import decodeGeneralizedTime from "./ber/decoders/decodeGeneralizedTime.mjs";
|
|
20
|
+
import encodeExternal from "../codecs/x690/encoders/encodeExternal.mjs";
|
|
21
|
+
import encodeEmbeddedPDV from "../codecs/x690/encoders/encodeEmbeddedPDV.mjs";
|
|
22
|
+
import encodeCharacterString from "../codecs/x690/encoders/encodeCharacterString.mjs";
|
|
23
|
+
import decodeExternal from "../codecs/x690/decoders/decodeExternal.mjs";
|
|
24
|
+
import decodeEmbeddedPDV from "../codecs/x690/decoders/decodeEmbeddedPDV.mjs";
|
|
25
|
+
import decodeCharacterString from "../codecs/x690/decoders/decodeCharacterString.mjs";
|
|
26
|
+
import encodeGraphicString from "../codecs/ber/encoders/encodeGraphicString.mjs";
|
|
27
|
+
import encodeNumericString from "../codecs/ber/encoders/encodeNumericString.mjs";
|
|
28
|
+
import encodeObjectDescriptor from "../codecs/ber/encoders/encodeObjectDescriptor.mjs";
|
|
29
|
+
import encodePrintableString from "../codecs/ber/encoders/encodePrintableString.mjs";
|
|
30
|
+
import encodeVisibleString from "../codecs/ber/encoders/encodeVisibleString.mjs";
|
|
31
|
+
import encodeGeneralString from "../codecs/ber/encoders/encodeGeneralString.mjs";
|
|
32
|
+
import decodeGraphicString from "../codecs/x690/decoders/decodeGraphicString.mjs";
|
|
33
|
+
import decodeNumericString from "../codecs/x690/decoders/decodeNumericString.mjs";
|
|
34
|
+
import decodeObjectDescriptor from "../codecs/x690/decoders/decodeObjectDescriptor.mjs";
|
|
35
|
+
import decodePrintableString from "../codecs/x690/decoders/decodePrintableString.mjs";
|
|
36
|
+
import decodeVisibleString from "../codecs/x690/decoders/decodeVisibleString.mjs";
|
|
37
|
+
import decodeGeneralString from "../codecs/x690/decoders/decodeGeneralString.mjs";
|
|
38
|
+
import encodeDuration from "../codecs/x690/encoders/encodeDuration.mjs";
|
|
39
|
+
import decodeDuration from "../codecs/ber/decoders/decodeDuration.mjs";
|
|
40
|
+
import { FALSE_BIT, } from "../macros.mjs";
|
|
41
|
+
import { isUniquelyTagged } from "../utils/index.mjs";
|
|
42
|
+
import { Buffer } from "node:buffer";
|
|
43
|
+
export default class BERElement extends X690Element {
|
|
44
|
+
static lengthEncodingPreference = LengthEncodingPreference.definite;
|
|
45
|
+
_value = new Uint8Array(0);
|
|
46
|
+
_currentValueLength;
|
|
81
47
|
get value() {
|
|
82
48
|
if (this._value instanceof Uint8Array) {
|
|
83
49
|
return this._value;
|
|
84
50
|
}
|
|
85
|
-
const bytes = (
|
|
51
|
+
const bytes = encodeSequence(this._value);
|
|
86
52
|
this._value = bytes;
|
|
87
53
|
return bytes;
|
|
88
54
|
}
|
|
@@ -95,20 +61,20 @@ class BERElement extends x690_1.default {
|
|
|
95
61
|
this._value = els;
|
|
96
62
|
}
|
|
97
63
|
set boolean(value) {
|
|
98
|
-
this.value = (
|
|
64
|
+
this.value = encodeBoolean(value);
|
|
99
65
|
}
|
|
100
66
|
get boolean() {
|
|
101
|
-
if (this.construction !==
|
|
67
|
+
if (this.construction !== ASN1Construction.primitive) {
|
|
102
68
|
throw new errors.ASN1ConstructionError("BOOLEAN cannot be constructed.", this);
|
|
103
69
|
}
|
|
104
|
-
return (
|
|
70
|
+
return decodeBoolean(this.value);
|
|
105
71
|
}
|
|
106
72
|
set bitString(value) {
|
|
107
|
-
this.value = (
|
|
73
|
+
this.value = encodeBitString(value);
|
|
108
74
|
}
|
|
109
75
|
get bitString() {
|
|
110
|
-
if (this.construction ===
|
|
111
|
-
return (
|
|
76
|
+
if (this.construction === ASN1Construction.primitive) {
|
|
77
|
+
return decodeBitString(this.value);
|
|
112
78
|
}
|
|
113
79
|
if ((this.recursionCount + 1) > BERElement.nestingRecursionLimit) {
|
|
114
80
|
throw new errors.ASN1RecursionError();
|
|
@@ -116,7 +82,7 @@ class BERElement extends x690_1.default {
|
|
|
116
82
|
const appendy = [];
|
|
117
83
|
const substrings = this.sequence;
|
|
118
84
|
for (const substring of substrings.slice(0, (substrings.length - 1))) {
|
|
119
|
-
if (substring.construction ===
|
|
85
|
+
if (substring.construction === ASN1Construction.primitive
|
|
120
86
|
&& substring.value.length > 0
|
|
121
87
|
&& substring.value[0] !== 0x00) {
|
|
122
88
|
throw new errors.ASN1Error("Only the last subelement of a constructed BIT STRING may have a non-zero first value byte.", this);
|
|
@@ -130,7 +96,7 @@ class BERElement extends x690_1.default {
|
|
|
130
96
|
throw new errors.ASN1ConstructionError("Invalid tag class in recursively-encoded BIT STRING.", this);
|
|
131
97
|
}
|
|
132
98
|
substring.recursionCount = (this.recursionCount + 1);
|
|
133
|
-
appendy.push(...Array.from(substring.bitString).map((b) => b !==
|
|
99
|
+
appendy.push(...Array.from(substring.bitString).map((b) => b !== FALSE_BIT));
|
|
134
100
|
}
|
|
135
101
|
return new Uint8ClampedArray(appendy.map((b) => (b ? 1 : 0)));
|
|
136
102
|
}
|
|
@@ -141,76 +107,76 @@ class BERElement extends x690_1.default {
|
|
|
141
107
|
return this.deconstruct("OCTET STRING");
|
|
142
108
|
}
|
|
143
109
|
set objectDescriptor(value) {
|
|
144
|
-
this.value = (
|
|
110
|
+
this.value = encodeObjectDescriptor(value);
|
|
145
111
|
}
|
|
146
112
|
get objectDescriptor() {
|
|
147
113
|
const bytes = this.deconstruct("ObjectDescriptor");
|
|
148
|
-
return (
|
|
114
|
+
return decodeObjectDescriptor(bytes);
|
|
149
115
|
}
|
|
150
116
|
set external(value) {
|
|
151
|
-
this.value = (
|
|
152
|
-
this.construction =
|
|
117
|
+
this.value = encodeExternal(value);
|
|
118
|
+
this.construction = ASN1Construction.constructed;
|
|
153
119
|
}
|
|
154
120
|
get external() {
|
|
155
|
-
return (
|
|
121
|
+
return decodeExternal(this.value);
|
|
156
122
|
}
|
|
157
123
|
set real(value) {
|
|
158
|
-
this.value = (
|
|
124
|
+
this.value = encodeReal(value);
|
|
159
125
|
}
|
|
160
126
|
get real() {
|
|
161
|
-
if (this.construction !==
|
|
127
|
+
if (this.construction !== ASN1Construction.primitive) {
|
|
162
128
|
throw new errors.ASN1ConstructionError("REAL cannot be constructed.");
|
|
163
129
|
}
|
|
164
|
-
return (
|
|
130
|
+
return decodeReal(this.value);
|
|
165
131
|
}
|
|
166
132
|
set embeddedPDV(value) {
|
|
167
|
-
this.value = (
|
|
168
|
-
this.construction =
|
|
133
|
+
this.value = encodeEmbeddedPDV(value);
|
|
134
|
+
this.construction = ASN1Construction.constructed;
|
|
169
135
|
}
|
|
170
136
|
get embeddedPDV() {
|
|
171
|
-
return (
|
|
137
|
+
return decodeEmbeddedPDV(this.value);
|
|
172
138
|
}
|
|
173
139
|
set utf8String(value) {
|
|
174
|
-
this.value = (
|
|
140
|
+
this.value = convertTextToBytes(value);
|
|
175
141
|
}
|
|
176
142
|
get utf8String() {
|
|
177
|
-
return (
|
|
143
|
+
return convertBytesToText(this.deconstruct("UTF8String"));
|
|
178
144
|
}
|
|
179
145
|
set sequence(value) {
|
|
180
146
|
this.construct(value);
|
|
181
|
-
this.construction =
|
|
147
|
+
this.construction = ASN1Construction.constructed;
|
|
182
148
|
}
|
|
183
149
|
get sequence() {
|
|
184
|
-
if (this.construction !==
|
|
150
|
+
if (this.construction !== ASN1Construction.constructed) {
|
|
185
151
|
throw new errors.ASN1ConstructionError("SET or SEQUENCE cannot be primitively constructed.", this);
|
|
186
152
|
}
|
|
187
153
|
if (Array.isArray(this._value)) {
|
|
188
154
|
return this._value;
|
|
189
155
|
}
|
|
190
|
-
return (
|
|
156
|
+
return decodeSequence(this.value);
|
|
191
157
|
}
|
|
192
158
|
set set(value) {
|
|
193
159
|
this.sequence = value;
|
|
194
160
|
}
|
|
195
161
|
get set() {
|
|
196
162
|
const ret = this.sequence;
|
|
197
|
-
if (!
|
|
163
|
+
if (!isUniquelyTagged(ret)) {
|
|
198
164
|
throw new errors.ASN1ConstructionError("Duplicate tag in SET.", this);
|
|
199
165
|
}
|
|
200
166
|
return ret;
|
|
201
167
|
}
|
|
202
168
|
set sequenceOf(value) {
|
|
203
169
|
this.construct(value);
|
|
204
|
-
this.construction =
|
|
170
|
+
this.construction = ASN1Construction.constructed;
|
|
205
171
|
}
|
|
206
172
|
get sequenceOf() {
|
|
207
|
-
if (this.construction !==
|
|
173
|
+
if (this.construction !== ASN1Construction.constructed) {
|
|
208
174
|
throw new errors.ASN1ConstructionError("SET or SEQUENCE cannot be primitively constructed.", this);
|
|
209
175
|
}
|
|
210
176
|
if (Array.isArray(this._value)) {
|
|
211
177
|
return this._value;
|
|
212
178
|
}
|
|
213
|
-
return (
|
|
179
|
+
return decodeSequence(this.value);
|
|
214
180
|
}
|
|
215
181
|
set setOf(value) {
|
|
216
182
|
this.sequence = value;
|
|
@@ -219,18 +185,18 @@ class BERElement extends x690_1.default {
|
|
|
219
185
|
return this.sequence;
|
|
220
186
|
}
|
|
221
187
|
set numericString(value) {
|
|
222
|
-
this.value = (
|
|
188
|
+
this.value = encodeNumericString(value);
|
|
223
189
|
}
|
|
224
190
|
get numericString() {
|
|
225
191
|
const bytes = this.deconstruct("NumericString");
|
|
226
|
-
return (
|
|
192
|
+
return decodeNumericString(bytes);
|
|
227
193
|
}
|
|
228
194
|
set printableString(value) {
|
|
229
|
-
this.value = (
|
|
195
|
+
this.value = encodePrintableString(value);
|
|
230
196
|
}
|
|
231
197
|
get printableString() {
|
|
232
198
|
const bytes = this.deconstruct("PrintableString");
|
|
233
|
-
return (
|
|
199
|
+
return decodePrintableString(bytes);
|
|
234
200
|
}
|
|
235
201
|
set teletexString(value) {
|
|
236
202
|
this.value = new Uint8Array(value);
|
|
@@ -245,49 +211,49 @@ class BERElement extends x690_1.default {
|
|
|
245
211
|
return this.deconstruct("VideotexString");
|
|
246
212
|
}
|
|
247
213
|
set ia5String(value) {
|
|
248
|
-
this.value = (
|
|
214
|
+
this.value = convertTextToBytes(value);
|
|
249
215
|
}
|
|
250
216
|
get ia5String() {
|
|
251
|
-
return (
|
|
217
|
+
return convertBytesToText(this.deconstruct("IA5String"));
|
|
252
218
|
}
|
|
253
219
|
set utcTime(value) {
|
|
254
|
-
this.value = (
|
|
220
|
+
this.value = encodeUTCTime(value);
|
|
255
221
|
}
|
|
256
222
|
get utcTime() {
|
|
257
|
-
return (
|
|
223
|
+
return decodeUTCTime(this.deconstruct("UTCTime"));
|
|
258
224
|
}
|
|
259
225
|
set generalizedTime(value) {
|
|
260
|
-
this.value = (
|
|
226
|
+
this.value = encodeGeneralizedTime(value);
|
|
261
227
|
}
|
|
262
228
|
get generalizedTime() {
|
|
263
|
-
return (
|
|
229
|
+
return decodeGeneralizedTime(this.deconstruct("GeneralizedTime"));
|
|
264
230
|
}
|
|
265
231
|
set graphicString(value) {
|
|
266
|
-
this.value = (
|
|
232
|
+
this.value = encodeGraphicString(value);
|
|
267
233
|
}
|
|
268
234
|
get graphicString() {
|
|
269
235
|
const bytes = this.deconstruct("GraphicString");
|
|
270
|
-
return (
|
|
236
|
+
return decodeGraphicString(bytes);
|
|
271
237
|
}
|
|
272
238
|
set visibleString(value) {
|
|
273
|
-
this.value = (
|
|
239
|
+
this.value = encodeVisibleString(value);
|
|
274
240
|
}
|
|
275
241
|
get visibleString() {
|
|
276
|
-
return (
|
|
242
|
+
return decodeVisibleString(this.value);
|
|
277
243
|
}
|
|
278
244
|
set generalString(value) {
|
|
279
|
-
this.value = (
|
|
245
|
+
this.value = encodeGeneralString(value);
|
|
280
246
|
}
|
|
281
247
|
get generalString() {
|
|
282
248
|
const bytes = this.deconstruct("GeneralString");
|
|
283
|
-
return (
|
|
249
|
+
return decodeGeneralString(bytes);
|
|
284
250
|
}
|
|
285
251
|
set characterString(value) {
|
|
286
|
-
this.value = (
|
|
287
|
-
this.construction =
|
|
252
|
+
this.value = encodeCharacterString(value);
|
|
253
|
+
this.construction = ASN1Construction.constructed;
|
|
288
254
|
}
|
|
289
255
|
get characterString() {
|
|
290
|
-
return (
|
|
256
|
+
return decodeCharacterString(this.value);
|
|
291
257
|
}
|
|
292
258
|
set universalString(value) {
|
|
293
259
|
const buf = new Uint8Array(value.length << 2);
|
|
@@ -334,17 +300,17 @@ class BERElement extends x690_1.default {
|
|
|
334
300
|
return swappedEndianness.toString("utf16le");
|
|
335
301
|
}
|
|
336
302
|
else if (typeof TextEncoder !== "undefined") {
|
|
337
|
-
return (new TextDecoder("utf-16be")).decode(valueBytes
|
|
303
|
+
return (new TextDecoder("utf-16be")).decode(valueBytes);
|
|
338
304
|
}
|
|
339
305
|
else {
|
|
340
306
|
throw new errors.ASN1Error("Neither TextDecoder nor Buffer are defined to decode bytes into text.", this);
|
|
341
307
|
}
|
|
342
308
|
}
|
|
343
309
|
set duration(value) {
|
|
344
|
-
this.value = (
|
|
310
|
+
this.value = encodeDuration(value);
|
|
345
311
|
}
|
|
346
312
|
get duration() {
|
|
347
|
-
return (
|
|
313
|
+
return decodeDuration(this.value);
|
|
348
314
|
}
|
|
349
315
|
encode(value) {
|
|
350
316
|
switch (typeof value) {
|
|
@@ -353,52 +319,52 @@ class BERElement extends x690_1.default {
|
|
|
353
319
|
break;
|
|
354
320
|
}
|
|
355
321
|
case ("boolean"): {
|
|
356
|
-
this.tagNumber =
|
|
322
|
+
this.tagNumber = ASN1UniversalType.boolean;
|
|
357
323
|
this.boolean = value;
|
|
358
324
|
break;
|
|
359
325
|
}
|
|
360
326
|
case ("number"): {
|
|
361
327
|
if (Number.isInteger(value)) {
|
|
362
|
-
this.tagNumber =
|
|
328
|
+
this.tagNumber = ASN1UniversalType.integer;
|
|
363
329
|
this.integer = value;
|
|
364
330
|
}
|
|
365
331
|
else {
|
|
366
|
-
this.tagNumber =
|
|
332
|
+
this.tagNumber = ASN1UniversalType.realNumber;
|
|
367
333
|
this.real = value;
|
|
368
334
|
}
|
|
369
335
|
break;
|
|
370
336
|
}
|
|
371
337
|
case ("bigint"): {
|
|
372
|
-
this.tagNumber =
|
|
338
|
+
this.tagNumber = ASN1UniversalType.integer;
|
|
373
339
|
this.integer = value;
|
|
374
340
|
break;
|
|
375
341
|
}
|
|
376
342
|
case ("string"): {
|
|
377
|
-
this.tagNumber =
|
|
343
|
+
this.tagNumber = ASN1UniversalType.utf8String;
|
|
378
344
|
this.utf8String = value;
|
|
379
345
|
break;
|
|
380
346
|
}
|
|
381
347
|
case ("object"): {
|
|
382
348
|
if (!value) {
|
|
383
|
-
this.tagNumber =
|
|
349
|
+
this.tagNumber = ASN1UniversalType.nill;
|
|
384
350
|
this.value = new Uint8Array(0);
|
|
385
351
|
}
|
|
386
352
|
else if (value instanceof Uint8Array) {
|
|
387
|
-
this.tagNumber =
|
|
353
|
+
this.tagNumber = ASN1UniversalType.octetString;
|
|
388
354
|
this.octetString = value;
|
|
389
355
|
}
|
|
390
356
|
else if (value instanceof Uint8ClampedArray) {
|
|
391
|
-
this.tagNumber =
|
|
357
|
+
this.tagNumber = ASN1UniversalType.bitString;
|
|
392
358
|
this.bitString = value;
|
|
393
359
|
}
|
|
394
|
-
else if (value instanceof
|
|
395
|
-
this.construction =
|
|
360
|
+
else if (value instanceof ASN1Element) {
|
|
361
|
+
this.construction = ASN1Construction.constructed;
|
|
396
362
|
this.sequence = [value];
|
|
397
363
|
}
|
|
398
364
|
else if (value instanceof Set) {
|
|
399
|
-
this.construction =
|
|
365
|
+
this.construction = ASN1Construction.constructed;
|
|
400
366
|
this.set = Array.from(value).map((v) => {
|
|
401
|
-
if (typeof v === "object" && v instanceof
|
|
367
|
+
if (typeof v === "object" && v instanceof ASN1Element) {
|
|
402
368
|
return v;
|
|
403
369
|
}
|
|
404
370
|
else {
|
|
@@ -408,13 +374,13 @@ class BERElement extends x690_1.default {
|
|
|
408
374
|
}
|
|
409
375
|
});
|
|
410
376
|
}
|
|
411
|
-
else if ((value instanceof
|
|
412
|
-
this.tagNumber =
|
|
377
|
+
else if ((value instanceof ObjectIdentifier) || (value.constructor?.name === "ObjectIdentifier")) {
|
|
378
|
+
this.tagNumber = ASN1UniversalType.objectIdentifier;
|
|
413
379
|
this.objectIdentifier = value;
|
|
414
380
|
}
|
|
415
381
|
else if (Array.isArray(value)) {
|
|
416
|
-
this.construction =
|
|
417
|
-
this.tagNumber =
|
|
382
|
+
this.construction = ASN1Construction.constructed;
|
|
383
|
+
this.tagNumber = ASN1UniversalType.sequence;
|
|
418
384
|
this.sequence = value.map((sub) => {
|
|
419
385
|
const ret = new BERElement();
|
|
420
386
|
ret.encode(sub);
|
|
@@ -435,22 +401,22 @@ class BERElement extends x690_1.default {
|
|
|
435
401
|
}
|
|
436
402
|
}
|
|
437
403
|
static fromSequence(sequence) {
|
|
438
|
-
const ret = new BERElement(
|
|
404
|
+
const ret = new BERElement(ASN1TagClass.universal, ASN1Construction.constructed, ASN1UniversalType.sequence);
|
|
439
405
|
ret.sequence = sequence.filter((element) => Boolean(element));
|
|
440
406
|
return ret;
|
|
441
407
|
}
|
|
442
408
|
static fromSet(set) {
|
|
443
|
-
const ret = new BERElement(
|
|
409
|
+
const ret = new BERElement(ASN1TagClass.universal, ASN1Construction.constructed, ASN1UniversalType.set);
|
|
444
410
|
ret.set = set.filter((element) => Boolean(element));
|
|
445
411
|
return ret;
|
|
446
412
|
}
|
|
447
413
|
static fromSetOf(set) {
|
|
448
|
-
const ret = new BERElement(
|
|
414
|
+
const ret = new BERElement(ASN1TagClass.universal, ASN1Construction.constructed, ASN1UniversalType.set);
|
|
449
415
|
ret.setOf = set.filter((element) => Boolean(element));
|
|
450
416
|
return ret;
|
|
451
417
|
}
|
|
452
418
|
get inner() {
|
|
453
|
-
if (this.construction !==
|
|
419
|
+
if (this.construction !== ASN1Construction.constructed) {
|
|
454
420
|
throw new errors.ASN1ConstructionError("An explicitly-encoded element cannot be encoded using "
|
|
455
421
|
+ "primitive construction.", this);
|
|
456
422
|
}
|
|
@@ -471,12 +437,11 @@ class BERElement extends x690_1.default {
|
|
|
471
437
|
return ret;
|
|
472
438
|
}
|
|
473
439
|
set inner(value) {
|
|
474
|
-
this.construction =
|
|
440
|
+
this.construction = ASN1Construction.constructed;
|
|
475
441
|
this._value = [value];
|
|
476
442
|
}
|
|
477
|
-
constructor(tagClass =
|
|
443
|
+
constructor(tagClass = ASN1TagClass.universal, construction = ASN1Construction.primitive, tagNumber = ASN1UniversalType.endOfContent, value = undefined) {
|
|
478
444
|
super();
|
|
479
|
-
this._value = new Uint8Array(0);
|
|
480
445
|
this.encode(value);
|
|
481
446
|
this.tagClass = tagClass;
|
|
482
447
|
this.construction = construction;
|
|
@@ -492,21 +457,21 @@ class BERElement extends x690_1.default {
|
|
|
492
457
|
let cursor = 0;
|
|
493
458
|
switch (bytes[cursor] & 0b11000000) {
|
|
494
459
|
case (0b00000000):
|
|
495
|
-
this.tagClass =
|
|
460
|
+
this.tagClass = ASN1TagClass.universal;
|
|
496
461
|
break;
|
|
497
462
|
case (0b01000000):
|
|
498
|
-
this.tagClass =
|
|
463
|
+
this.tagClass = ASN1TagClass.application;
|
|
499
464
|
break;
|
|
500
465
|
case (0b10000000):
|
|
501
|
-
this.tagClass =
|
|
466
|
+
this.tagClass = ASN1TagClass.context;
|
|
502
467
|
break;
|
|
503
468
|
case (0b11000000):
|
|
504
|
-
this.tagClass =
|
|
469
|
+
this.tagClass = ASN1TagClass.private;
|
|
505
470
|
break;
|
|
506
|
-
default: this.tagClass =
|
|
471
|
+
default: this.tagClass = ASN1TagClass.universal;
|
|
507
472
|
}
|
|
508
473
|
this.construction = ((bytes[cursor] & 0b00100000)
|
|
509
|
-
?
|
|
474
|
+
? ASN1Construction.constructed : ASN1Construction.primitive);
|
|
510
475
|
this.tagNumber = (bytes[cursor] & 0b00011111);
|
|
511
476
|
cursor++;
|
|
512
477
|
if (this.tagNumber >= 31) {
|
|
@@ -565,7 +530,7 @@ class BERElement extends x690_1.default {
|
|
|
565
530
|
return (cursor + length);
|
|
566
531
|
}
|
|
567
532
|
else {
|
|
568
|
-
if (this.construction !==
|
|
533
|
+
if (this.construction !== ASN1Construction.constructed) {
|
|
569
534
|
throw new errors.ASN1ConstructionError("Indefinite length ASN.1 element was not of constructed construction.", this);
|
|
570
535
|
}
|
|
571
536
|
const startOfValue = ++cursor;
|
|
@@ -573,9 +538,9 @@ class BERElement extends x690_1.default {
|
|
|
573
538
|
while (sentinel < bytes.length) {
|
|
574
539
|
const child = new BERElement();
|
|
575
540
|
sentinel += child.fromBytes(bytes.subarray(sentinel));
|
|
576
|
-
if (child.tagClass ===
|
|
577
|
-
&& child.construction ===
|
|
578
|
-
&& child.tagNumber ===
|
|
541
|
+
if (child.tagClass === ASN1TagClass.universal
|
|
542
|
+
&& child.construction === ASN1Construction.primitive
|
|
543
|
+
&& child.tagNumber === ASN1UniversalType.endOfContent
|
|
579
544
|
&& child.value.length === 0)
|
|
580
545
|
break;
|
|
581
546
|
}
|
|
@@ -596,7 +561,7 @@ class BERElement extends x690_1.default {
|
|
|
596
561
|
}
|
|
597
562
|
}
|
|
598
563
|
lengthLength(valueLength) {
|
|
599
|
-
if (BERElement.lengthEncodingPreference ===
|
|
564
|
+
if (BERElement.lengthEncodingPreference === LengthEncodingPreference.indefinite) {
|
|
600
565
|
return 1;
|
|
601
566
|
}
|
|
602
567
|
const len = valueLength ?? this.valueLength();
|
|
@@ -629,7 +594,7 @@ class BERElement extends x690_1.default {
|
|
|
629
594
|
return len;
|
|
630
595
|
}
|
|
631
596
|
tlvLength() {
|
|
632
|
-
const eoc_bytes = (BERElement.lengthEncodingPreference ===
|
|
597
|
+
const eoc_bytes = (BERElement.lengthEncodingPreference === LengthEncodingPreference.indefinite)
|
|
633
598
|
? 2
|
|
634
599
|
: 0;
|
|
635
600
|
const value_len = this.valueLength();
|
|
@@ -641,8 +606,8 @@ class BERElement extends x690_1.default {
|
|
|
641
606
|
tagAndLengthBytes() {
|
|
642
607
|
const tagBytes = [0x00];
|
|
643
608
|
tagBytes[0] |= (this.tagClass << 6);
|
|
644
|
-
tagBytes[0] |= ((BERElement.lengthEncodingPreference ===
|
|
645
|
-
|| this.construction ===
|
|
609
|
+
tagBytes[0] |= ((BERElement.lengthEncodingPreference === LengthEncodingPreference.indefinite)
|
|
610
|
+
|| this.construction === ASN1Construction.constructed)
|
|
646
611
|
? (1 << 5)
|
|
647
612
|
: 0;
|
|
648
613
|
if (this.tagNumber < 31) {
|
|
@@ -663,7 +628,7 @@ class BERElement extends x690_1.default {
|
|
|
663
628
|
let lengthOctets = [0x00];
|
|
664
629
|
const value_len = this.valueLength();
|
|
665
630
|
switch (BERElement.lengthEncodingPreference) {
|
|
666
|
-
case (
|
|
631
|
+
case (LengthEncodingPreference.definite): {
|
|
667
632
|
if (value_len < 127) {
|
|
668
633
|
lengthOctets[0] = value_len;
|
|
669
634
|
}
|
|
@@ -682,7 +647,7 @@ class BERElement extends x690_1.default {
|
|
|
682
647
|
}
|
|
683
648
|
break;
|
|
684
649
|
}
|
|
685
|
-
case (
|
|
650
|
+
case (LengthEncodingPreference.indefinite): {
|
|
686
651
|
lengthOctets = [0b10000000];
|
|
687
652
|
break;
|
|
688
653
|
}
|
|
@@ -700,13 +665,13 @@ class BERElement extends x690_1.default {
|
|
|
700
665
|
...(Array.isArray(this._value)
|
|
701
666
|
? this._value.flatMap((el) => el.toBuffers())
|
|
702
667
|
: [this._value]),
|
|
703
|
-
...(BERElement.lengthEncodingPreference ===
|
|
668
|
+
...(BERElement.lengthEncodingPreference === LengthEncodingPreference.indefinite
|
|
704
669
|
? [new Uint8Array(2)]
|
|
705
670
|
: []),
|
|
706
671
|
];
|
|
707
672
|
}
|
|
708
673
|
deconstruct(dataType) {
|
|
709
|
-
if (this.construction ===
|
|
674
|
+
if (this.construction === ASN1Construction.primitive) {
|
|
710
675
|
return this.value;
|
|
711
676
|
}
|
|
712
677
|
else {
|
|
@@ -715,10 +680,10 @@ class BERElement extends x690_1.default {
|
|
|
715
680
|
const appendy = [];
|
|
716
681
|
const substrings = this.sequence;
|
|
717
682
|
for (const substring of substrings) {
|
|
718
|
-
if (substring.tagClass !==
|
|
683
|
+
if (substring.tagClass !== ASN1TagClass.universal) {
|
|
719
684
|
throw new errors.ASN1ConstructionError(`Invalid tag class in constructed ${dataType}. Must be UNIVERSAL`, this);
|
|
720
685
|
}
|
|
721
|
-
if (substring.tagNumber !==
|
|
686
|
+
if (substring.tagNumber !== ASN1UniversalType.octetString) {
|
|
722
687
|
throw new errors.ASN1ConstructionError(`Invalid tag number in constructed ${dataType}. Must be 4 (OCTET STRING).`, this);
|
|
723
688
|
}
|
|
724
689
|
substring.recursionCount = (this.recursionCount + 1);
|
|
@@ -742,5 +707,3 @@ class BERElement extends x690_1.default {
|
|
|
742
707
|
return encodedElements;
|
|
743
708
|
}
|
|
744
709
|
}
|
|
745
|
-
BERElement.lengthEncodingPreference = values_1.LengthEncodingPreference.definite;
|
|
746
|
-
exports.default = BERElement;
|