asn1-ts 6.0.0 → 7.0.3

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.
Files changed (351) hide show
  1. package/README.md +242 -5
  2. package/dist/node/ConstructedElementSpecification.d.ts +11 -11
  3. package/dist/node/ConstructedElementSpecification.js +2 -2
  4. package/dist/node/asn1.d.ts +155 -155
  5. package/dist/node/asn1.js +438 -438
  6. package/dist/node/classes/ABSTRACT-SYNTAX.d.ts +14 -14
  7. package/dist/node/classes/ABSTRACT-SYNTAX.js +2 -2
  8. package/dist/node/classes/TYPE-IDENTIFIER.d.ts +13 -13
  9. package/dist/node/classes/TYPE-IDENTIFIER.js +2 -2
  10. package/dist/node/classes/index.d.ts +2 -2
  11. package/dist/node/classes/index.js +2 -2
  12. package/dist/node/codecs/ber/decoders/decodeBitString.d.ts +2 -2
  13. package/dist/node/codecs/ber/decoders/decodeBitString.js +32 -32
  14. package/dist/node/codecs/ber/decoders/decodeBoolean.d.ts +2 -2
  15. package/dist/node/codecs/ber/decoders/decodeBoolean.js +11 -11
  16. package/dist/node/codecs/ber/decoders/decodeDuration.d.ts +2 -2
  17. package/dist/node/codecs/ber/decoders/decodeDuration.js +68 -68
  18. package/dist/node/codecs/ber/decoders/decodeGeneralizedTime.d.ts +2 -2
  19. package/dist/node/codecs/ber/decoders/decodeGeneralizedTime.js +30 -30
  20. package/dist/node/codecs/ber/decoders/decodeReal.d.ts +2 -2
  21. package/dist/node/codecs/ber/decoders/decodeReal.js +112 -112
  22. package/dist/node/codecs/ber/decoders/decodeSequence.d.ts +3 -3
  23. package/dist/node/codecs/ber/decoders/decodeSequence.js +18 -18
  24. package/dist/node/codecs/ber/decoders/decodeUTCTime.d.ts +2 -2
  25. package/dist/node/codecs/ber/decoders/decodeUTCTime.js +31 -31
  26. package/dist/node/codecs/ber/encoders/encodeGeneralString.d.ts +2 -2
  27. package/dist/node/codecs/ber/encoders/encodeGeneralString.js +17 -17
  28. package/dist/node/codecs/ber/encoders/encodeGeneralString.js.map +1 -1
  29. package/dist/node/codecs/ber/encoders/encodeGraphicString.d.ts +2 -2
  30. package/dist/node/codecs/ber/encoders/encodeGraphicString.js +17 -17
  31. package/dist/node/codecs/ber/encoders/encodeGraphicString.js.map +1 -1
  32. package/dist/node/codecs/ber/encoders/encodeNumericString.d.ts +2 -2
  33. package/dist/node/codecs/ber/encoders/encodeNumericString.js +17 -17
  34. package/dist/node/codecs/ber/encoders/encodeNumericString.js.map +1 -1
  35. package/dist/node/codecs/ber/encoders/encodeObjectDescriptor.d.ts +2 -2
  36. package/dist/node/codecs/ber/encoders/encodeObjectDescriptor.js +17 -17
  37. package/dist/node/codecs/ber/encoders/encodeObjectDescriptor.js.map +1 -1
  38. package/dist/node/codecs/ber/encoders/encodePrintableString.d.ts +2 -2
  39. package/dist/node/codecs/ber/encoders/encodePrintableString.js +18 -18
  40. package/dist/node/codecs/ber/encoders/encodePrintableString.js.map +1 -1
  41. package/dist/node/codecs/ber/encoders/encodeVisibleString.d.ts +2 -2
  42. package/dist/node/codecs/ber/encoders/encodeVisibleString.js +17 -17
  43. package/dist/node/codecs/ber/encoders/encodeVisibleString.js.map +1 -1
  44. package/dist/node/codecs/ber.d.ts +66 -66
  45. package/dist/node/codecs/ber.d.ts.map +1 -1
  46. package/dist/node/codecs/ber.js +593 -602
  47. package/dist/node/codecs/ber.js.map +1 -1
  48. package/dist/node/codecs/cer/decoders/decodeSequence.d.ts +3 -3
  49. package/dist/node/codecs/cer/decoders/decodeSequence.js +18 -18
  50. package/dist/node/codecs/cer.d.ts +67 -67
  51. package/dist/node/codecs/cer.d.ts.map +1 -1
  52. package/dist/node/codecs/cer.js +608 -617
  53. package/dist/node/codecs/cer.js.map +1 -1
  54. package/dist/node/codecs/coer/decoders/decodeBoolean.d.ts +2 -2
  55. package/dist/node/codecs/coer/decoders/decodeBoolean.js +14 -14
  56. package/dist/node/codecs/der/decoders/decodeBitString.d.ts +2 -2
  57. package/dist/node/codecs/der/decoders/decodeBitString.js +36 -36
  58. package/dist/node/codecs/der/decoders/decodeBoolean.d.ts +2 -2
  59. package/dist/node/codecs/der/decoders/decodeBoolean.js +14 -14
  60. package/dist/node/codecs/der/decoders/decodeDuration.d.ts +2 -2
  61. package/dist/node/codecs/der/decoders/decodeDuration.js +71 -71
  62. package/dist/node/codecs/der/decoders/decodeGeneralizedTime.d.ts +2 -2
  63. package/dist/node/codecs/der/decoders/decodeGeneralizedTime.js +30 -30
  64. package/dist/node/codecs/der/decoders/decodeReal.d.ts +2 -2
  65. package/dist/node/codecs/der/decoders/decodeReal.js +99 -99
  66. package/dist/node/codecs/der/decoders/decodeSequence.d.ts +3 -3
  67. package/dist/node/codecs/der/decoders/decodeSequence.js +18 -18
  68. package/dist/node/codecs/der/decoders/decodeUTCTime.d.ts +2 -2
  69. package/dist/node/codecs/der/decoders/decodeUTCTime.js +31 -31
  70. package/dist/node/codecs/der.d.ts +65 -65
  71. package/dist/node/codecs/der.js +561 -561
  72. package/dist/node/codecs/der.js.map +1 -1
  73. package/dist/node/codecs/oer/decoders/decodeBoolean.d.ts +2 -2
  74. package/dist/node/codecs/oer/decoders/decodeBoolean.js +11 -11
  75. package/dist/node/codecs/x690/decoders/decodeCharacterString.d.ts +2 -2
  76. package/dist/node/codecs/x690/decoders/decodeCharacterString.js +33 -33
  77. package/dist/node/codecs/x690/decoders/decodeDate.d.ts +2 -2
  78. package/dist/node/codecs/x690/decoders/decodeDate.js +14 -14
  79. package/dist/node/codecs/x690/decoders/decodeDateTime.d.ts +2 -2
  80. package/dist/node/codecs/x690/decoders/decodeDateTime.js +17 -17
  81. package/dist/node/codecs/x690/decoders/decodeEmbeddedPDV.d.ts +2 -2
  82. package/dist/node/codecs/x690/decoders/decodeEmbeddedPDV.js +33 -33
  83. package/dist/node/codecs/x690/decoders/decodeExternal.d.ts +2 -2
  84. package/dist/node/codecs/x690/decoders/decodeExternal.js +71 -71
  85. package/dist/node/codecs/x690/decoders/decodeGeneralString.d.ts +2 -2
  86. package/dist/node/codecs/x690/decoders/decodeGeneralString.js +16 -16
  87. package/dist/node/codecs/x690/decoders/decodeGeneralString.js.map +1 -1
  88. package/dist/node/codecs/x690/decoders/decodeGraphicString.d.ts +2 -2
  89. package/dist/node/codecs/x690/decoders/decodeGraphicString.js +16 -16
  90. package/dist/node/codecs/x690/decoders/decodeGraphicString.js.map +1 -1
  91. package/dist/node/codecs/x690/decoders/decodeInteger.d.ts +2 -2
  92. package/dist/node/codecs/x690/decoders/decodeInteger.js +17 -17
  93. package/dist/node/codecs/x690/decoders/decodeNumericString.d.ts +2 -2
  94. package/dist/node/codecs/x690/decoders/decodeNumericString.js +16 -16
  95. package/dist/node/codecs/x690/decoders/decodeNumericString.js.map +1 -1
  96. package/dist/node/codecs/x690/decoders/decodeOIDIRI.d.ts +2 -2
  97. package/dist/node/codecs/x690/decoders/decodeOIDIRI.js +8 -8
  98. package/dist/node/codecs/x690/decoders/decodeObjectDescriptor.d.ts +2 -2
  99. package/dist/node/codecs/x690/decoders/decodeObjectDescriptor.js +16 -16
  100. package/dist/node/codecs/x690/decoders/decodeObjectDescriptor.js.map +1 -1
  101. package/dist/node/codecs/x690/decoders/decodeObjectIdentifier.d.ts +2 -2
  102. package/dist/node/codecs/x690/decoders/decodeObjectIdentifier.d.ts.map +1 -1
  103. package/dist/node/codecs/x690/decoders/decodeObjectIdentifier.js +43 -44
  104. package/dist/node/codecs/x690/decoders/decodeObjectIdentifier.js.map +1 -1
  105. package/dist/node/codecs/x690/decoders/decodePrintableString.d.ts +2 -2
  106. package/dist/node/codecs/x690/decoders/decodePrintableString.js +17 -17
  107. package/dist/node/codecs/x690/decoders/decodePrintableString.js.map +1 -1
  108. package/dist/node/codecs/x690/decoders/decodeRelativeOIDIRI.d.ts +2 -2
  109. package/dist/node/codecs/x690/decoders/decodeRelativeOIDIRI.js +8 -8
  110. package/dist/node/codecs/x690/decoders/decodeRelativeObjectIdentifier.d.ts +2 -2
  111. package/dist/node/codecs/x690/decoders/decodeRelativeObjectIdentifier.d.ts.map +1 -1
  112. package/dist/node/codecs/x690/decoders/decodeRelativeObjectIdentifier.js +25 -26
  113. package/dist/node/codecs/x690/decoders/decodeRelativeObjectIdentifier.js.map +1 -1
  114. package/dist/node/codecs/x690/decoders/decodeTime.d.ts +2 -2
  115. package/dist/node/codecs/x690/decoders/decodeTime.js +8 -8
  116. package/dist/node/codecs/x690/decoders/decodeTimeOfDay.d.ts +2 -2
  117. package/dist/node/codecs/x690/decoders/decodeTimeOfDay.js +18 -18
  118. package/dist/node/codecs/x690/decoders/decodeVisibleString.d.ts +2 -2
  119. package/dist/node/codecs/x690/decoders/decodeVisibleString.js +16 -16
  120. package/dist/node/codecs/x690/decoders/decodeVisibleString.js.map +1 -1
  121. package/dist/node/codecs/x690/encoders/encodeBitString.d.ts +2 -2
  122. package/dist/node/codecs/x690/encoders/encodeBitString.js +17 -17
  123. package/dist/node/codecs/x690/encoders/encodeBoolean.d.ts +2 -2
  124. package/dist/node/codecs/x690/encoders/encodeBoolean.js +6 -6
  125. package/dist/node/codecs/x690/encoders/encodeCharacterString.d.ts +2 -2
  126. package/dist/node/codecs/x690/encoders/encodeCharacterString.js +13 -13
  127. package/dist/node/codecs/x690/encoders/encodeDate.d.ts +2 -2
  128. package/dist/node/codecs/x690/encoders/encodeDate.js +15 -15
  129. package/dist/node/codecs/x690/encoders/encodeDateTime.d.ts +2 -2
  130. package/dist/node/codecs/x690/encoders/encodeDateTime.js +18 -18
  131. package/dist/node/codecs/x690/encoders/encodeDuration.d.ts +2 -2
  132. package/dist/node/codecs/x690/encoders/encodeDuration.js +77 -77
  133. package/dist/node/codecs/x690/encoders/encodeEmbeddedPDV.d.ts +2 -2
  134. package/dist/node/codecs/x690/encoders/encodeEmbeddedPDV.js +13 -13
  135. package/dist/node/codecs/x690/encoders/encodeExternal.d.ts +2 -2
  136. package/dist/node/codecs/x690/encoders/encodeExternal.js +40 -40
  137. package/dist/node/codecs/x690/encoders/encodeGeneralizedTime.d.ts +2 -2
  138. package/dist/node/codecs/x690/encoders/encodeGeneralizedTime.js +15 -15
  139. package/dist/node/codecs/x690/encoders/encodeGeneralizedTime.js.map +1 -1
  140. package/dist/node/codecs/x690/encoders/encodeInteger.d.ts +2 -2
  141. package/dist/node/codecs/x690/encoders/encodeInteger.js +7 -7
  142. package/dist/node/codecs/x690/encoders/encodeOIDIRI.d.ts +2 -2
  143. package/dist/node/codecs/x690/encoders/encodeOIDIRI.js +8 -8
  144. package/dist/node/codecs/x690/encoders/encodeObjectIdentifier.d.ts +2 -2
  145. package/dist/node/codecs/x690/encoders/encodeObjectIdentifier.d.ts.map +1 -1
  146. package/dist/node/codecs/x690/encoders/encodeObjectIdentifier.js +16 -17
  147. package/dist/node/codecs/x690/encoders/encodeObjectIdentifier.js.map +1 -1
  148. package/dist/node/codecs/x690/encoders/encodeReal.d.ts +2 -2
  149. package/dist/node/codecs/x690/encoders/encodeReal.js +8 -8
  150. package/dist/node/codecs/x690/encoders/encodeRelativeOIDIRI.d.ts +2 -2
  151. package/dist/node/codecs/x690/encoders/encodeRelativeOIDIRI.js +8 -8
  152. package/dist/node/codecs/x690/encoders/encodeRelativeObjectIdentifier.d.ts +2 -2
  153. package/dist/node/codecs/x690/encoders/encodeRelativeObjectIdentifier.d.ts.map +1 -1
  154. package/dist/node/codecs/x690/encoders/encodeRelativeObjectIdentifier.js +12 -13
  155. package/dist/node/codecs/x690/encoders/encodeRelativeObjectIdentifier.js.map +1 -1
  156. package/dist/node/codecs/x690/encoders/encodeSequence.d.ts +3 -3
  157. package/dist/node/codecs/x690/encoders/encodeSequence.d.ts.map +1 -1
  158. package/dist/node/codecs/x690/encoders/encodeSequence.js +6 -8
  159. package/dist/node/codecs/x690/encoders/encodeSequence.js.map +1 -1
  160. package/dist/node/codecs/x690/encoders/encodeTime.d.ts +2 -2
  161. package/dist/node/codecs/x690/encoders/encodeTime.js +8 -8
  162. package/dist/node/codecs/x690/encoders/encodeTimeOfDay.d.ts +2 -2
  163. package/dist/node/codecs/x690/encoders/encodeTimeOfDay.js +8 -8
  164. package/dist/node/codecs/x690/encoders/encodeUTCTime.d.ts +2 -2
  165. package/dist/node/codecs/x690/encoders/encodeUTCTime.js +16 -16
  166. package/dist/node/codecs/x690/encoders/encodeUTCTime.js.map +1 -1
  167. package/dist/node/codecs/x696/encoders/encodeBoolean.d.ts +2 -2
  168. package/dist/node/codecs/x696/encoders/encodeBoolean.js +6 -6
  169. package/dist/node/errors.d.ts +47 -47
  170. package/dist/node/errors.js +89 -89
  171. package/dist/node/errors.js.map +1 -1
  172. package/dist/node/functional.d.ts +148 -148
  173. package/dist/node/functional.d.ts.map +1 -1
  174. package/dist/node/functional.js +880 -877
  175. package/dist/node/functional.js.map +1 -1
  176. package/dist/node/index.d.ts +16 -17
  177. package/dist/node/index.d.ts.map +1 -1
  178. package/dist/node/index.js +26 -28
  179. package/dist/node/index.js.map +1 -1
  180. package/dist/node/interfaces/Byteable.d.ts +4 -4
  181. package/dist/node/interfaces/Byteable.js +2 -2
  182. package/dist/node/interfaces/CharacterValidationFunction.d.ts +3 -3
  183. package/dist/node/interfaces/CharacterValidationFunction.js +2 -2
  184. package/dist/node/interfaces/Debyteable.d.ts +3 -3
  185. package/dist/node/interfaces/Debyteable.js +2 -2
  186. package/dist/node/interfaces/Deelementable.d.ts +4 -4
  187. package/dist/node/interfaces/Deelementable.js +2 -2
  188. package/dist/node/interfaces/Destringable.d.ts +3 -3
  189. package/dist/node/interfaces/Destringable.js +2 -2
  190. package/dist/node/interfaces/Elementable.d.ts +4 -4
  191. package/dist/node/interfaces/Elementable.js +2 -2
  192. package/dist/node/interfaces/Enbyteable.d.ts +3 -3
  193. package/dist/node/interfaces/Enbyteable.js +2 -2
  194. package/dist/node/interfaces/Enelementable.d.ts +4 -4
  195. package/dist/node/interfaces/Enelementable.js +2 -2
  196. package/dist/node/interfaces/Enstringable.d.ts +3 -3
  197. package/dist/node/interfaces/Enstringable.js +2 -2
  198. package/dist/node/interfaces/Identified.d.ts +4 -4
  199. package/dist/node/interfaces/Identified.js +2 -2
  200. package/dist/node/interfaces/Long.d.ts +3 -3
  201. package/dist/node/interfaces/Long.js +2 -2
  202. package/dist/node/interfaces/Named.d.ts +3 -3
  203. package/dist/node/interfaces/Named.js +2 -2
  204. package/dist/node/interfaces/Stringable.d.ts +4 -4
  205. package/dist/node/interfaces/Stringable.js +2 -2
  206. package/dist/node/interfaces/index.d.ts +12 -12
  207. package/dist/node/interfaces/index.js +2 -2
  208. package/dist/node/macros.d.ts +59 -59
  209. package/dist/node/macros.d.ts.map +1 -1
  210. package/dist/node/macros.js +21 -21
  211. package/dist/node/types/CharacterString.d.ts +8 -8
  212. package/dist/node/types/CharacterString.js +21 -21
  213. package/dist/node/types/EmbeddedPDV.d.ts +8 -8
  214. package/dist/node/types/EmbeddedPDV.js +21 -21
  215. package/dist/node/types/External.d.ts +11 -11
  216. package/dist/node/types/External.js +58 -58
  217. package/dist/node/types/ObjectIdentifier.d.ts +12 -12
  218. package/dist/node/types/ObjectIdentifier.js +70 -70
  219. package/dist/node/types/ObjectIdentifier.js.map +1 -1
  220. package/dist/node/types/TypeIdentifier.d.ts +7 -7
  221. package/dist/node/types/TypeIdentifier.js +9 -9
  222. package/dist/node/types/index.d.ts +18 -18
  223. package/dist/node/types/index.js +42 -42
  224. package/dist/node/types/time/DATE-ENCODING.d.ts +7 -7
  225. package/dist/node/types/time/DATE-ENCODING.js +14 -14
  226. package/dist/node/types/time/DURATION-EQUIVALENT.d.ts +20 -20
  227. package/dist/node/types/time/DURATION-EQUIVALENT.js +89 -89
  228. package/dist/node/types/time/DURATION-INTERVAL-ENCODING.d.ts +18 -18
  229. package/dist/node/types/time/DURATION-INTERVAL-ENCODING.js +46 -46
  230. package/dist/node/types/time/HOURS-DIFF-ENCODING.d.ts +6 -6
  231. package/dist/node/types/time/HOURS-DIFF-ENCODING.js +13 -13
  232. package/dist/node/types/time/HOURS-ENCODING.d.ts +5 -5
  233. package/dist/node/types/time/HOURS-ENCODING.js +11 -11
  234. package/dist/node/types/time/HOURS-MINUTES-DIFF-ENCODING.d.ts +7 -7
  235. package/dist/node/types/time/HOURS-MINUTES-DIFF-ENCODING.js +15 -15
  236. package/dist/node/types/time/HOURS-MINUTES-ENCODING.d.ts +6 -6
  237. package/dist/node/types/time/HOURS-MINUTES-ENCODING.js +13 -13
  238. package/dist/node/types/time/TIME-OF-DAY-DIFF-ENCODING.d.ts +8 -8
  239. package/dist/node/types/time/TIME-OF-DAY-DIFF-ENCODING.js +17 -17
  240. package/dist/node/types/time/TIME-OF-DAY-ENCODING.d.ts +7 -7
  241. package/dist/node/types/time/TIME-OF-DAY-ENCODING.js +15 -15
  242. package/dist/node/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.d.ts +9 -9
  243. package/dist/node/types/time/TIME-OF-DAY-FRACTION-DIFF-ENCODING.js +19 -19
  244. package/dist/node/types/time/TIME-OF-DAY-FRACTION-ENCODING.d.ts +8 -8
  245. package/dist/node/types/time/TIME-OF-DAY-FRACTION-ENCODING.js +17 -17
  246. package/dist/node/types/time/YEAR-ENCODING.d.ts +5 -5
  247. package/dist/node/types/time/YEAR-ENCODING.js +8 -8
  248. package/dist/node/types/time/YEAR-MONTH-ENCODING.d.ts +6 -6
  249. package/dist/node/types/time/YEAR-MONTH-ENCODING.js +12 -12
  250. package/dist/node/utils/base128Length.d.ts +1 -1
  251. package/dist/node/utils/base128Length.js +6 -6
  252. package/dist/node/utils/base256Length.d.ts +1 -1
  253. package/dist/node/utils/base256Length.js +6 -6
  254. package/dist/node/utils/bigint.d.ts +4 -4
  255. package/dist/node/utils/bigint.js +125 -125
  256. package/dist/node/utils/compareSetOfElementsCanonically.d.ts +2 -2
  257. package/dist/node/utils/compareSetOfElementsCanonically.js +16 -16
  258. package/dist/node/utils/convertBytesToText.d.ts +1 -1
  259. package/dist/node/utils/convertBytesToText.js +13 -13
  260. package/dist/node/utils/convertTextToBytes.d.ts +1 -1
  261. package/dist/node/utils/convertTextToBytes.js +13 -13
  262. package/dist/node/utils/decodeBase128.d.ts +1 -1
  263. package/dist/node/utils/decodeBase128.js +23 -23
  264. package/dist/node/utils/decodeIEEE754DoublePrecisionFloat.d.ts +1 -1
  265. package/dist/node/utils/decodeIEEE754DoublePrecisionFloat.js +6 -6
  266. package/dist/node/utils/decodeIEEE754SinglePrecisionFloat.d.ts +1 -1
  267. package/dist/node/utils/decodeIEEE754SinglePrecisionFloat.js +6 -6
  268. package/dist/node/utils/decodeSignedBigEndianInteger.d.ts +1 -1
  269. package/dist/node/utils/decodeSignedBigEndianInteger.js +19 -19
  270. package/dist/node/utils/decodeSignedBigEndianInteger.js.map +1 -1
  271. package/dist/node/utils/decodeUnsignedBigEndianInteger.d.ts +1 -1
  272. package/dist/node/utils/decodeUnsignedBigEndianInteger.js +16 -16
  273. package/dist/node/utils/decodeUnsignedBigEndianInteger.js.map +1 -1
  274. package/dist/node/utils/decodeX690RealNumber.d.ts +1 -1
  275. package/dist/node/utils/decodeX690RealNumber.js +112 -112
  276. package/dist/node/utils/dissectFloat.d.ts +5 -5
  277. package/dist/node/utils/dissectFloat.js +16 -16
  278. package/dist/node/utils/encodeBase128.d.ts +1 -1
  279. package/dist/node/utils/encodeBase128.js +26 -26
  280. package/dist/node/utils/encodeIEEE754DoublePrecisionFloat.d.ts +1 -1
  281. package/dist/node/utils/encodeIEEE754DoublePrecisionFloat.js +6 -6
  282. package/dist/node/utils/encodeIEEE754SinglePrecisionFloat.d.ts +1 -1
  283. package/dist/node/utils/encodeIEEE754SinglePrecisionFloat.js +6 -6
  284. package/dist/node/utils/encodeSignedBigEndianInteger.d.ts +1 -1
  285. package/dist/node/utils/encodeSignedBigEndianInteger.js +40 -40
  286. package/dist/node/utils/encodeUnsignedBigEndianInteger.d.ts +1 -1
  287. package/dist/node/utils/encodeUnsignedBigEndianInteger.js +25 -25
  288. package/dist/node/utils/encodeX690Base10RealNumber.d.ts +1 -1
  289. package/dist/node/utils/encodeX690Base10RealNumber.js +25 -25
  290. package/dist/node/utils/encodeX690BinaryRealNumber.d.ts +1 -1
  291. package/dist/node/utils/encodeX690BinaryRealNumber.js +47 -47
  292. package/dist/node/utils/getBitFromBase128.d.ts +1 -1
  293. package/dist/node/utils/getBitFromBase128.js +7 -7
  294. package/dist/node/utils/getBitFromBase256.d.ts +1 -1
  295. package/dist/node/utils/getBitFromBase256.js +6 -6
  296. package/dist/node/utils/index.d.ts +25 -25
  297. package/dist/node/utils/index.js +56 -56
  298. package/dist/node/utils/isInCanonicalOrder.d.ts +2 -2
  299. package/dist/node/utils/isInCanonicalOrder.js +22 -22
  300. package/dist/node/utils/isUniquelyTagged.d.ts +2 -2
  301. package/dist/node/utils/isUniquelyTagged.js +14 -14
  302. package/dist/node/utils/packBits.d.ts +2 -2
  303. package/dist/node/utils/packBits.js +15 -15
  304. package/dist/node/utils/setBitInBase128.d.ts +1 -1
  305. package/dist/node/utils/setBitInBase128.js +12 -12
  306. package/dist/node/utils/setBitInBase256.d.ts +1 -1
  307. package/dist/node/utils/setBitInBase256.js +12 -12
  308. package/dist/node/utils/sortCanonically.d.ts +2 -2
  309. package/dist/node/utils/sortCanonically.js +18 -18
  310. package/dist/node/utils/splitBytesByContinuationBit.d.ts +1 -1
  311. package/dist/node/utils/splitBytesByContinuationBit.js +13 -13
  312. package/dist/node/utils/splitOctetsCanonically.d.ts +1 -1
  313. package/dist/node/utils/splitOctetsCanonically.js +8 -8
  314. package/dist/node/utils/trimLeadingPaddingBytes.d.ts +1 -1
  315. package/dist/node/utils/trimLeadingPaddingBytes.js +18 -18
  316. package/dist/node/utils/unpackBits.d.ts +2 -2
  317. package/dist/node/utils/unpackBits.js +15 -15
  318. package/dist/node/validators/datetimeComponentValidator.d.ts +2 -2
  319. package/dist/node/validators/datetimeComponentValidator.js +18 -18
  320. package/dist/node/validators/index.d.ts +6 -6
  321. package/dist/node/validators/index.js +18 -18
  322. package/dist/node/validators/isGeneralCharacter.d.ts +1 -1
  323. package/dist/node/validators/isGeneralCharacter.js +6 -6
  324. package/dist/node/validators/isGraphicCharacter.d.ts +1 -1
  325. package/dist/node/validators/isGraphicCharacter.js +6 -6
  326. package/dist/node/validators/isNumericCharacter.d.ts +1 -1
  327. package/dist/node/validators/isNumericCharacter.js +6 -6
  328. package/dist/node/validators/isObjectDescriptorCharacter.d.ts +1 -1
  329. package/dist/node/validators/isObjectDescriptorCharacter.js +8 -8
  330. package/dist/node/validators/isPrintableCharacter.d.ts +1 -1
  331. package/dist/node/validators/isPrintableCharacter.js +12 -12
  332. package/dist/node/validators/isVisibleCharacter.d.ts +1 -1
  333. package/dist/node/validators/isVisibleCharacter.js +8 -8
  334. package/dist/node/validators/validateConstruction.d.ts +3 -3
  335. package/dist/node/validators/validateConstruction.js +41 -41
  336. package/dist/node/validators/validateDate.d.ts +1 -1
  337. package/dist/node/validators/validateDate.js +44 -44
  338. package/dist/node/validators/validateDateTime.d.ts +1 -1
  339. package/dist/node/validators/validateDateTime.js +10 -10
  340. package/dist/node/validators/validateTime.d.ts +1 -1
  341. package/dist/node/validators/validateTime.js +16 -16
  342. package/dist/node/values.d.ts +88 -88
  343. package/dist/node/values.js +110 -110
  344. package/dist/node/x690.d.ts +24 -24
  345. package/dist/node/x690.js +99 -99
  346. package/dist/node/x690.js.map +1 -1
  347. package/package.json +1 -1
  348. package/dist/node/utils/concatenateBytes.d.ts +0 -2
  349. package/dist/node/utils/concatenateBytes.d.ts.map +0 -1
  350. package/dist/node/utils/concatenateBytes.js +0 -19
  351. package/dist/node/utils/concatenateBytes.js.map +0 -1
