asn1-ts 8.0.5 → 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} +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
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import * as errors from "../../../errors.mjs";
|
|
2
|
+
import { ASN1SpecialRealValue, ASN1RealEncodingBase, ASN1RealEncodingScale, nr1Regex, nr2Regex, 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
|
+
if (!nr1Regex.test(realString))
|
|
26
|
+
throw new errors.ASN1Error("Malformed NR1 Base-10 REAL");
|
|
27
|
+
return Number.parseFloat(realString);
|
|
28
|
+
}
|
|
29
|
+
case 2: {
|
|
30
|
+
if (!nr2Regex.test(realString))
|
|
31
|
+
throw new errors.ASN1Error("Malformed NR2 Base-10 REAL");
|
|
32
|
+
return Number.parseFloat(realString.replace(",", "."));
|
|
33
|
+
}
|
|
34
|
+
case 3: {
|
|
35
|
+
if (!nr3Regex.test(realString))
|
|
36
|
+
throw new errors.ASN1Error("Malformed NR3 Base-10 REAL");
|
|
37
|
+
return Number.parseFloat(realString.replace(",", "."));
|
|
38
|
+
}
|
|
39
|
+
default:
|
|
40
|
+
throw new errors.ASN1UndefinedError("Undefined Base-10 REAL encoding.");
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
case (0b10000000):
|
|
44
|
+
case (0b11000000): {
|
|
45
|
+
const sign = ((value[0] & 0b01000000) ? -1 : 1);
|
|
46
|
+
const base = ((flag) => {
|
|
47
|
+
switch (flag) {
|
|
48
|
+
case (ASN1RealEncodingBase.base2): return 2;
|
|
49
|
+
case (ASN1RealEncodingBase.base8): return 8;
|
|
50
|
+
case (ASN1RealEncodingBase.base16): return 16;
|
|
51
|
+
default:
|
|
52
|
+
throw new errors.ASN1Error("Impossible REAL encoding base encountered.");
|
|
53
|
+
}
|
|
54
|
+
})(value[0] & 0b00110000);
|
|
55
|
+
const scale = ((flag) => {
|
|
56
|
+
switch (flag) {
|
|
57
|
+
case (ASN1RealEncodingScale.scale0): return 0;
|
|
58
|
+
case (ASN1RealEncodingScale.scale1): return 1;
|
|
59
|
+
case (ASN1RealEncodingScale.scale2): return 2;
|
|
60
|
+
case (ASN1RealEncodingScale.scale3): return 3;
|
|
61
|
+
default:
|
|
62
|
+
throw new errors.ASN1Error("Impossible REAL encoding scale encountered.");
|
|
63
|
+
}
|
|
64
|
+
})(value[0] & 0b00001100);
|
|
65
|
+
let exponent;
|
|
66
|
+
let mantissa;
|
|
67
|
+
switch (value[0] & 0b00000011) {
|
|
68
|
+
case (0b00000000): {
|
|
69
|
+
if (value.length < 3)
|
|
70
|
+
throw new errors.ASN1TruncationError("Binary-encoded REAL truncated.");
|
|
71
|
+
exponent = decodeSignedBigEndianInteger(value.subarray(1, 2));
|
|
72
|
+
mantissa = decodeUnsignedBigEndianInteger(value.subarray(2));
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
case (0b00000001): {
|
|
76
|
+
if (value.length < 4)
|
|
77
|
+
throw new errors.ASN1TruncationError("Binary-encoded REAL truncated.");
|
|
78
|
+
exponent = decodeSignedBigEndianInteger(value.subarray(1, 3));
|
|
79
|
+
mantissa = decodeUnsignedBigEndianInteger(value.subarray(3));
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case (0b00000010): {
|
|
83
|
+
if (value.length < 5)
|
|
84
|
+
throw new errors.ASN1TruncationError("Binary-encoded REAL truncated.");
|
|
85
|
+
exponent = decodeSignedBigEndianInteger(value.subarray(1, 4));
|
|
86
|
+
mantissa = decodeUnsignedBigEndianInteger(value.subarray(4));
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case (0b00000011): {
|
|
90
|
+
if (value.length < 3)
|
|
91
|
+
throw new errors.ASN1TruncationError("Binary-encoded REAL truncated.");
|
|
92
|
+
const exponentLength = value[1];
|
|
93
|
+
if (value.length < (3 + exponentLength)) {
|
|
94
|
+
throw new errors.ASN1TruncationError("Binary-encoded REAL truncated.");
|
|
95
|
+
}
|
|
96
|
+
exponent = decodeSignedBigEndianInteger(value.subarray(2, (2 + exponentLength)));
|
|
97
|
+
mantissa = decodeUnsignedBigEndianInteger(value.subarray((2 + exponentLength)));
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
default:
|
|
101
|
+
throw new errors.ASN1Error("Impossible binary REAL exponent encoding encountered.");
|
|
102
|
+
}
|
|
103
|
+
return (sign * mantissa * Math.pow(2, scale) * Math.pow(base, exponent));
|
|
104
|
+
}
|
|
105
|
+
default:
|
|
106
|
+
throw new errors.ASN1Error("Impossible REAL format encountered.");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import BERElement from "../../ber.mjs";
|
|
2
|
+
export default function decodeSequence(value) {
|
|
3
|
+
const encodedElements = [];
|
|
4
|
+
let i = 0;
|
|
5
|
+
while (i < value.length) {
|
|
6
|
+
const next = new BERElement();
|
|
7
|
+
i += next.fromBytes(value.subarray(i));
|
|
8
|
+
encodedElements.push(next);
|
|
9
|
+
}
|
|
10
|
+
return encodedElements;
|
|
11
|
+
}
|
package/dist/{node/codecs/ber/decoders/decodeUTCTime.d.ts → codecs/ber/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,45 @@
|
|
|
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 decodeUTCTime(value) {
|
|
5
|
+
const dateString = convertBytesToText(value);
|
|
6
|
+
let year = Number(dateString.slice(0, 2));
|
|
7
|
+
year = (year <= 49)
|
|
8
|
+
? (2000 + year)
|
|
9
|
+
: (1900 + year);
|
|
10
|
+
const month = (Number(dateString.slice(2, 4)) - 1);
|
|
11
|
+
const date = Number(dateString.slice(4, 6));
|
|
12
|
+
const hours = Number(dateString.slice(6, 8));
|
|
13
|
+
const minutes = Number(dateString.slice(8, 10));
|
|
14
|
+
const char10 = dateString.charCodeAt(10);
|
|
15
|
+
const secondsFieldPresent = (char10 >= 0x30 && char10 <= 0x39);
|
|
16
|
+
const seconds = secondsFieldPresent
|
|
17
|
+
? Number(dateString.slice(10, 12))
|
|
18
|
+
: 0;
|
|
19
|
+
let i = secondsFieldPresent ? 12 : 10;
|
|
20
|
+
if (dateString[i] === 'Z') {
|
|
21
|
+
validateDateTime("UTCTime", year, month, date, hours, minutes, seconds);
|
|
22
|
+
return new Date(Date.UTC(year, month, date, hours, minutes, seconds));
|
|
23
|
+
}
|
|
24
|
+
if ((dateString[i] !== '+') && (dateString[i] !== '-')) {
|
|
25
|
+
throw new errors.ASN1Error(`Malformed BER UTCTime: non +/- offset: ${dateString[i]}`);
|
|
26
|
+
}
|
|
27
|
+
const isPositive = dateString[i] === '+';
|
|
28
|
+
i++;
|
|
29
|
+
let j = 0;
|
|
30
|
+
while (value[i + j] && value[i + j] >= 0x30 && value[i + j] <= 0x39)
|
|
31
|
+
j++;
|
|
32
|
+
if (j !== 4) {
|
|
33
|
+
throw new errors.ASN1Error("Malformed BER UTCTime: non four-digit offset");
|
|
34
|
+
}
|
|
35
|
+
i += j;
|
|
36
|
+
if (dateString[i] !== undefined) {
|
|
37
|
+
throw new errors.ASN1Error("Malformed BER UTCTime: trailing data");
|
|
38
|
+
}
|
|
39
|
+
const offsetHour = Number.parseInt(dateString.slice(i - 4, i - 2), 10);
|
|
40
|
+
const offsetMinute = Number.parseInt(dateString.slice(i - 2, i), 10);
|
|
41
|
+
let epochTimeInMS = Date.UTC(year, month, date, hours, minutes, seconds);
|
|
42
|
+
const sign = isPositive ? -1 : 1;
|
|
43
|
+
epochTimeInMS += sign * ((offsetHour * 60 * 60 * 1000) + (offsetMinute * 60 * 1000));
|
|
44
|
+
return new Date(epochTimeInMS);
|
|
45
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GeneralString } from "../../../macros";
|
|
1
|
+
import { GeneralString } from "../../../macros.mjs";
|
|
2
2
|
export default function encodeGeneralString(value: GeneralString): Uint8Array;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import isGeneralCharacter from "../../../validators/isGeneralCharacter.mjs";
|
|
2
|
+
import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
|
|
3
|
+
import { ASN1CharactersError } from "../../../errors.mjs";
|
|
4
|
+
export default function encodeGeneralString(value) {
|
|
5
|
+
const bytes = convertTextToBytes(value);
|
|
6
|
+
for (const char of bytes) {
|
|
7
|
+
if (!isGeneralCharacter(char)) {
|
|
8
|
+
throw new ASN1CharactersError("GeneralString can only contain ASCII characters."
|
|
9
|
+
+ `Encountered character code ${char}.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return bytes;
|
|
13
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GraphicString } from "../../../macros";
|
|
1
|
+
import { GraphicString } from "../../../macros.mjs";
|
|
2
2
|
export default function encodeGraphicString(value: GraphicString): Uint8Array;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import isGraphicCharacter from "../../../validators/isGraphicCharacter.mjs";
|
|
2
|
+
import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
|
|
3
|
+
import { ASN1CharactersError } from "../../../errors.mjs";
|
|
4
|
+
export default function encodeGraphicString(value) {
|
|
5
|
+
const bytes = convertTextToBytes(value);
|
|
6
|
+
for (const char of bytes) {
|
|
7
|
+
if (!isGraphicCharacter(char)) {
|
|
8
|
+
throw new ASN1CharactersError("GraphicString can only contain characters between 0x20 and 0x7E. "
|
|
9
|
+
+ `Encountered character code ${char}.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return bytes;
|
|
13
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { NumericString } from "../../../macros";
|
|
1
|
+
import { NumericString } from "../../../macros.mjs";
|
|
2
2
|
export default function encodeNumericString(value: NumericString): Uint8Array;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import isNumericCharacter from "../../../validators/isNumericCharacter.mjs";
|
|
2
|
+
import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
|
|
3
|
+
import { ASN1CharactersError } from "../../../errors.mjs";
|
|
4
|
+
export default function encodeNumericString(value) {
|
|
5
|
+
const bytes = convertTextToBytes(value);
|
|
6
|
+
for (const char of bytes) {
|
|
7
|
+
if (!isNumericCharacter(char)) {
|
|
8
|
+
throw new ASN1CharactersError("NumericString can only contain characters 0 - 9 and space. "
|
|
9
|
+
+ `Encountered character code ${char}.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return bytes;
|
|
13
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ObjectDescriptor } from "../../../macros";
|
|
1
|
+
import { ObjectDescriptor } from "../../../macros.mjs";
|
|
2
2
|
export default function encodeObjectDescriptor(value: ObjectDescriptor): Uint8Array;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import isObjectDescriptorCharacter from "../../../validators/isObjectDescriptorCharacter.mjs";
|
|
2
|
+
import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
|
|
3
|
+
import { ASN1CharactersError } from "../../../errors.mjs";
|
|
4
|
+
export default function encodeObjectDescriptor(value) {
|
|
5
|
+
const bytes = convertTextToBytes(value);
|
|
6
|
+
for (const char of bytes) {
|
|
7
|
+
if (!isObjectDescriptorCharacter(char)) {
|
|
8
|
+
throw new ASN1CharactersError("ObjectDescriptor can only contain characters between 0x20 and 0x7E. "
|
|
9
|
+
+ `Encountered character code ${char}.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return bytes;
|
|
13
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { PrintableString } from "../../../macros";
|
|
1
|
+
import { PrintableString } from "../../../macros.mjs";
|
|
2
2
|
export default function encodeNumericString(value: PrintableString): Uint8Array;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import isPrintableCharacter from "../../../validators/isPrintableCharacter.mjs";
|
|
2
|
+
import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
|
|
3
|
+
import { ASN1CharactersError } from "../../../errors.mjs";
|
|
4
|
+
import { printableStringCharacters } from "../../../values.mjs";
|
|
5
|
+
export default function encodeNumericString(value) {
|
|
6
|
+
const bytes = convertTextToBytes(value);
|
|
7
|
+
for (const char of bytes) {
|
|
8
|
+
if (!isPrintableCharacter(char)) {
|
|
9
|
+
throw new ASN1CharactersError(`PrintableString can only contain these characters: ${printableStringCharacters}. `
|
|
10
|
+
+ `Encountered character code ${char}.`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return bytes;
|
|
14
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { VisibleString } from "../../../macros";
|
|
1
|
+
import { VisibleString } from "../../../macros.mjs";
|
|
2
2
|
export default function encodeVisibleString(value: VisibleString): Uint8Array;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import isGraphicCharacter from "../../../validators/isGraphicCharacter.mjs";
|
|
2
|
+
import convertTextToBytes from "../../../utils/convertTextToBytes.mjs";
|
|
3
|
+
import { ASN1CharactersError } from "../../../errors.mjs";
|
|
4
|
+
export default function encodeVisibleString(value) {
|
|
5
|
+
const bytes = convertTextToBytes(value);
|
|
6
|
+
for (const char of bytes) {
|
|
7
|
+
if (!isGraphicCharacter(char)) {
|
|
8
|
+
throw new ASN1CharactersError("VisibleString can only contain characters between 0x20 and 0x7E. "
|
|
9
|
+
+ `Encountered character code ${char}.`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return bytes;
|
|
13
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import ASN1Element from "../asn1";
|
|
2
|
-
import { ASN1Construction, ASN1TagClass, LengthEncodingPreference } from "../values";
|
|
3
|
-
import X690Element from "../x690";
|
|
4
|
-
import CharacterString from "../types/CharacterString";
|
|
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, LengthEncodingPreference } from "../values.mjs";
|
|
3
|
+
import X690Element from "../x690.mjs";
|
|
4
|
+
import CharacterString from "../types/CharacterString.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 BERElement extends X690Element {
|
|
7
7
|
static lengthEncodingPreference: LengthEncodingPreference;
|
|
8
8
|
private _value;
|