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