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/README.md CHANGED
@@ -51,6 +51,71 @@ The outputs will all be in `dist`.
51
51
 
52
52
  ## Library Usage
53
53
 
54
+ ### Data Types
55
+
56
+ In this library, all ASN.1 data types are represented as aliases to TypeScript /
57
+ JavaScript types in `source/macros.ts`. For your convenience these aliases are
58
+ copied here:
59
+
60
+ ```typescript
61
+ export type OPTIONAL<T> = T | undefined;
62
+ export type BOOLEAN = boolean;
63
+ export type INTEGER = number | bigint;
64
+ export type BIT_STRING = Uint8ClampedArray;
65
+ export type OCTET_STRING = Uint8Array;
66
+ export type NULL = null;
67
+ export type OBJECT_IDENTIFIER = ObjectIdentifier;
68
+ export type ObjectDescriptor = string;
69
+ export type EXTERNAL = External;
70
+ export type REAL = number;
71
+ export type INSTANCE_OF = External;
72
+ export type ENUMERATED = number;
73
+ export type EMBEDDED_PDV = EmbeddedPDV;
74
+ export type UTF8String = string;
75
+ export type RELATIVE_OID = number[];
76
+ export type SEQUENCE<T> = T[];
77
+ export type SEQUENCE_OF<T> = T[];
78
+ export type SET<T> = T[];
79
+ export type SET_OF<T> = T[];
80
+ export type GraphicString = string;
81
+ export type NumericString = string;
82
+ export type VisibleString = string;
83
+ export type PrintableString = string;
84
+ export type ISO646String = string;
85
+ export type TeletexString = Uint8Array;
86
+ export type GeneralString = string;
87
+ export type T61String = Uint8Array;
88
+ export type UniversalString = string;
89
+ export type VideotexString = Uint8Array;
90
+ export type BMPString = string;
91
+ export type IA5String = string;
92
+ // export type CharacterString = CharacterString;
93
+ export { default as CharacterString } from "./types/CharacterString";
94
+ export type UTCTime = Date;
95
+ export type GeneralizedTime = Date;
96
+ export type TIME = string;
97
+ export type DATE = Date;
98
+ export type TIME_OF_DAY = Date;
99
+ export type DATE_TIME = Date;
100
+ export type DURATION = DURATION_EQUIVALENT;
101
+ export type OID_IRI = string;
102
+ export type RELATIVE_OID_IRI = string;
103
+ ```
104
+
105
+ Native ASN.1 types that don't have an obvious corollary to a native JavaScript
106
+ type have an implementation in the `types` folder. This includes these types:
107
+
108
+ - `OBJECT IDENTIFIER`, implemented as `ObjectIdentifier`
109
+ - `EXTERNAL`, implemented as `External`
110
+ - `EMBEDDED PDV`, implemented as `EmbeddedPDV`
111
+ - `CHARACTER STRING`, implemented as `CharacterString`
112
+
113
+ The `TYPE-IDENTIFIER` object class is implemented as `TypeIdentifier`. There are
114
+ also implementation of all of the structured time types specified in the ITU
115
+ Recommendation X.696 in `types/time`.
116
+
117
+ ### Encoding and Decoding
118
+
54
119
  For each codec in the library, usage entails instantiating the class,
55
120
  then using that class' properties to get and set the encoded value.
56
121
  For all classes, the empty constructor creates an `END OF CONTENT`
@@ -60,8 +125,10 @@ Here is a TypeScript example of encoding with Basic Encoding Rules, using the
60
125
  `BERElement` class.
61
126
 
62
127
  ```typescript
63
- let el : BERElement = new BERElement();
64
- el.typeTag = ASN1UniversalType.integer;
128
+ let el: BERElement = new BERElement();
129
+ el.tagClass = ASN1TagClass.universal; // Not technically necessary.
130
+ el.construction = ASN1Construction.construction; // Not technically necessary.
131
+ el.tagNumber = ASN1UniversalType.integer;
65
132
  el.integer = 1433; // Now the data is encoded.
66
133
  console.log(el.integer); // Logs '1433'
67
134
  ```
@@ -69,10 +136,10 @@ console.log(el.integer); // Logs '1433'
69
136
  ... and here is how you would decode that same element:
70
137
 
