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,2 +1,2 @@
|
|
|
1
|
-
import { BOOLEAN } from "../../../macros";
|
|
1
|
+
import { BOOLEAN } from "../../../macros.mjs";
|
|
2
2
|
export default function decodeBoolean(value: Uint8Array): BOOLEAN;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as errors from "../../../errors.mjs";
|
|
2
|
+
export default function decodeBoolean(value) {
|
|
3
|
+
if (value.length !== 1) {
|
|
4
|
+
throw new errors.ASN1SizeError("BOOLEAN not one byte");
|
|
5
|
+
}
|
|
6
|
+
if ((value[0] !== 0x00) && (value[0] !== 0xFF)) {
|
|
7
|
+
throw new errors.ASN1Error("BOOLEAN must be encoded as 0xFF or 0x00.");
|
|
8
|
+
}
|
|
9
|
+
return (value[0] !== 0);
|
|
10
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { BIT_STRING } from "../../../macros";
|
|
1
|
+
import { BIT_STRING } from "../../../macros.mjs";
|
|
2
2
|
export default function decodeBitString(value: Uint8Array): BIT_STRING;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as errors from "../../../errors.mjs";
|
|
2
|
+
import { TRUE_BIT, FALSE_BIT } from "../../../macros.mjs";
|
|
3
|
+
export default function decodeBitString(value) {
|
|
4
|
+
if (value.length === 0) {
|
|
5
|
+
throw new errors.ASN1Error("ASN.1 BIT STRING cannot be encoded on zero bytes!");
|
|
6
|
+
}
|
|
7
|
+
if (value.length === 1 && value[0] !== 0) {
|
|
8
|
+
throw new errors.ASN1Error("ASN.1 BIT STRING encoded with deceptive first byte!");
|
|
9
|
+
}
|
|
10
|
+
if (value[0] > 7) {
|
|
11
|
+
throw new errors.ASN1Error("First byte of an ASN.1 BIT STRING must be <= 7!");
|
|
12
|
+
}
|
|
13
|
+
const ret = [];
|
|
14
|
+
for (let i = 1; i < value.length; i++) {
|
|
15
|
+
ret.push(((value[i] & 0b10000000) ? TRUE_BIT : FALSE_BIT), ((value[i] & 0b01000000) ? TRUE_BIT : FALSE_BIT), ((value[i] & 0b00100000) ? TRUE_BIT : FALSE_BIT), ((value[i] & 0b00010000) ? TRUE_BIT : FALSE_BIT), ((value[i] & 0b00001000) ? TRUE_BIT : FALSE_BIT), ((value[i] & 0b00000100) ? TRUE_BIT : FALSE_BIT), ((value[i] & 0b00000010) ? TRUE_BIT : FALSE_BIT), ((value[i] & 0b00000001) ? TRUE_BIT : FALSE_BIT));
|
|
16
|
+
}
|
|
17
|
+
for (const bit of ret.slice((ret.length - value[0]))) {
|
|
18
|
+
if (bit)
|
|
19
|
+
throw new errors.ASN1Error("BIT STRING had a trailing set bit.");
|
|
20
|
+
}
|
|
21
|
+
ret.length -= value[0];
|
|
22
|
+
return new Uint8ClampedArray(ret);
|
|
23
|
+
}
|
package/dist/{node/codecs/der/decoders/decodeBoolean.d.ts → codecs/der/decoders/decodeBoolean.d.mts}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { BOOLEAN } from "../../../macros";
|
|
1
|
+
import { BOOLEAN } from "../../../macros.mjs";
|
|
2
2
|
export default function decodeBoolean(value: Uint8Array): BOOLEAN;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as errors from "../../../errors.mjs";
|
|
2
|
+
export default function decodeBoolean(value) {
|
|
3
|
+
if (value.length !== 1) {
|
|
4
|
+
throw new errors.ASN1SizeError("BOOLEAN not one byte");
|
|
5
|
+
}
|
|
6
|
+
if ((value[0] !== 0x00) && (value[0] !== 0xFF)) {
|
|
7
|
+
throw new errors.ASN1Error("BOOLEAN must be encoded as 0xFF or 0x00.");
|
|
8
|
+
}
|
|
9
|
+
return (value[0] !== 0);
|
|
10
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { DURATION } from "../../../macros";
|
|
1
|
+
import { DURATION } from "../../../macros.mjs";
|
|
2
2
|
export default function decodeDuration(bytes: Uint8Array): DURATION;
|
package/dist/{node/codecs/der/decoders/decodeDuration.js → codecs/der/decoders/decodeDuration.mjs}
RENAMED
|
@@ -1,48 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.default = decodeDuration;
|
|
40
|
-
const convertBytesToText_1 = __importDefault(require("../../../utils/convertBytesToText"));
|
|
41
|
-
const errors = __importStar(require("../../../errors"));
|
|
42
|
-
const types_1 = require("../../../types");
|
|
43
|
-
const values_1 = require("../../../values");
|
|
44
|
-
function decodeDuration(bytes) {
|
|
45
|
-
const str = (0, convertBytesToText_1.default)(bytes);
|
|
1
|
+
import convertBytesToText from "../../../utils/convertBytesToText.mjs";
|
|
2
|
+
import * as errors from "../../../errors.mjs";
|
|
3
|
+
import { DURATION_EQUIVALENT } from "../../../types/index.mjs";
|
|
4
|
+
import { datetimeRegex } from "../../../values.mjs";
|
|
5
|
+
export default function decodeDuration(bytes) {
|
|
6
|
+
const str = convertBytesToText(bytes);
|
|
46
7
|
if (str.indexOf(",") !== -1) {
|
|
47
8
|
throw new errors.ASN1Error("Comma prohibited in DURATION when using the Distinguished or Canonical Encoding Rules.");
|
|
48
9
|
}
|
|
@@ -67,9 +28,9 @@ function decodeDuration(bytes) {
|
|
|
67
28
|
fractional_value: fractionValue,
|
|
68
29
|
};
|
|
69
30
|
}
|
|
70
|
-
return new
|
|
31
|
+
return new DURATION_EQUIVALENT(undefined, undefined, weeks, undefined, undefined, undefined, undefined, fractional_part);
|
|
71
32
|
}
|
|
72
|
-
const match =
|
|
33
|
+
const match = datetimeRegex.exec(str);
|
|
73
34
|
if (!match) {
|
|
74
35
|
throw new errors.ASN1Error(`Malformed DURATION ${str}.`);
|
|
75
36
|
}
|
|
@@ -102,5 +63,5 @@ function decodeDuration(bytes) {
|
|
|
102
63
|
const hours = match[4] ? Number.parseInt(match[4], 10) : undefined;
|
|
103
64
|
const minutes = match[5] ? Number.parseInt(match[5], 10) : undefined;
|
|
104
65
|
const seconds = match[6] ? Number.parseInt(match[6], 10) : undefined;
|
|
105
|
-
return new
|
|
66
|
+
return new DURATION_EQUIVALENT(years, months, undefined, days, hours, minutes, seconds, fractional_part);
|
|
106
67
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GeneralizedTime } from "../../../macros";
|
|
1
|
+
import { GeneralizedTime } from "../../../macros.mjs";
|
|
2
2
|
export default function decodeGeneralizedTime(value: Uint8Array): GeneralizedTime;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import convertBytesToText from "../../../utils/convertBytesToText.mjs";
|
|
2
|
+
import * as errors from "../../../errors.mjs";
|
|
3
|
+
import validateDateTime from "../../../validators/validateDateTime.mjs";
|
|
4
|
+
export default function decodeGeneralizedTime(value) {
|
|
5
|
+
const dateString = convertBytesToText(value);
|
|
6
|
+
if (!dateString.endsWith("Z")) {
|
|
7
|
+
throw new errors.ASN1Error("Malformed DER GeneralizedTime string: must use UTC timezone");
|
|
8
|
+
}
|
|
9
|
+
const year = Number(dateString.slice(0, 4));
|
|
10
|
+
const month = (Number(dateString.slice(4, 6)) - 1);
|
|
11
|
+
const date = Number(dateString.slice(6, 8));
|
|
12
|
+
const hours = Number(dateString.slice(8, 10));
|
|
13
|
+
const minutes = Number(dateString.slice(10, 12));
|
|
14
|
+
const seconds = Number(dateString.slice(12, 14));
|
|
15
|
+
if (dateString[14] === '.') {
|
|
16
|
+
let i = 15;
|
|
17
|
+
while (value[i] && value[i] >= 0x30 && value[i] <= 0x39)
|
|
18
|
+
i++;
|
|
19
|
+
if (i === 15) {
|
|
20
|
+
throw new errors.ASN1Error("Malformed DER GeneralizedTime string: trailing stop character");
|
|
21
|
+
}
|
|
22
|
+
if (dateString[i] === 'Z') {
|
|
23
|
+
i++;
|
|
24
|
+
}
|
|
25
|
+
if (dateString[i] !== undefined) {
|
|
26
|
+
throw new errors.ASN1Error("Malformed DER GeneralizedTime string: trailing data");
|
|
27
|
+
}
|
|
28
|
+
const fractionString = `0.${dateString.slice(15, i)}`;
|
|
29
|
+
if (fractionString.endsWith("0")) {
|
|
30
|
+
throw new errors.ASN1Error("Malformed DER GeneralizedTime string: trailing 0 in milliseconds");
|
|
31
|
+
}
|
|
32
|
+
const fraction = Number.parseFloat(fractionString);
|
|
33
|
+
const milliseconds = Math.floor(1000 * fraction);
|
|
34
|
+
validateDateTime("GeneralizedTime", year, month, date, hours, minutes, seconds);
|
|
35
|
+
return new Date(Date.UTC(year, month, date, hours, minutes, seconds, milliseconds));
|
|
36
|
+
}
|
|
37
|
+
else if (dateString[14] !== 'Z') {
|
|
38
|
+
throw new errors.ASN1Error("Malformed DER GeneralizedTime string: trailing data");
|
|
39
|
+
}
|
|
40
|
+
validateDateTime("GeneralizedTime", year, month, date, hours, minutes, seconds);
|
|
41
|
+
return new Date(Date.UTC(year, month, date, hours, minutes, seconds));
|
|
42
|
+
}
|
package/dist/{node/codecs/der/decoders/decodeReal.d.ts → codecs/der/decoders/decodeReal.d.mts}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { REAL } from "../../../macros";
|
|
1
|
+
import { REAL } from "../../../macros.mjs";
|
|
2
2
|
export default function decodeReal(value: Uint8Array): REAL;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import * as errors from "../../../errors.mjs";
|
|
2
|
+
import { ASN1SpecialRealValue, ASN1RealEncodingBase, ASN1RealEncodingScale, nr3Regex, } from "../../../values.mjs";
|
|
3
|
+
import convertBytesToText from "../../../utils/convertBytesToText.mjs";
|
|
4
|
+
import decodeUnsignedBigEndianInteger from "../../../utils/decodeUnsignedBigEndianInteger.mjs";
|
|
5
|
+
import decodeSignedBigEndianInteger from "../../../utils/decodeSignedBigEndianInteger.mjs";
|
|
6
|
+
export default function decodeReal(value) {
|
|
7
|
+
if (value.length === 0)
|
|
8
|
+
return 0.0;
|
|
9
|
+
switch (value[0] & 0b11000000) {
|
|
10
|
+
case (0b01000000): {
|
|
11
|
+
if (value[0] === ASN1SpecialRealValue.notANumber)
|
|
12
|
+
return NaN;
|
|
13
|
+
if (value[0] === ASN1SpecialRealValue.minusZero)
|
|
14
|
+
return -0.0;
|
|
15
|
+
if (value[0] === ASN1SpecialRealValue.plusInfinity)
|
|
16
|
+
return Infinity;
|
|
17
|
+
if (value[0] === ASN1SpecialRealValue.minusInfinity)
|
|
18
|
+
return -Infinity;
|
|
19
|
+
throw new errors.ASN1UndefinedError("Unrecognized special REAL value!");
|
|
20
|
+
}
|
|
21
|
+
case (0b00000000): {
|
|
22
|
+
const realString = convertBytesToText(value.subarray(1));
|
|
23
|
+
switch (value[0] & 0b00111111) {
|
|
24
|
+
case 1:
|
|
25
|
+
case 2:
|
|
26
|
+
throw new errors.ASN1Error("DER prohibits NR1 and NR2 Base-10 REAL");
|
|
27
|
+
case 3: {
|
|
28
|
+
if (!nr3Regex.test(realString))
|
|
29
|
+
throw new errors.ASN1Error("Malformed NR3 Base-10 REAL");
|
|
30
|
+
return Number.parseFloat(realString.replace(",", "."));
|
|
31
|
+
}
|
|
32
|
+
default:
|
|
33
|
+
throw new errors.ASN1UndefinedError("Undefined Base-10 REAL encoding.");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
case (0b10000000):
|
|
37
|
+
case (0b11000000): {
|
|
38
|
+
const sign = ((value[0] & 0b01000000) ? -1 : 1);
|
|
39
|
+
const base = ((flag) => {
|
|
40
|
+
switch (flag) {
|
|
41
|
+
case (ASN1RealEncodingBase.base2): return 2;
|
|
42
|
+
case (ASN1RealEncodingBase.base8): return 8;
|
|
43
|
+
case (ASN1RealEncodingBase.base16): return 16;
|
|
44
|
+
default:
|
|
45
|
+
throw new errors.ASN1Error("Impossible REAL encoding base encountered.");
|
|
46
|
+
}
|
|
47
|
+
})(value[0] & 0b00110000);
|
|
48
|
+
const scale = ((flag) => {
|
|
49
|
+
switch (flag) {
|
|
50
|
+
case (ASN1RealEncodingScale.scale0): return 0;
|
|
51
|
+
case (ASN1RealEncodingScale.scale1): return 1;
|
|
52
|
+
case (ASN1RealEncodingScale.scale2): return 2;
|
|
53
|
+
case (ASN1RealEncodingScale.scale3): return 3;
|
|
54
|
+
default:
|
|
55
|
+
throw new errors.ASN1Error("Impossible REAL encoding scale encountered.");
|
|
56
|
+
}
|
|
57
|
+
})(value[0] & 0b00001100);
|
|
58
|
+
let exponent;
|
|
59
|
+
let mantissa;
|
|
60
|
+
switch (value[0] & 0b00000011) {
|
|
61
|
+
case (0b00000000): {
|
|
62
|
+
if (value.length < 3)
|
|
63
|
+
throw new errors.ASN1TruncationError("Binary-encoded REAL truncated.");
|
|
64
|
+
exponent = decodeSignedBigEndianInteger(value.subarray(1, 2));
|
|
65
|
+
mantissa = decodeUnsignedBigEndianInteger(value.subarray(2));
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case (0b00000001): {
|
|
69
|
+
if (value.length < 4)
|
|
70
|
+
throw new errors.ASN1TruncationError("Binary-encoded REAL truncated.");
|
|
71
|
+
exponent = decodeSignedBigEndianInteger(value.subarray(1, 3));
|
|
72
|
+
mantissa = decodeUnsignedBigEndianInteger(value.subarray(3));
|
|
73
|
+
if (exponent <= 127 && exponent >= -128) {
|
|
74
|
+
throw new errors.ASN1Error("DER-encoded binary-encoded REAL could have encoded exponent on fewer octets.");
|
|
75
|
+
}
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
case (0b00000010):
|
|
79
|
+
case (0b00000011): {
|
|
80
|
+
throw new errors.ASN1Error("DER-encoded binary REAL encoded in a way that would "
|
|
81
|
+
+ "either overflow or encode on too many octets.");
|
|
82
|
+
}
|
|
83
|
+
default:
|
|
84
|
+
throw new errors.ASN1Error("Impossible binary REAL exponent encoding encountered.");
|
|
85
|
+
}
|
|
86
|
+
if (mantissa !== 0 && !(mantissa % 2)) {
|
|
87
|
+
throw new errors.ASN1Error("DER-encoded REAL may not have an even non-zero mantissa.");
|
|
88
|
+
}
|
|
89
|
+
return (sign * mantissa * Math.pow(2, scale) * Math.pow(base, exponent));
|
|
90
|
+
}
|
|
91
|
+
default: {
|
|
92
|
+
throw new errors.ASN1Error("Impossible REAL format encountered.");
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import DERElement from "../../der.mjs";
|
|
2
|
+
export default function decodeSequence(value) {
|
|
3
|
+
if (value.length === 0) {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
const encodedElements = [];
|
|
7
|
+
let i = 0;
|
|
8
|
+
while (i < value.length) {
|
|
9
|
+
const next = new DERElement();
|
|
10
|
+
i += next.fromBytes(value.subarray(i));
|
|
11
|
+
encodedElements.push(next);
|
|
12
|
+
}
|
|
13
|
+
return encodedElements;
|
|
14
|
+
}
|
package/dist/{node/codecs/der/decoders/decodeUTCTime.d.ts → codecs/der/decoders/decodeUTCTime.d.mts}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { UTCTime } from "../../../macros";
|
|
1
|
+
import { UTCTime } from "../../../macros.mjs";
|
|
2
2
|
export default function decodeUTCTime(value: Uint8Array): UTCTime;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import convertBytesToText from "../../../utils/convertBytesToText.mjs";
|
|
2
|
+
import * as errors from "../../../errors.mjs";
|
|
3
|
+
import validateDateTime from "../../../validators/validateDateTime.mjs";
|
|
4
|
+
const DER_UTC_TIME_LENGTH = "920521000000Z".length;
|
|
5
|
+
export default function decodeUTCTime(value) {
|
|
6
|
+
if (value.length !== DER_UTC_TIME_LENGTH) {
|
|
7
|
+
throw new errors.ASN1Error("Malformed DER UTCTime string: not a valid length");
|
|
8
|
+
}
|
|
9
|
+
const dateString = convertBytesToText(value);
|
|
10
|
+
if (!dateString.endsWith("Z")) {
|
|
11
|
+
throw new errors.ASN1Error("Malformed DER UTCTime string: not UTC timezone");
|
|
12
|
+
}
|
|
13
|
+
let year = Number(dateString.slice(0, 2));
|
|
14
|
+
const month = (Number(dateString.slice(2, 4)) - 1);
|
|
15
|
+
const date = Number(dateString.slice(4, 6));
|
|
16
|
+
const hours = Number(dateString.slice(6, 8));
|
|
17
|
+
const minutes = Number(dateString.slice(8, 10));
|
|
18
|
+
const seconds = Number(dateString.slice(10, 12));
|
|
19
|
+
year = (year <= 49)
|
|
20
|
+
? (2000 + year)
|
|
21
|
+
: (1900 + year);
|
|
22
|
+
validateDateTime("UTCTime", year, month, date, hours, minutes, seconds);
|
|
23
|
+
return new Date(Date.UTC(year, month, date, hours, minutes, seconds));
|
|
24
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import ASN1Element from "../asn1";
|
|
2
|
-
import { ASN1Construction, ASN1TagClass } from "../values";
|
|
3
|
-
import CharacterString from "../types/CharacterString";
|
|
4
|
-
import X690Element from "../x690";
|
|
5
|
-
import { BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION } from "../macros";
|
|
1
|
+
import ASN1Element from "../asn1.mjs";
|
|
2
|
+
import { ASN1Construction, ASN1TagClass } from "../values.mjs";
|
|
3
|
+
import CharacterString from "../types/CharacterString.mjs";
|
|
4
|
+
import X690Element from "../x690.mjs";
|
|
5
|
+
import { BOOLEAN, BIT_STRING, OCTET_STRING, ObjectDescriptor, EXTERNAL, REAL, EMBEDDED_PDV, UTF8String, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, DURATION } from "../macros.mjs";
|
|
6
6
|
export default class DERElement extends X690Element {
|
|
7
7
|
private _value;
|
|
8
8
|
private _currentValueLength;
|