package/dist/node/asn1.js CHANGED
@@ -1,439 +1,439 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const errors = (0, tslib_1.__importStar)(require("./errors"));
5
- const values_1 = require("./values");
6
- const packBits_1 = (0, tslib_1.__importDefault)(require("./utils/packBits"));
7
- class ASN1Element {
8
- constructor() {
9
- this.recursionCount = 0;
10
- this.name = "";
11
- this.tagClass = values_1.ASN1TagClass.universal;
12
- this.construction = values_1.ASN1Construction.primitive;
13
- this._tagNumber = 0;
14
- this.value = new Uint8Array(0);
15
- }
16
- get tagNumber() {
17
- return this._tagNumber;
18
- }
19
- set tagNumber(value) {
20
- if (!Number.isSafeInteger(value) || (value < 0)) {
21
- throw new errors.ASN1Error(`Tag ${value} was not a non-negative integer.`);
22
- }
23
- this._tagNumber = value;
24
- }
25
- get length() {
26
- return this.value.length;
27
- }
28
- validateSize(name, units, actualSize, min, max) {
29
- const effectiveMax = (typeof max === "undefined" ? Infinity : max);
30
- if (actualSize < min) {
31
- throw new errors.ASN1SizeError(`${name} encoded ${actualSize} ${units} when the `
32
- + `minimum permissible is ${min} ${units}.`);
33
- }
34
- if (actualSize > effectiveMax) {
35
- throw new errors.ASN1SizeError(`${name} encoded ${actualSize} ${units} when the `
36
- + `maximum permissible is ${effectiveMax} ${units}.`);
37
- }
38
- }
39
- validateRange(name, actualValue, min, max) {
40
- if (actualValue < min) {
41
- throw new errors.ASN1OverflowError(`${name} was ${actualValue} when the `
42
- + `minimum permissible is ${min}.`);
43
- }
44
- if (max === undefined) {
45
- return;
46
- }
47
- if (actualValue > max) {
48
- throw new errors.ASN1OverflowError(`${name} was ${actualValue} when the `
49
- + `maximum permissible is ${max}.`);
50
- }
51
- }
52
- sizeConstrainedBitString(min, max) {
53
- const ret = this.bitString;
54
- this.validateSize(this.name || "BIT STRING", "bits", ret.length, min, max);
55
- return ret;
56
- }
57
- sizeConstrainedOctetString(min, max) {
58
- const ret = this.octetString;
59
- this.validateSize(this.name || "OCTET STRING", "octets", ret.length, min, max);
60
- return ret;
61
- }
62
- sizeConstrainedObjectDescriptor(min, max) {
63
- const ret = this.objectDescriptor;
64
- this.validateSize(this.name || "ObjectDescriptor", "characters", ret.length, min, max);
65
- return ret;
66
- }
67
- sizeConstrainedUTF8String(min, max) {
68
- const ret = this.utf8String;
69
- this.validateSize(this.name || "UTF8String", "characters", ret.length, min, max);
70
- return ret;
71
- }
72
- sizeConstrainedSequenceOf(min, max) {
73
- const ret = this.sequence;
74
- this.validateSize(this.name || "SEQUENCE OF", "elements", ret.length, min, max);
75
- return ret;
76
- }
77
- sizeConstrainedSetOf(min, max) {
78
- const ret = this.set;
79
- this.validateSize(this.name || "SET OF", "elements", ret.length, min, max);
80
- return ret;
81
- }
82
- sizeConstrainedNumericString(min, max) {
83
- const ret = this.numericString;
84
- this.validateSize(this.name || "NumericString", "characters", ret.length, min, max);
85
- return ret;
86
- }
87
- sizeConstrainedPrintableString(min, max) {
88
- const ret = this.printableString;
89
- this.validateSize(this.name || "PrintableString", "characters", ret.length, min, max);
90
- return ret;
91
- }
92
- sizeConstrainedTeletexString(min, max) {
93
- const ret = this.teletexString;
94
- this.validateSize(this.name || "TeletexString", "characters", ret.length, min, max);
95
- return ret;
96
- }
97
- sizeConstrainedVideotexString(min, max) {
98
- const ret = this.videotexString;
99
- this.validateSize(this.name || "VideotexString", "characters", ret.length, min, max);
100
- return ret;
101
- }
102
- sizeConstrainedIA5String(min, max) {
103
- const ret = this.ia5String;
104
- this.validateSize(this.name || "IA5String", "characters", ret.length, min, max);
105
- return ret;
106
- }
107
- sizeConstrainedGraphicString(min, max) {
108
- const ret = this.graphicString;
109
- this.validateSize(this.name || "GraphicString", "characters", ret.length, min, max);
110
- return ret;
111
- }
112
- sizeConstrainedVisibleString(min, max) {
113
- const ret = this.visibleString;
114
- this.validateSize(this.name || "VisibleString", "characters", ret.length, min, max);
115
- return ret;
116
- }
117
- sizeConstrainedGeneralString(min, max) {
118
- const ret = this.generalString;
119
- this.validateSize(this.name || "GeneralString", "characters", ret.length, min, max);
120
- return ret;
121
- }
122
- sizeConstrainedUniversalString(min, max) {
123
- const ret = this.universalString;
124
- this.validateSize(this.name || "UniversalString", "characters", ret.length, min, max);
125
- return ret;
126
- }
127
- sizeConstrainedBMPString(min, max) {
128
- const ret = this.bmpString;
129
- this.validateSize(this.name || "BMPString", "characters", ret.length, min, max);
130
- return ret;
131
- }
132
- rangeConstrainedInteger(min, max) {
133
- const ret = this.integer;
134
- this.validateRange(this.name || "INTEGER", ret, min, max);
135
- return ret;
136
- }
137
- rangeConstrainedReal(min, max) {
138
- const ret = this.real;
139
- this.validateRange(this.name || "REAL", ret, min, max);
140
- return ret;
141
- }
142
- validateTag(permittedClasses, permittedConstruction, permittedNumbers) {
143
- if (!permittedClasses.includes(this.tagClass))
144
- return -1;
145
- if (!permittedConstruction.includes(this.construction))
146
- return -2;
147
- if (!permittedNumbers.includes(this.tagNumber))
148
- return -3;
149
- return 0;
150
- }
151
- set bool(value) {
152
- this.boolean = value;
153
- }
154
- get bool() {
155
- return this.boolean;
156
- }
157
- set int(value) {
158
- this.integer = value;
159
- }
160
- get int() {
161
- return this.integer;
162
- }
163
- set bits(value) {
164
- this.bitString = value;
165
- }
166
- get bits() {
167
- return this.bitString;
168
- }
169
- set octs(value) {
170
- this.octetString = value;
171
- }
172
- get octs() {
173
- return this.octetString;
174
- }
175
- set oid(value) {
176
- this.objectIdentifier = value;
177
- }
178
- get oid() {
179
- return this.objectIdentifier;
180
- }
181
- set odesc(value) {
182
- this.objectDescriptor = value;
183
- }
184
- get odesc() {
185
- return this.objectDescriptor;
186
- }
187
- set enum(value) {
188
- this.enumerated = value;
189
- }
190
- get enum() {
191
- return this.enumerated;
192
- }
193
- set utf8(value) {
194
- this.utf8String = value;
195
- }
196
- get utf8() {
197
- return this.utf8String;
198
- }
199
- set roid(value) {
200
- this.relativeObjectIdentifier = value;
201
- }
202
- get roid() {
203
- return this.relativeObjectIdentifier;
204
- }
205
- set seq(value) {
206
- this.sequence = value;
207
- }
208
- get seq() {
209
- return this.sequence;
210
- }
211
- set nums(value) {
212
- this.numericString = value;
213
- }
214
- get nums() {
215
- return this.numericString;
216
- }
217
- set prints(value) {
218
- this.printableString = value;
219
- }
220
- get prints() {
221
- return this.printableString;
222
- }
223
- set ttex(value) {
224
- this.teletexString = value;
225
- }
226
- get ttex() {
227
- return this.teletexString;
228
- }
229
- set vtex(value) {
230
- this.videotexString = value;
231
- }
232
- get vtex() {
233
- return this.videotexString;
234
- }
235
- set ia5(value) {
236
- this.ia5String = value;
237
- }
238
- get ia5() {
239
- return this.ia5String;
240
- }
241
- set utc(value) {
242
- this.utcTime = value;
243
- }
244
- get utc() {
245
- return this.utcTime;
246
- }
247
- set gtime(value) {
248
- this.generalizedTime = value;
249
- }
250
- get gtime() {
251
- return this.generalizedTime;
252
- }
253
- set ustr(value) {
254
- this.universalString = value;
255
- }
256
- get ustr() {
257
- return this.universalString;
258
- }
259
- set bmp(value) {
260
- this.bmpString = value;
261
- }
262
- get bmp() {
263
- return this.bmpString;
264
- }
265
- toElement() {
266
- return this;
267
- }
268
- fromElement(el) {
269
- this.tagClass = el.tagClass;
270
- this.construction = el.construction;
271
- this.tagNumber = el.tagNumber;
272
- this.value = new Uint8Array(el.value);
273
- }
274
- toString() {
275
- if (this.tagClass === values_1.ASN1TagClass.universal) {
276
- switch (this.tagNumber) {
277
- case (values_1.ASN1UniversalType.endOfContent): return "END-OF-CONTENT";
278
- case (values_1.ASN1UniversalType.boolean): return (this.boolean ? "TRUE" : "FALSE");
279
- case (values_1.ASN1UniversalType.integer): return this.integer.toString();
280
- case (values_1.ASN1UniversalType.bitString):
281
- return `'${Array
282
- .from(this.bitString)
283
- .map((num) => num.toString())
284
- .join("")}'B`;
285
- case (values_1.ASN1UniversalType.octetString):
286
- return `'${Array
287
- .from(this.octetString)
288
- .map((byte) => byte.toString(16).padStart(2, "0"))
289
- .join("")}'H`;
290
- case (values_1.ASN1UniversalType.nill): return "NULL";
291
- case (values_1.ASN1UniversalType.objectIdentifier): return this.objectIdentifier.asn1Notation;
292
- case (values_1.ASN1UniversalType.objectDescriptor): return `"${this.objectDescriptor}"`;
293
- case (values_1.ASN1UniversalType.external): return "EXTERNAL";
294
- case (values_1.ASN1UniversalType.realNumber): return this.real.toString();
295
- case (values_1.ASN1UniversalType.enumerated): return this.enumerated.toString();
296
- case (values_1.ASN1UniversalType.embeddedPDV): return "EMBEDDED PDV";
297
- case (values_1.ASN1UniversalType.utf8String): return `"${this.utf8String}"`;
298
- case (values_1.ASN1UniversalType.relativeOID): return "{ " + this.relativeObjectIdentifier
299
- .map((arc) => arc.toString()).join(".") + " }";
300
- case (values_1.ASN1UniversalType.time): return `"${this.time}"`;
301
- case (values_1.ASN1UniversalType.sequence): return ("{ " + this.sequence
302
- .map((el) => (el.name.length ? `${el.name} ${el.toString()}` : el.toString()))
303
- .join(" , ") + " }");
304
- case (values_1.ASN1UniversalType.set): return ("{ " + this.set
305
- .map((el) => (el.name.length ? `${el.name} ${el.toString()}` : el.toString()))
306
- .join(" , ") + " }");
307
- case (values_1.ASN1UniversalType.numericString): return `"${this.numericString}"`;
308
- case (values_1.ASN1UniversalType.printableString): return `"${this.printableString}"`;
309
- case (values_1.ASN1UniversalType.teletexString): return "TeletexString";
310
- case (values_1.ASN1UniversalType.videotexString): return "VideotexString";
311
- case (values_1.ASN1UniversalType.ia5String): return `"${this.ia5String}"`;
312
- case (values_1.ASN1UniversalType.utcTime): return `"${this.utcTime.toISOString()}"`;
313
- case (values_1.ASN1UniversalType.generalizedTime): return `"${this.generalizedTime.toISOString()}"`;
314
- case (values_1.ASN1UniversalType.graphicString): return `"${this.graphicString}"`;
315
- case (values_1.ASN1UniversalType.visibleString): return `"${this.visibleString}"`;
316
- case (values_1.ASN1UniversalType.generalString): return `"${this.generalString}"`;
317
- case (values_1.ASN1UniversalType.universalString): return `"${this.universalString}"`;
318
- case (values_1.ASN1UniversalType.characterString): return "CHARACTER STRING";
319
- case (values_1.ASN1UniversalType.bmpString): return `"${this.bmpString}"`;
320
- case (values_1.ASN1UniversalType.date): return `"${this.date.toISOString()}"`;
321
- case (values_1.ASN1UniversalType.timeOfDay): {
322
- const tod = this.timeOfDay;
323
- return `"${tod.getUTCHours()}:${tod.getUTCMinutes()}:${tod.getUTCSeconds()}"`;
324
- }
325
- case (values_1.ASN1UniversalType.dateTime): return `"${this.dateTime.toISOString()}"`;
326
- case (values_1.ASN1UniversalType.duration): return this.duration.toString();
327
- case (values_1.ASN1UniversalType.oidIRI): return this.oidIRI;
328
- case (values_1.ASN1UniversalType.roidIRI): return this.relativeOIDIRI;
329
- default: {
330
- return `[UNIV ${this.tagNumber}]: ${this.value.toString()}`;
331
- }
332
- }
333
- }
334
- else if (this.construction === values_1.ASN1Construction.constructed) {
335
- const inner = this.components;
336
- if (inner.length === 1) {
337
- return inner[0].toString();
338
- }
339
- else {
340
- return "{ " + inner.map((el) => el.toString()).join(", ") + " }";
341
- }
342
- }
343
- else if (this.tagClass === values_1.ASN1TagClass.context) {
344
- return `[CTXT ${this.tagNumber}]: ${this.value.toString()}`;
345
- }
346
- else if (this.tagClass === values_1.ASN1TagClass.private) {
347
- return `[PRIV ${this.tagNumber}]: ${this.value.toString()}`;
348
- }
349
- else {
350
- return `[APPL ${this.tagNumber}]: ${this.value.toString()}`;
351
- }
352
- }
353
- toJSON() {
354
- if (this.tagClass === values_1.ASN1TagClass.universal) {
355
- switch (this.tagNumber) {
356
- case (values_1.ASN1UniversalType.endOfContent): return undefined;
357
- case (values_1.ASN1UniversalType.boolean): return this.boolean;
358
- case (values_1.ASN1UniversalType.integer): return this.integer;
359
- case (values_1.ASN1UniversalType.bitString): {
360
- const bits = this.bitString;
361
- return {
362
- length: bits.length,
363
- value: Array.from((0, packBits_1.default)(bits)).map((byte) => byte.toString(16)).join(""),
364
- };
365
- }
366
- case (values_1.ASN1UniversalType.octetString): return Array.from(this.octetString)
367
- .map((byte) => byte.toString(16)).join("");
368
- case (values_1.ASN1UniversalType.nill): return null;
369
- case (values_1.ASN1UniversalType.objectIdentifier): return this.objectIdentifier.toJSON();
370
- case (values_1.ASN1UniversalType.objectDescriptor): return this.objectDescriptor;
371
- case (values_1.ASN1UniversalType.external): return this.external.toJSON();
372
- case (values_1.ASN1UniversalType.realNumber): {
373
- const r = this.real;
374
- if (Object.is(r, -0)) {
375
- return "-0";
376
- }
377
- if (r === -Infinity) {
378
- return "-INF";
379
- }
380
- if (r === Infinity) {
381
- return "INF";
382
- }
383
- if (Number.isNaN(r)) {
384
- return "NaN";
385
- }
386
- return r.toString();
387
- }
388
- case (values_1.ASN1UniversalType.enumerated): return this.enumerated.toString();
389
- case (values_1.ASN1UniversalType.embeddedPDV): return this.embeddedPDV.toJSON();
390
- case (values_1.ASN1UniversalType.utf8String): return this.utf8String;
391
- case (values_1.ASN1UniversalType.relativeOID): return this.relativeObjectIdentifier
392
- .map((arc) => arc.toString()).join(".");
393
- case (values_1.ASN1UniversalType.time): return this.time;
394
- case (values_1.ASN1UniversalType.sequence): return this.sequence.map((el) => el.toJSON());
395
- case (values_1.ASN1UniversalType.set): return this.set.map((el) => el.toJSON());
396
- case (values_1.ASN1UniversalType.numericString): return this.numericString;
397
- case (values_1.ASN1UniversalType.printableString): return this.printableString;
398
- case (values_1.ASN1UniversalType.teletexString): return String.fromCodePoint(...Array.from(this.teletexString));
399
- case (values_1.ASN1UniversalType.videotexString): return String.fromCodePoint(...Array.from(this.videotexString));
400
- case (values_1.ASN1UniversalType.ia5String): return this.ia5String;
401
- case (values_1.ASN1UniversalType.utcTime): return this.utcTime.toISOString();
402
- case (values_1.ASN1UniversalType.generalizedTime): return this.generalizedTime.toISOString();
403
- case (values_1.ASN1UniversalType.graphicString): return this.graphicString;
404
- case (values_1.ASN1UniversalType.visibleString): return this.visibleString;
405
- case (values_1.ASN1UniversalType.generalString): return this.generalString;
406
- case (values_1.ASN1UniversalType.universalString): return this.universalString;
407
- case (values_1.ASN1UniversalType.characterString): return this.characterString.toJSON();
408
- case (values_1.ASN1UniversalType.bmpString): return this.bmpString;
409
- case (values_1.ASN1UniversalType.date): return this.date.toISOString();
410
- case (values_1.ASN1UniversalType.timeOfDay): {
411
- const tod = this.timeOfDay;
412
- return `${tod.getUTCHours()}:${tod.getUTCMinutes()}:${tod.getUTCSeconds()}`;
413
- }
414
- case (values_1.ASN1UniversalType.dateTime): return this.dateTime.toISOString();
415
- case (values_1.ASN1UniversalType.duration): return this.duration.toString();
416
- case (values_1.ASN1UniversalType.oidIRI): return this.oidIRI;
417
- case (values_1.ASN1UniversalType.roidIRI): return this.relativeOIDIRI;
418
- default: {
419
- return undefined;
420
- }
421
- }
422
- }
423
- else if (this.construction === values_1.ASN1Construction.constructed) {
424
- const inner = this.components;
425
- if (inner.length === 1) {
426
- return inner[0].toJSON();
427
- }
428
- else {
429
- return inner.map((el) => el.toJSON());
430
- }
431
- }
432
- else {
433
- return undefined;
434
- }
435
- }
436
- }
437
- exports.default = ASN1Element;
438
- ASN1Element.nestingRecursionLimit = 5;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const errors = (0, tslib_1.__importStar)(require("./errors"));
5
+ const values_1 = require("./values");
6
+ const packBits_1 = (0, tslib_1.__importDefault)(require("./utils/packBits"));
7
+ class ASN1Element {
8
+ constructor() {
9
+ this.recursionCount = 0;
10
+ this.name = "";
11
+ this.tagClass = values_1.ASN1TagClass.universal;
12
+ this.construction = values_1.ASN1Construction.primitive;
13
+ this._tagNumber = 0;
14
+ this.value = new Uint8Array(0);
15
+ }
16
+ get tagNumber() {
17
+ return this._tagNumber;
18
+ }
19
+ set tagNumber(value) {
20
+ if (!Number.isSafeInteger(value) || (value < 0)) {
21
+ throw new errors.ASN1Error(`Tag ${value} was not a non-negative integer.`);
22
+ }
23
+ this._tagNumber = value;
24
+ }
25
+ get length() {
26
+ return this.value.length;
27
+ }
28
+ validateSize(name, units, actualSize, min, max) {
29
+ const effectiveMax = (typeof max === "undefined" ? Infinity : max);
30
+ if (actualSize < min) {
31
+ throw new errors.ASN1SizeError(`${name} encoded ${actualSize} ${units} when the `
32
+ + `minimum permissible is ${min} ${units}.`);
33
+ }
34
+ if (actualSize > effectiveMax) {
35
+ throw new errors.ASN1SizeError(`${name} encoded ${actualSize} ${units} when the `
36
+ + `maximum permissible is ${effectiveMax} ${units}.`);
37
+ }
38
+ }
39
+ validateRange(name, actualValue, min, max) {
40
+ if (actualValue < min) {
41
+ throw new errors.ASN1OverflowError(`${name} was ${actualValue} when the `
42
+ + `minimum permissible is ${min}.`);
43
+ }
44
+ if (max === undefined) {
45
+ return;
46
+ }
47
+ if (actualValue > max) {
48
+ throw new errors.ASN1OverflowError(`${name} was ${actualValue} when the `
49
+ + `maximum permissible is ${max}.`);
50
+ }
51
+ }
52
+ sizeConstrainedBitString(min, max) {
53
+ const ret = this.bitString;
54
+ this.validateSize(this.name || "BIT STRING", "bits", ret.length, min, max);
55
+ return ret;
56
+ }
57
+ sizeConstrainedOctetString(min, max) {
58
+ const ret = this.octetString;
59
+ this.validateSize(this.name || "OCTET STRING", "octets", ret.length, min, max);
60
+ return ret;
61
+ }
62
+ sizeConstrainedObjectDescriptor(min, max) {
63
+ const ret = this.objectDescriptor;
64
+ this.validateSize(this.name || "ObjectDescriptor", "characters", ret.length, min, max);
65
+ return ret;
66
+ }
67
+ sizeConstrainedUTF8String(min, max) {
68
+ const ret = this.utf8String;
69
+ this.validateSize(this.name || "UTF8String", "characters", ret.length, min, max);
70
+ return ret;
71
+ }
72
+ sizeConstrainedSequenceOf(min, max) {
73
+ const ret = this.sequence;
74
+ this.validateSize(this.name || "SEQUENCE OF", "elements", ret.length, min, max);
75
+ return ret;
76
+ }
77
+ sizeConstrainedSetOf(min, max) {
78
+ const ret = this.set;
79
+ this.validateSize(this.name || "SET OF", "elements", ret.length, min, max);
80
+ return ret;
81
+ }
82
+ sizeConstrainedNumericString(min, max) {
83
+ const ret = this.numericString;
84
+ this.validateSize(this.name || "NumericString", "characters", ret.length, min, max);
85
+ return ret;
86
+ }
87
+ sizeConstrainedPrintableString(min, max) {
88
+ const ret = this.printableString;
89
+ this.validateSize(this.name || "PrintableString", "characters", ret.length, min, max);
90
+ return ret;
91
+ }
92
+ sizeConstrainedTeletexString(min, max) {
93
+ const ret = this.teletexString;
94
+ this.validateSize(this.name || "TeletexString", "characters", ret.length, min, max);
95
+ return ret;
96
+ }
97
+ sizeConstrainedVideotexString(min, max) {
98
+ const ret = this.videotexString;
99
+ this.validateSize(this.name || "VideotexString", "characters", ret.length, min, max);
100
+ return ret;
101
+ }
102
+ sizeConstrainedIA5String(min, max) {
103
+ const ret = this.ia5String;
104
+ this.validateSize(this.name || "IA5String", "characters", ret.length, min, max);
105
+ return ret;
106
+ }
107
+ sizeConstrainedGraphicString(min, max) {
108
+ const ret = this.graphicString;
109
+ this.validateSize(this.name || "GraphicString", "characters", ret.length, min, max);
110
+ return ret;
111
+ }
112
+ sizeConstrainedVisibleString(min, max) {
113
+ const ret = this.visibleString;
114
+ this.validateSize(this.name || "VisibleString", "characters", ret.length, min, max);
115
+ return ret;
116
+ }
117
+ sizeConstrainedGeneralString(min, max) {
118
+ const ret = this.generalString;
119
+ this.validateSize(this.name || "GeneralString", "characters", ret.length, min, max);
120
+ return ret;
121
+ }
122
+ sizeConstrainedUniversalString(min, max) {
123
+ const ret = this.universalString;
124
+ this.validateSize(this.name || "UniversalString", "characters", ret.length, min, max);
125
+ return ret;
126
+ }
127
+ sizeConstrainedBMPString(min, max) {
128
+ const ret = this.bmpString;
129
+ this.validateSize(this.name || "BMPString", "characters", ret.length, min, max);
130
+ return ret;
131
+ }
132
+ rangeConstrainedInteger(min, max) {
133
+ const ret = this.integer;
134
+ this.validateRange(this.name || "INTEGER", ret, min, max);
135
+ return ret;
136
+ }
137
+ rangeConstrainedReal(min, max) {
138
+ const ret = this.real;
139
+ this.validateRange(this.name || "REAL", ret, min, max);
140
+ return ret;
141
+ }
142
+ validateTag(permittedClasses, permittedConstruction, permittedNumbers) {
143
+ if (!permittedClasses.includes(this.tagClass))
144
+ return -1;
145
+ if (!permittedConstruction.includes(this.construction))
146
+ return -2;
147
+ if (!permittedNumbers.includes(this.tagNumber))
148
+ return -3;
149
+ return 0;
150
+ }
151
+ set bool(value) {
152
+ this.boolean = value;
153
+ }
154
+ get bool() {
155
+ return this.boolean;
156
+ }
157
+ set int(value) {
158
+ this.integer = value;
159
+ }
160
+ get int() {
161
+ return this.integer;
162
+ }
163
+ set bits(value) {
164
+ this.bitString = value;
165
+ }
166
+ get bits() {
167
+ return this.bitString;
168
+ }
169
+ set octs(value) {
170
+ this.octetString = value;
171
+ }
172
+ get octs() {
173
+ return this.octetString;
174
+ }
175
+ set oid(value) {
176
+ this.objectIdentifier = value;
177
+ }
178
+ get oid() {
179
+ return this.objectIdentifier;
180
+ }
181
+ set odesc(value) {
182
+ this.objectDescriptor = value;
183
+ }
184
+ get odesc() {
185
+ return this.objectDescriptor;
186
+ }
187
+ set enum(value) {
188
+ this.enumerated = value;
189
+ }
190
+ get enum() {
191
+ return this.enumerated;
192
+ }
193
+ set utf8(value) {
194
+ this.utf8String = value;
195
+ }
196
+ get utf8() {
197
+ return this.utf8String;
198
+ }
199
+ set roid(value) {
200
+ this.relativeObjectIdentifier = value;
201
+ }
202
+ get roid() {
203
+ return this.relativeObjectIdentifier;
204
+ }
205
+ set seq(value) {
206
+ this.sequence = value;
207
+ }
208
+ get seq() {
209
+ return this.sequence;
210
+ }
211
+ set nums(value) {
212
+ this.numericString = value;
213
+ }
214
+ get nums() {
215
+ return this.numericString;
216
+ }
217
+ set prints(value) {
218
+ this.printableString = value;
219
+ }
220
+ get prints() {
221
+ return this.printableString;
222
+ }
223
+ set ttex(value) {
224
+ this.teletexString = value;
225
+ }
226
+ get ttex() {
227
+ return this.teletexString;
228
+ }
229
+ set vtex(value) {
230
+ this.videotexString = value;
231
+ }
232
+ get vtex() {
233
+ return this.videotexString;
234
+ }
235
+ set ia5(value) {
236
+ this.ia5String = value;
237
+ }
238
+ get ia5() {
239
+ return this.ia5String;
240
+ }
241
+ set utc(value) {
242
+ this.utcTime = value;
243
+ }
244
+ get utc() {
245
+ return this.utcTime;
246
+ }
247
+ set gtime(value) {
248
+ this.generalizedTime = value;
249
+ }
250
+ get gtime() {
251
+ return this.generalizedTime;
252
+ }
253
+ set ustr(value) {
254
+ this.universalString = value;
255
+ }
256
+ get ustr() {
257
+ return this.universalString;
258
+ }
259
+ set bmp(value) {
260
+ this.bmpString = value;
261
+ }
262
+ get bmp() {
263
+ return this.bmpString;
264
+ }
265
+ toElement() {
266
+ return this;
267
+ }
268
+ fromElement(el) {
269
+ this.tagClass = el.tagClass;
270
+ this.construction = el.construction;
271
+ this.tagNumber = el.tagNumber;
272
+ this.value = new Uint8Array(el.value);
273
+ }
274
+ toString() {
275
+ if (this.tagClass === values_1.ASN1TagClass.universal) {
276
+ switch (this.tagNumber) {
277
+ case (values_1.ASN1UniversalType.endOfContent): return "END-OF-CONTENT";
278
+ case (values_1.ASN1UniversalType.boolean): return (this.boolean ? "TRUE" : "FALSE");
279
+ case (values_1.ASN1UniversalType.integer): return this.integer.toString();
280
+ case (values_1.ASN1UniversalType.bitString):
281
+ return `'${Array
282
+ .from(this.bitString)
283
+ .map((num) => num.toString())
284
+ .join("")}'B`;
285
+ case (values_1.ASN1UniversalType.octetString):
286
+ return `'${Array
287
+ .from(this.octetString)
288
+ .map((byte) => byte.toString(16).padStart(2, "0"))
289
+ .join("")}'H`;
290
+ case (values_1.ASN1UniversalType.nill): return "NULL";
291
+ case (values_1.ASN1UniversalType.objectIdentifier): return this.objectIdentifier.asn1Notation;
292
+ case (values_1.ASN1UniversalType.objectDescriptor): return `"${this.objectDescriptor}"`;
293
+ case (values_1.ASN1UniversalType.external): return "EXTERNAL";
294
+ case (values_1.ASN1UniversalType.realNumber): return this.real.toString();
295
+ case (values_1.ASN1UniversalType.enumerated): return this.enumerated.toString();
296
+ case (values_1.ASN1UniversalType.embeddedPDV): return "EMBEDDED PDV";
297
+ case (values_1.ASN1UniversalType.utf8String): return `"${this.utf8String}"`;
298
+ case (values_1.ASN1UniversalType.relativeOID): return "{ " + this.relativeObjectIdentifier
299
+ .map((arc) => arc.toString()).join(".") + " }";
300
+ case (values_1.ASN1UniversalType.time): return `"${this.time}"`;
301
+ case (values_1.ASN1UniversalType.sequence): return ("{ " + this.sequence
302
+ .map((el) => (el.name.length ? `${el.name} ${el.toString()}` : el.toString()))
303
+ .join(" , ") + " }");
304
+ case (values_1.ASN1UniversalType.set): return ("{ " + this.set
305
+ .map((el) => (el.name.length ? `${el.name} ${el.toString()}` : el.toString()))
306
+ .join(" , ") + " }");
307
+ case (values_1.ASN1UniversalType.numericString): return `"${this.numericString}"`;
308
+ case (values_1.ASN1UniversalType.printableString): return `"${this.printableString}"`;
309
+ case (values_1.ASN1UniversalType.teletexString): return "TeletexString";
310
+ case (values_1.ASN1UniversalType.videotexString): return "VideotexString";
311
+ case (values_1.ASN1UniversalType.ia5String): return `"${this.ia5String}"`;
312
+ case (values_1.ASN1UniversalType.utcTime): return `"${this.utcTime.toISOString()}"`;
313
+ case (values_1.ASN1UniversalType.generalizedTime): return `"${this.generalizedTime.toISOString()}"`;
314
+ case (values_1.ASN1UniversalType.graphicString): return `"${this.graphicString}"`;
315
+ case (values_1.ASN1UniversalType.visibleString): return `"${this.visibleString}"`;
316
+ case (values_1.ASN1UniversalType.generalString): return `"${this.generalString}"`;
317
+ case (values_1.ASN1UniversalType.universalString): return `"${this.universalString}"`;
318
+ case (values_1.ASN1UniversalType.characterString): return "CHARACTER STRING";
319
+ case (values_1.ASN1UniversalType.bmpString): return `"${this.bmpString}"`;
320
+ case (values_1.ASN1UniversalType.date): return `"${this.date.toISOString()}"`;
321
+ case (values_1.ASN1UniversalType.timeOfDay): {
322
+ const tod = this.timeOfDay;
323
+ return `"${tod.getUTCHours()}:${tod.getUTCMinutes()}:${tod.getUTCSeconds()}"`;
324
+ }
325
+ case (values_1.ASN1UniversalType.dateTime): return `"${this.dateTime.toISOString()}"`;
326
+ case (values_1.ASN1UniversalType.duration): return this.duration.toString();
327
+ case (values_1.ASN1UniversalType.oidIRI): return this.oidIRI;
328
+ case (values_1.ASN1UniversalType.roidIRI): return this.relativeOIDIRI;
329
+ default: {
330
+ return `[UNIV ${this.tagNumber}]: ${this.value.toString()}`;
331
+ }
332
+ }
333
+ }
334
+ else if (this.construction === values_1.ASN1Construction.constructed) {
335
+ const inner = this.components;
336
+ if (inner.length === 1) {
337
+ return inner[0].toString();
338
+ }
339
+ else {
340
+ return "{ " + inner.map((el) => el.toString()).join(", ") + " }";
341
+ }
342
+ }
343
+ else if (this.tagClass === values_1.ASN1TagClass.context) {
344
+ return `[CTXT ${this.tagNumber}]: ${this.value.toString()}`;
345
+ }
346
+ else if (this.tagClass === values_1.ASN1TagClass.private) {
347
+ return `[PRIV ${this.tagNumber}]: ${this.value.toString()}`;
348
+ }
349
+ else {
350
+ return `[APPL ${this.tagNumber}]: ${this.value.toString()}`;
351
+ }
352
+ }
353
+ toJSON() {
354
+ if (this.tagClass === values_1.ASN1TagClass.universal) {
355
+ switch (this.tagNumber) {
356
+ case (values_1.ASN1UniversalType.endOfContent): return undefined;
357
+ case (values_1.ASN1UniversalType.boolean): return this.boolean;
358
+ case (values_1.ASN1UniversalType.integer): return this.integer;
359
+ case (values_1.ASN1UniversalType.bitString): {
360
+ const bits = this.bitString;
361
+ return {
362
+ length: bits.length,
363
+ value: Array.from((0, packBits_1.default)(bits)).map((byte) => byte.toString(16)).join(""),
364
+ };
365
+ }
366
+ case (values_1.ASN1UniversalType.octetString): return Array.from(this.octetString)
367
+ .map((byte) => byte.toString(16)).join("");
368
+ case (values_1.ASN1UniversalType.nill): return null;
369
+ case (values_1.ASN1UniversalType.objectIdentifier): return this.objectIdentifier.toJSON();
370
+ case (values_1.ASN1UniversalType.objectDescriptor): return this.objectDescriptor;
371
+ case (values_1.ASN1UniversalType.external): return this.external.toJSON();
372
+ case (values_1.ASN1UniversalType.realNumber): {
373
+ const r = this.real;
374
+ if (Object.is(r, -0)) {
375
+ return "-0";
376
+ }
377
+ if (r === -Infinity) {
378
+ return "-INF";
379
+ }
380
+ if (r === Infinity) {
381
+ return "INF";
382
+ }
383
+ if (Number.isNaN(r)) {
384
+ return "NaN";
385
+ }
386
+ return r.toString();
387
+ }
388
+ case (values_1.ASN1UniversalType.enumerated): return this.enumerated.toString();
389
+ case (values_1.ASN1UniversalType.embeddedPDV): return this.embeddedPDV.toJSON();
390
+ case (values_1.ASN1UniversalType.utf8String): return this.utf8String;
391
+ case (values_1.ASN1UniversalType.relativeOID): return this.relativeObjectIdentifier
392
+ .map((arc) => arc.toString()).join(".");
393
+ case (values_1.ASN1UniversalType.time): return this.time;
394
+ case (values_1.ASN1UniversalType.sequence): return this.sequence.map((el) => el.toJSON());
395
+ case (values_1.ASN1UniversalType.set): return this.set.map((el) => el.toJSON());
396
+ case (values_1.ASN1UniversalType.numericString): return this.numericString;
397
+ case (values_1.ASN1UniversalType.printableString): return this.printableString;
398
+ case (values_1.ASN1UniversalType.teletexString): return String.fromCodePoint(...Array.from(this.teletexString));
399
+ case (values_1.ASN1UniversalType.videotexString): return String.fromCodePoint(...Array.from(this.videotexString));
400
+ case (values_1.ASN1UniversalType.ia5String): return this.ia5String;
401
+ case (values_1.ASN1UniversalType.utcTime): return this.utcTime.toISOString();
402
+ case (values_1.ASN1UniversalType.generalizedTime): return this.generalizedTime.toISOString();
403
+ case (values_1.ASN1UniversalType.graphicString): return this.graphicString;
404
+ case (values_1.ASN1UniversalType.visibleString): return this.visibleString;
405
+ case (values_1.ASN1UniversalType.generalString): return this.generalString;
406
+ case (values_1.ASN1UniversalType.universalString): return this.universalString;
407
+ case (values_1.ASN1UniversalType.characterString): return this.characterString.toJSON();
408
+ case (values_1.ASN1UniversalType.bmpString): return this.bmpString;
409
+ case (values_1.ASN1UniversalType.date): return this.date.toISOString();
410
+ case (values_1.ASN1UniversalType.timeOfDay): {
411
+ const tod = this.timeOfDay;
412
+ return `${tod.getUTCHours()}:${tod.getUTCMinutes()}:${tod.getUTCSeconds()}`;
413
+ }
414
+ case (values_1.ASN1UniversalType.dateTime): return this.dateTime.toISOString();
415
+ case (values_1.ASN1UniversalType.duration): return this.duration.toString();
416
+ case (values_1.ASN1UniversalType.oidIRI): return this.oidIRI;
417
+ case (values_1.ASN1UniversalType.roidIRI): return this.relativeOIDIRI;
418
+ default: {
419
+ return undefined;
420
+ }
421
+ }
422
+ }
423
+ else if (this.construction === values_1.ASN1Construction.constructed) {
424
+ const inner = this.components;
425
+ if (inner.length === 1) {
426
+ return inner[0].toJSON();
427
+ }
428
+ else {
429
+ return inner.map((el) => el.toJSON());
430
+ }
431
+ }
432
+ else {
433
+ return undefined;
434
+ }
435
+ }
436
+ }
437
+ exports.default = ASN1Element;
438
+ ASN1Element.nestingRecursionLimit = 5;
439
439
  //# sourceMappingURL=asn1.js.map