71
138
  ```typescript
72
- let encodedData : Uint8Array = el.toBytes();
73
- let el2 : BERElement = new BERElement();
139
+ let encodedData: Uint8Array = el.toBytes();
140
+ let el2: BERElement = new BERElement();
74
141
  el2.fromBytes(encodedData);
75
- console.log(el2.integer); // Logs '1433'
142
+ console.log(el2.integer); // Logs 1433
76
143
  ```
77
144
 
78
145
  Tests under the `test` directory can also serve as examples.
@@ -82,6 +149,176 @@ and Distinguished Encoding Rules via the `BERElement`, `CERElement`, and
82
149
  `DERElement` classes respectively. You should use `DERElement` for anything that
83
150
  will be cryptographically signed or hashed.
84
151
 
152
+ The tag class can be read and written via the `tagClass` property using the
153
+ `ASN1TagClass` enum. The construction (whether it is constructed or primitive)
154
+ of the element can be read and written via the `construction` property using the
155
+ `ASN1Construction` enum. The tag number can be set using the `tagNumber`
156
+ property. For your convenience, the `ASN1UniveralType` enum contains the tag
157
+ numbers of the `UNIVERSAL` tags by the data type.
158
+
159
+ Generic "bytes" are represented with the `Uint8Array` class. Note that `Buffer`
160
+ is a subtype of `Uint8Array`, so you can use a `Buffer` anywhere you use a
161
+ `Uint8Array` (but not the reverse). You can interact with the value bytes of the
162
+ ASN.1 element through the `value` property. You can convert ASN.1 elements to
163
+ and from bytes using `toBytes()` and `fromBytes()`. `fromBytes()` returns an
164
+ integer indicating the number of bytes read from the `Uint8Array`. Here is an
165
+ example of how you would decode multiple back-to-back encoded ASN.1 elements
166
+ from a buffer:
167
+
168
+ ```typescript
169
+ const encodedElements: BERElement[] = [];
170
+ let i: number = 0;
171
+ while (i < value.length) {
172
+ const next: BERElement = new BERElement();
173
+ i += next.fromBytes(value.slice(i));
174
+ encodedElements.push(next);
175
+ }
176
+ ```
177
+
178
+ Here are the properties available for you to get and set ASN.1 values:
179
+
180
+ ```typescript
181
+ set boolean (value: BOOLEAN);
182
+ get boolean (): BOOLEAN;
183
+ set integer (value: INTEGER);
184
+ get integer (): INTEGER;
185
+ set bitString (value: BIT_STRING);
186
+ get bitString (): BIT_STRING;
187
+ set octetString (value: OCTET_STRING);
188
+ get octetString (): OCTET_STRING;
189
+ set objectIdentifier (value: OBJECT_IDENTIFIER);
190
+ get objectIdentifier (): OBJECT_IDENTIFIER;
191
+ set objectDescriptor (value: ObjectDescriptor);
192
+ get objectDescriptor (): ObjectDescriptor;
193
+ set external (value: EXTERNAL);
194
+ get external (): EXTERNAL;
195
+ set real (value: REAL);
196
+ get real (): REAL;
197
+ set enumerated (value: ENUMERATED);
198
+ get enumerated (): ENUMERATED;
199
+ set embeddedPDV (value: EMBEDDED_PDV);
200
+ get embeddedPDV (): EMBEDDED_PDV;
201
+ set utf8String (value: UTF8String);
202
+ get utf8String (): UTF8String;
203
+ set relativeObjectIdentifier (value: RELATIVE_OID);
204
+ get relativeObjectIdentifier (): RELATIVE_OID;
205
+ set time (value: TIME);
206
+ get time (): TIME;
207
+ set sequence (value: SEQUENCE<ASN1Element>);
208
+ get sequence (): SEQUENCE<ASN1Element>;
209
+ set set (value: SET<ASN1Element>);
210
+ get set (): SET<ASN1Element>;
211
+ set numericString (value: NumericString);
212
+ get numericString (): NumericString;
213
+ set printableString (value: PrintableString);
214
+ get printableString (): PrintableString;
215
+ set teletexString (value: TeletexString);
216
+ get teletexString (): TeletexString;
217
+ set videotexString (value: VideotexString);
218
+ get videotexString (): VideotexString;
219
+ set ia5String (value: IA5String);
220
+ get ia5String (): IA5String;
221
+ set utcTime (value: UTCTime);
222
+ get utcTime (): UTCTime;
223
+ set generalizedTime (value: GeneralizedTime);
224
+ get generalizedTime (): GeneralizedTime;
225
+ set graphicString (value: GraphicString);
226
+ get graphicString (): GraphicString;
227
+ set visibleString (value: VisibleString);
228
+ get visibleString (): VisibleString;
229
+ set generalString (value: GeneralString);
230
+ get generalString (): GeneralString;
231
+ set universalString (value: UniversalString);
232
+ get universalString (): UniversalString;
233
+ set characterString (value: CharacterString);
234
+ get characterString (): CharacterString;
235
+ set bmpString (value: BMPString);
236
+ get bmpString (): BMPString;
237
+ set date (value: DATE);
238
+ get date (): DATE;
239
+ set timeOfDay (value: TIME_OF_DAY);
240
+ get timeOfDay (): TIME_OF_DAY;
241
+ set dateTime (value: DATE_TIME);
242
+ get dateTime (): DATE_TIME;
243
+ set duration (value: DURATION);
244
+ get duration (): DURATION;
245
+ set oidIRI (value: OID_IRI);
246
+ get oidIRI (): OID_IRI;
247
+ set relativeOIDIRI (value: RELATIVE_OID_IRI);
248
+ get relativeOIDIRI (): RELATIVE_OID_IRI;
249
+ ```
250
+
251
+ There are shorthand equivalents of the getters and setters above (created to
252
+ make source files more concise), but these will be removed in a future version.
253
+
254
+ ASN.1 elements (`BERElement`, `CERElement`, and `DERElement`) support the
255
+ `toString()` and `toJSON()` properties. **In general**, `toString()` encodes the
256
+ elements according to how their values would be represented in an ASN.1 file.
257
+ **In general**, `toJSON()` encodes the elements according to the JSON Encoding
258
+ Rules (JER).
259
+
260
+ Finally, there are functional equivalents of the codecs above in `functional.ts`
261
+ such as `_decodeUTF8String`. These will not be documented (for now). They were
262
+ implemented to support [Wildboar Software](https://wildboarsoftware.com/en)'s
263
+ [ASN.1 Compiler](https://wildboarsoftware.com/en/asn1-compilation). You can look
264
+ at the source code for the NPM package `@wildboar/x500` for an example for how
265
+ it works.
266
+
267
+ ### Error Handling
268
+
269
+ This library throws a few subtypes of `ASN1Error`, which is a subtype of
270
+ `Error`. These are:
271
+
272
+ - `ASN1NotImplementedError`, which is thrown when some functionality of this
273
+ library is not implemented.
274
+ - `ASN1RecursionError`, which is thrown when an ASN.1 element is too deeply
275
+ constructed (e.g. a string is encoded on a construction of constructions of
276
+ constructions, etc.).
277
+ - `ASN1TruncationError`, which is thrown when the ASN.1 element was too short.
278
+ This error may be thrown when you are receiving encoded ASN.1 elements over a
279
+ network and you simply have not received the complete encoding yet. For this
280
+ reason, if you are reading ASN.1 elements from a network buffer, you may have
281
+ to catch this error and just wait for more data to come in.
282
+ - `ASN1OverflowError`, which is thrown when an encoded data type, such as an
283
+ `INTEGER` or an arc of an `OBJECT IDENTIFIER` encodes such a large value that
284
+ this library cannot encode or decode it.
285
+ - `ASN1SizeError`, which is thrown when a value is encoded on an incorrect
286
+ number of bytes. This can happen with a `UNIVERSAL` type is encoded on a wrong
287
+ number of bytes (such as a `BOOLEAN` being encoded on more than one byte), or
288
+ it can be thrown by third-party libraries when a `SIZE` constraint is
289
+ violated.
290
+ - `ASN1PaddingError`, which is thrown when an encoded value has prohibited
291
+ padding bytes. For instance, in the Basic Encoding Rules encoding of an
292
+ `INTEGER`, the integer must be encoded on the minimum number of octets
293
+ possible; any encoding containing more than the minimum would throw this
294
+ error.
295
+ - `ASN1UndefinedError`, which is thrown when some encoding is not defined, such
296
+ as an unrecognized encoding for a `REAL` value.
297
+ - `ASN1CharactersError`, which is thrown when a string contains a character that
298
+ is prohibited for that string type.
299
+ - `ASN1ConstructionError`, which is thrown when the construction of an ASN.1
300
+ element is incorrect, such as an `INTEGER` being "constructed." This may also
301
+ be thrown by third-party libraries when a `SEQUENCE` is constructed of an
302
+ invalid sequence of elements.
303
+
304
+ ### BIT STRING
305
+
306
+ In this library, `BIT STRING` is represented by a `Uint8ClampedArray`. Set bits
307
+ are represented by a value of `1` and unset bits are represented by a value of
308
+ `0`. To "pack" these bytes into bytes, you can use `packBits`, and to reverse
309
+ this, you can use `unpackBits`. Note that this does not include the "unused
310
+ bits" prefix that the `BIT STRING` requires; `packBits` and `unpackBits` are
311
+ only responsible for packing eight bits into a byte, and the reverse,
312
+ respectively.
313
+
314
+ ### OBJECT IDENTIFIER
315
+
316
+ `OBJECT IDENTIFIER` is represented as objects of the `ObjectIdentifier` class.
317
+
318
+ You can encode and decode object identifiers to and from their dot-delimited
319
+ string representations (e.g. `2.5.4.3`) using `toString()` and
320
+ `ObjectIdentifier.fromString()` (the latter is a static method.)
321
+
85
322
  ## Future Development
86
323
 
87
324
  - [x] Implement a function for ITU X.690, Section 11.6.
@@ -1,12 +1,12 @@
1
- import type ASN1Element from "./asn1";
2
- import { ASN1TagClass, ASN1Construction, ASN1UniversalType } from "./values";
3
- export default interface ConstructedElementSpecification {
4
- name: string;
5
- optional?: boolean;
6
- tagClass?: ASN1TagClass;
7
- construction?: ASN1Construction;
8
- tagNumber?: ASN1UniversalType;
9
- choice?: ConstructedElementSpecification[];
10
- callback?: (el: ASN1Element) => void;
11
- }
1
+ import type ASN1Element from "./asn1";
2
+ import { ASN1TagClass, ASN1Construction, ASN1UniversalType } from "./values";
3
+ export default interface ConstructedElementSpecification {
4
+ name: string;
5
+ optional?: boolean;
6
+ tagClass?: ASN1TagClass;
7
+ construction?: ASN1Construction;
8
+ tagNumber?: ASN1UniversalType;
9
+ choice?: ConstructedElementSpecification[];
10
+ callback?: (el: ASN1Element) => void;
11
+ }
12
12
  //# sourceMappingURL=ConstructedElementSpecification.d.ts.map
@@ -1,3 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  //# sourceMappingURL=ConstructedElementSpecification.js.map
@@ -1,156 +1,156 @@
1
- import { ASN1Construction, ASN1TagClass } from "./values";
2
- import type Byteable from "./interfaces/Byteable";
3
- import type Named from "./interfaces/Named";
4
- import type Long from "./interfaces/Long";
5
- import type CharacterString from "./types/CharacterString";
6
- import type Elementable from "./interfaces/Elementable";
7
- import type { BOOLEAN, INTEGER, BIT_STRING, OCTET_STRING, OBJECT_IDENTIFIER, ObjectDescriptor, EXTERNAL, REAL, ENUMERATED, EMBEDDED_PDV, UTF8String, RELATIVE_OID, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, TIME, DATE, TIME_OF_DAY, DATE_TIME, DURATION, OID_IRI, RELATIVE_OID_IRI } from "./macros";
8
- export default abstract class ASN1Element implements Byteable, Elementable, Named, Long {
9
- recursionCount: number;
10
- protected static readonly nestingRecursionLimit: number;
11
- name: string;
12
- tagClass: ASN1TagClass;
13
- construction: ASN1Construction;
14
- private _tagNumber;
15
- get tagNumber(): number;
16
- set tagNumber(value: number);
17
- value: Uint8Array;
18
- get length(): number;
19
- abstract fromBytes(bytes: Uint8Array): number;
20
- abstract toBytes(): Uint8Array;
21
- abstract set boolean(value: BOOLEAN);
22
- abstract get boolean(): BOOLEAN;
23
- abstract set integer(value: INTEGER);
24
- abstract get integer(): INTEGER;
25
- abstract set bitString(value: BIT_STRING);
26
- abstract get bitString(): BIT_STRING;
27
- abstract set octetString(value: OCTET_STRING);
28
- abstract get octetString(): OCTET_STRING;
29
- abstract set objectIdentifier(value: OBJECT_IDENTIFIER);
30
- abstract get objectIdentifier(): OBJECT_IDENTIFIER;
31
- abstract set objectDescriptor(value: ObjectDescriptor);
32
- abstract get objectDescriptor(): ObjectDescriptor;
33
- abstract set external(value: EXTERNAL);
34
- abstract get external(): EXTERNAL;
35
- abstract set real(value: REAL);
36
- abstract get real(): REAL;
37
- abstract set enumerated(value: ENUMERATED);
38
- abstract get enumerated(): ENUMERATED;
39
- abstract set embeddedPDV(value: EMBEDDED_PDV);
40
- abstract get embeddedPDV(): EMBEDDED_PDV;
41
- abstract set utf8String(value: UTF8String);
42
- abstract get utf8String(): UTF8String;
43
- abstract set relativeObjectIdentifier(value: RELATIVE_OID);
44
- abstract get relativeObjectIdentifier(): RELATIVE_OID;
45
- abstract set time(value: TIME);
46
- abstract get time(): TIME;
47
- abstract set sequence(value: SEQUENCE<ASN1Element>);
48
- abstract get sequence(): SEQUENCE<ASN1Element>;
49
- abstract set set(value: SET<ASN1Element>);
50
- abstract get set(): SET<ASN1Element>;
51
- abstract set numericString(value: NumericString);
52
- abstract get numericString(): NumericString;
53
- abstract set printableString(value: PrintableString);
54
- abstract get printableString(): PrintableString;
55
- abstract set teletexString(value: TeletexString);
56
- abstract get teletexString(): TeletexString;
57
- abstract set videotexString(value: VideotexString);
58
- abstract get videotexString(): VideotexString;
59
- abstract set ia5String(value: IA5String);
60
- abstract get ia5String(): IA5String;
61
- abstract set utcTime(value: UTCTime);
62
- abstract get utcTime(): UTCTime;
63
- abstract set generalizedTime(value: GeneralizedTime);
64
- abstract get generalizedTime(): GeneralizedTime;
65
- abstract set graphicString(value: GraphicString);
66
- abstract get graphicString(): GraphicString;
67
- abstract set visibleString(value: VisibleString);
68
- abstract get visibleString(): VisibleString;
69
- abstract set generalString(value: GeneralString);
70
- abstract get generalString(): GeneralString;
71
- abstract set universalString(value: UniversalString);
72
- abstract get universalString(): UniversalString;
73
- abstract set characterString(value: CharacterString);
74
- abstract get characterString(): CharacterString;
75
- abstract set bmpString(value: BMPString);
76
- abstract get bmpString(): BMPString;
77
- abstract set date(value: DATE);
78
- abstract get date(): DATE;
79
- abstract set timeOfDay(value: TIME_OF_DAY);
80
- abstract get timeOfDay(): TIME_OF_DAY;
81
- abstract set dateTime(value: DATE_TIME);
82
- abstract get dateTime(): DATE_TIME;
83
- abstract set duration(value: DURATION);
84
- abstract get duration(): DURATION;
85
- abstract set oidIRI(value: OID_IRI);
86
- abstract get oidIRI(): OID_IRI;
87
- abstract set relativeOIDIRI(value: RELATIVE_OID_IRI);
88
- abstract get relativeOIDIRI(): RELATIVE_OID_IRI;
89
- private validateSize;
90
- private validateRange;
91
- sizeConstrainedBitString(min: number, max?: number): BIT_STRING;
92
- sizeConstrainedOctetString(min: number, max?: number): OCTET_STRING;
93
- sizeConstrainedObjectDescriptor(min: number, max?: number): ObjectDescriptor;
94
- sizeConstrainedUTF8String(min: number, max?: number): UTF8String;
95
- sizeConstrainedSequenceOf(min: number, max?: number): SEQUENCE<ASN1Element>;
96
- sizeConstrainedSetOf(min: number, max?: number): SET<ASN1Element>;
97
- sizeConstrainedNumericString(min: number, max?: number): NumericString;
98
- sizeConstrainedPrintableString(min: number, max?: number): PrintableString;
99
- sizeConstrainedTeletexString(min: number, max?: number): TeletexString;
100
- sizeConstrainedVideotexString(min: number, max?: number): VideotexString;
101
- sizeConstrainedIA5String(min: number, max?: number): IA5String;
102
- sizeConstrainedGraphicString(min: number, max?: number): GraphicString;
103
- sizeConstrainedVisibleString(min: number, max?: number): VisibleString;
104
- sizeConstrainedGeneralString(min: number, max?: number): GeneralString;
105
- sizeConstrainedUniversalString(min: number, max?: number): UniversalString;
106
- sizeConstrainedBMPString(min: number, max?: number): BMPString;
107
- rangeConstrainedInteger(min: bigint, max?: bigint): INTEGER;
108
- rangeConstrainedReal(min: bigint, max?: bigint): REAL;
109
- abstract deconstruct(dataType: string): Uint8Array;
110
- validateTag(permittedClasses: ASN1TagClass[], permittedConstruction: ASN1Construction[], permittedNumbers: number[]): number;
111
- set bool(value: BOOLEAN);
112
- get bool(): BOOLEAN;
113
- set int(value: INTEGER);
114
- get int(): INTEGER;
115
- set bits(value: BIT_STRING);
116
- get bits(): BIT_STRING;
117
- set octs(value: OCTET_STRING);
118
- get octs(): OCTET_STRING;
119
- set oid(value: OBJECT_IDENTIFIER);
120
- get oid(): OBJECT_IDENTIFIER;
121
- set odesc(value: ObjectDescriptor);
122
- get odesc(): ObjectDescriptor;
123
- set enum(value: ENUMERATED);
124
- get enum(): ENUMERATED;
125
- set utf8(value: UTF8String);
126
- get utf8(): UTF8String;
127
- set roid(value: RELATIVE_OID);
128
- get roid(): RELATIVE_OID;
129
- set seq(value: SEQUENCE<ASN1Element>);
130
- get seq(): SEQUENCE<ASN1Element>;
131
- set nums(value: NumericString);
132
- get nums(): NumericString;
133
- set prints(value: PrintableString);
134
- get prints(): PrintableString;
135
- set ttex(value: TeletexString);
136
- get ttex(): TeletexString;
137
- set vtex(value: VideotexString);
138
- get vtex(): VideotexString;
139
- set ia5(value: IA5String);
140
- get ia5(): IA5String;
141
- set utc(value: UTCTime);
142
- get utc(): UTCTime;
143
- set gtime(value: GeneralizedTime);
144
- get gtime(): GeneralizedTime;
145
- set ustr(value: UniversalString);
146
- get ustr(): UniversalString;
147
- set bmp(value: BMPString);
148
- get bmp(): BMPString;
149
- abstract get inner(): ASN1Element;
150
- abstract get components(): ASN1Element[];
151
- toElement(): ASN1Element;
152
- fromElement(el: ASN1Element): void;
153
- toString(): string;
154
- toJSON(): unknown;
155
- }
1
+ import { ASN1Construction, ASN1TagClass } from "./values";
2
+ import type Byteable from "./interfaces/Byteable";
3
+ import type Named from "./interfaces/Named";
4
+ import type Long from "./interfaces/Long";
5
+ import type CharacterString from "./types/CharacterString";
6
+ import type Elementable from "./interfaces/Elementable";
7
+ import type { BOOLEAN, INTEGER, BIT_STRING, OCTET_STRING, OBJECT_IDENTIFIER, ObjectDescriptor, EXTERNAL, REAL, ENUMERATED, EMBEDDED_PDV, UTF8String, RELATIVE_OID, SEQUENCE, SET, GraphicString, NumericString, VisibleString, PrintableString, TeletexString, GeneralString, UniversalString, VideotexString, BMPString, IA5String, UTCTime, GeneralizedTime, TIME, DATE, TIME_OF_DAY, DATE_TIME, DURATION, OID_IRI, RELATIVE_OID_IRI } from "./macros";
8
+ export default abstract class ASN1Element implements Byteable, Elementable, Named, Long {
9
+ recursionCount: number;
10
+ protected static readonly nestingRecursionLimit: number;
11
+ name: string;
12
+ tagClass: ASN1TagClass;
13
+ construction: ASN1Construction;
14
+ private _tagNumber;
15
+ get tagNumber(): number;
16
+ set tagNumber(value: number);
17
+ value: Uint8Array;
18
+ get length(): number;
19
+ abstract fromBytes(bytes: Uint8Array): number;
20
+ abstract toBytes(): Uint8Array;
21
+ abstract set boolean(value: BOOLEAN);
22
+ abstract get boolean(): BOOLEAN;
23
+ abstract set integer(value: INTEGER);
24
+ abstract get integer(): INTEGER;
25
+ abstract set bitString(value: BIT_STRING);
26
+ abstract get bitString(): BIT_STRING;
27
+ abstract set octetString(value: OCTET_STRING);
28
+ abstract get octetString(): OCTET_STRING;
29
+ abstract set objectIdentifier(value: OBJECT_IDENTIFIER);
30
+ abstract get objectIdentifier(): OBJECT_IDENTIFIER;
31
+ abstract set objectDescriptor(value: ObjectDescriptor);
32
+ abstract get objectDescriptor(): ObjectDescriptor;
33
+ abstract set external(value: EXTERNAL);
34
+ abstract get external(): EXTERNAL;
35
+ abstract set real(value: REAL);
36
+ abstract get real(): REAL;
37
+ abstract set enumerated(value: ENUMERATED);
38
+ abstract get enumerated(): ENUMERATED;
39
+ abstract set embeddedPDV(value: EMBEDDED_PDV);
40
+ abstract get embeddedPDV(): EMBEDDED_PDV;
41
+ abstract set utf8String(value: UTF8String);
42
+ abstract get utf8String(): UTF8String;
43
+ abstract set relativeObjectIdentifier(value: RELATIVE_OID);
44
+ abstract get relativeObjectIdentifier(): RELATIVE_OID;
45
+ abstract set time(value: TIME);
46
+ abstract get time(): TIME;
47
+ abstract set sequence(value: SEQUENCE<ASN1Element>);
48
+ abstract get sequence(): SEQUENCE<ASN1Element>;
49
+ abstract set set(value: SET<ASN1Element>);
50
+ abstract get set(): SET<ASN1Element>;
51
+ abstract set numericString(value: NumericString);
52
+ abstract get numericString(): NumericString;
53
+ abstract set printableString(value: PrintableString);
54
+ abstract get printableString(): PrintableString;
55
+ abstract set teletexString(value: TeletexString);
56
+ abstract get teletexString(): TeletexString;
57
+ abstract set videotexString(value: VideotexString);
58
+ abstract get videotexString(): VideotexString;
59
+ abstract set ia5String(value: IA5String);
60
+ abstract get ia5String(): IA5String;
61
+ abstract set utcTime(value: UTCTime);
62
+ abstract get utcTime(): UTCTime;
63
+ abstract set generalizedTime(value: GeneralizedTime);
64
+ abstract get generalizedTime(): GeneralizedTime;
65
+ abstract set graphicString(value: GraphicString);
66
+ abstract get graphicString(): GraphicString;
67
+ abstract set visibleString(value: VisibleString);
68
+ abstract get visibleString(): VisibleString;
69
+ abstract set generalString(value: GeneralString);
70
+ abstract get generalString(): GeneralString;
71
+ abstract set universalString(value: UniversalString);
72
+ abstract get universalString(): UniversalString;
73
+ abstract set characterString(value: CharacterString);
74
+ abstract get characterString(): CharacterString;
75
+ abstract set bmpString(value: BMPString);
76
+ abstract get bmpString(): BMPString;
77
+ abstract set date(value: DATE);
78
+ abstract get date(): DATE;
79
+ abstract set timeOfDay(value: TIME_OF_DAY);
80
+ abstract get timeOfDay(): TIME_OF_DAY;
81
+ abstract set dateTime(value: DATE_TIME);
82
+ abstract get dateTime(): DATE_TIME;
83
+ abstract set duration(value: DURATION);
84
+ abstract get duration(): DURATION;
85
+ abstract set oidIRI(value: OID_IRI);
86
+ abstract get oidIRI(): OID_IRI;
87
+ abstract set relativeOIDIRI(value: RELATIVE_OID_IRI);
88
+ abstract get relativeOIDIRI(): RELATIVE_OID_IRI;
89
+ private validateSize;
90
+ private validateRange;
91
+ sizeConstrainedBitString(min: number, max?: number): BIT_STRING;
92
+ sizeConstrainedOctetString(min: number, max?: number): OCTET_STRING;
93
+ sizeConstrainedObjectDescriptor(min: number, max?: number): ObjectDescriptor;
94
+ sizeConstrainedUTF8String(min: number, max?: number): UTF8String;
95
+ sizeConstrainedSequenceOf(min: number, max?: number): SEQUENCE<ASN1Element>;
96
+ sizeConstrainedSetOf(min: number, max?: number): SET<ASN1Element>;
97
+ sizeConstrainedNumericString(min: number, max?: number): NumericString;
98
+ sizeConstrainedPrintableString(min: number, max?: number): PrintableString;
99
+ sizeConstrainedTeletexString(min: number, max?: number): TeletexString;
100
+ sizeConstrainedVideotexString(min: number, max?: number): VideotexString;
101
+ sizeConstrainedIA5String(min: number, max?: number): IA5String;
102
+ sizeConstrainedGraphicString(min: number, max?: number): GraphicString;
103
+ sizeConstrainedVisibleString(min: number, max?: number): VisibleString;
104
+ sizeConstrainedGeneralString(min: number, max?: number): GeneralString;
105
+ sizeConstrainedUniversalString(min: number, max?: number): UniversalString;
106
+ sizeConstrainedBMPString(min: number, max?: number): BMPString;
107
+ rangeConstrainedInteger(min: bigint, max?: bigint): INTEGER;
108
+ rangeConstrainedReal(min: bigint, max?: bigint): REAL;
109
+ abstract deconstruct(dataType: string): Uint8Array;
110
+ validateTag(permittedClasses: ASN1TagClass[], permittedConstruction: ASN1Construction[], permittedNumbers: number[]): number;
111
+ set bool(value: BOOLEAN);
112
+ get bool(): BOOLEAN;
113
+ set int(value: INTEGER);
114
+ get int(): INTEGER;
115
+ set bits(value: BIT_STRING);
116
+ get bits(): BIT_STRING;
117
+ set octs(value: OCTET_STRING);
118
+ get octs(): OCTET_STRING;
119
+ set oid(value: OBJECT_IDENTIFIER);
120
+ get oid(): OBJECT_IDENTIFIER;
121
+ set odesc(value: ObjectDescriptor);
122
+ get odesc(): ObjectDescriptor;
123
+ set enum(value: ENUMERATED);
124
+ get enum(): ENUMERATED;
125
+ set utf8(value: UTF8String);
126
+ get utf8(): UTF8String;
127
+ set roid(value: RELATIVE_OID);
128
+ get roid(): RELATIVE_OID;
129
+ set seq(value: SEQUENCE<ASN1Element>);
130
+ get seq(): SEQUENCE<ASN1Element>;
131
+ set nums(value: NumericString);
132
+ get nums(): NumericString;
133
+ set prints(value: PrintableString);
134
+ get prints(): PrintableString;
135
+ set ttex(value: TeletexString);
136
+ get ttex(): TeletexString;
137
+ set vtex(value: VideotexString);
138
+ get vtex(): VideotexString;
139
+ set ia5(value: IA5String);
140
+ get ia5(): IA5String;
141
+ set utc(value: UTCTime);
142
+ get utc(): UTCTime;
143
+ set gtime(value: GeneralizedTime);
144
+ get gtime(): GeneralizedTime;
145
+ set ustr(value: UniversalString);
146
+ get ustr(): UniversalString;
147
+ set bmp(value: BMPString);
148
+ get bmp(): BMPString;
149
+ abstract get inner(): ASN1Element;
150
+ abstract get components(): ASN1Element[];
151
+ toElement(): ASN1Element;
152
+ fromElement(el: ASN1Element): void;
153
+ toString(): string;
154
+ toJSON(): unknown;
155
+ }
156
156
  //# sourceMappingURL=asn1.d.ts.map