index.d.ts 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366
  1. /*!
  2. * Copyright (c) 2014, GMO GlobalSign
  3. * Copyright (c) 2015-2022, Peculiar Ventures
  4. * All rights reserved.
  5. *
  6. * Author 2014-2019, Yury Strozhevsky
  7. *
  8. * Redistribution and use in source and binary forms, with or without modification,
  9. * are permitted provided that the following conditions are met:
  10. *
  11. * * Redistributions of source code must retain the above copyright notice, this
  12. * list of conditions and the following disclaimer.
  13. *
  14. * * Redistributions in binary form must reproduce the above copyright notice, this
  15. * list of conditions and the following disclaimer in the documentation and/or
  16. * other materials provided with the distribution.
  17. *
  18. * * Neither the name of the copyright holder nor the names of its
  19. * contributors may be used to endorse or promote products derived from
  20. * this software without specific prior written permission.
  21. *
  22. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  23. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  24. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  25. * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
  26. * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  27. * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  28. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
  29. * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  30. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  31. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  32. *
  33. */
  34. import * as pvtsutils from 'pvtsutils';
  35. interface IBerConvertible {
  36. /**
  37. * Base function for converting block from BER encoded array of bytes
  38. * @param inputBuffer ASN.1 BER encoded array
  39. * @param inputOffset Offset in ASN.1 BER encoded array where decoding should be started
  40. * @param inputLength Maximum length of array of bytes which can be using in this function
  41. * @returns Offset after least decoded byte
  42. */
  43. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  44. /**
  45. * Encoding of current ASN.1 block into ASN.1 encoded array (BER rules)
  46. * @param sizeOnly Flag that we need only a size of encoding, not a real array of bytes
  47. * @returns ASN.1 BER encoded array
  48. */
  49. toBER(sizeOnly?: boolean): ArrayBuffer;
  50. }
  51. interface IDerConvertible {
  52. /**
  53. * Base function for converting block from DER encoded array of bytes
  54. * @param inputBuffer ASN.1 DER encoded array
  55. * @param inputOffset Offset in ASN.1 DER encoded array where decoding should be started
  56. * @param inputLength Maximum length of array of bytes which can be using in this function
  57. * @param expectedLength Expected length of converted VALUE_HEX buffer
  58. * @returns Offset after least decoded byte
  59. */
  60. fromDER(inputBuffer: ArrayBuffer, inputOffset: number, inputLength: number, expectedLength?: number): number;
  61. /**
  62. * Encoding of current ASN.1 block into ASN.1 encoded array (DER rules)
  63. * @param sizeOnly Flag that we need only a size of encoding, not a real array of bytes
  64. * @returns ASN.1 DER encoded array
  65. */
  66. toDER(sizeOnly?: boolean): ArrayBuffer;
  67. }
  68. interface IStringConvertible {
  69. /**
  70. * Returns a string representation of an object
  71. * @returns String representation of the class object
  72. */
  73. toString(): string;
  74. /**
  75. * Creates a class object from the string
  76. * @param data Input string to convert from
  77. */
  78. fromString(data: string): void;
  79. }
  80. interface IDateConvertible {
  81. /**
  82. * Converts a class object into the JavaScrip Date Object
  83. * @returns Date object
  84. */
  85. toDate(): Date;
  86. /**
  87. * Creates a class object from the JavaScript Date object
  88. * @param date Date object
  89. */
  90. fromDate(date: Date): void;
  91. }
  92. declare class ViewWriter {
  93. items: ArrayBuffer[];
  94. /**
  95. * Writes buffer
  96. * @param buf
  97. */
  98. write(buf: ArrayBuffer): void;
  99. /**
  100. * Concatenates all buffers
  101. * @returns Concatenated buffer
  102. */
  103. final(): ArrayBuffer;
  104. }
  105. interface ILocalBaseBlock {
  106. blockLength: number;
  107. error: string;
  108. warnings: string[];
  109. }
  110. interface LocalBaseBlockJson extends ILocalBaseBlock {
  111. blockName: string;
  112. valueBeforeDecode: string;
  113. }
  114. interface LocalBaseBlockParams extends Partial<ILocalBaseBlock> {
  115. valueBeforeDecode?: pvtsutils.BufferSource;
  116. }
  117. interface LocalBaseBlockConstructor<T extends LocalBaseBlock = LocalBaseBlock> {
  118. new (...args: any[]): T;
  119. prototype: T;
  120. NAME: string;
  121. blockName(): string;
  122. }
  123. /**
  124. * Class used as a base block for all remaining ASN.1 classes
  125. */
  126. declare class LocalBaseBlock implements ILocalBaseBlock {
  127. /**
  128. * Name of the block
  129. */
  130. static NAME: string;
  131. /**
  132. * Aux function, need to get a block name. Need to have it here for inheritance
  133. * @returns Returns name of the block
  134. */
  135. static blockName(): string;
  136. blockLength: number;
  137. error: string;
  138. warnings: string[];
  139. /**
  140. * @deprecated since version 3.0.0
  141. */
  142. get valueBeforeDecode(): ArrayBuffer;
  143. /**
  144. * @deprecated since version 3.0.0
  145. */
  146. set valueBeforeDecode(value: ArrayBuffer);
  147. /**
  148. * @since 3.0.0
  149. */
  150. valueBeforeDecodeView: Uint8Array;
  151. /**
  152. * Creates and initializes an object instance of that class
  153. * @param param0 Initialization parameters
  154. */
  155. constructor({ blockLength, error, warnings, valueBeforeDecode, }?: LocalBaseBlockParams);
  156. /**
  157. * Returns a JSON representation of an object
  158. * @returns JSON object
  159. */
  160. toJSON(): LocalBaseBlockJson;
  161. }
  162. interface IHexBlock {
  163. isHexOnly: boolean;
  164. valueHex: pvtsutils.BufferSource;
  165. }
  166. interface HexBlockJson extends Omit<IHexBlock, "valueHex"> {
  167. valueHex: string;
  168. }
  169. type HexBlockParams = Partial<IHexBlock>;
  170. /**
  171. * Class used as a base block for all remaining ASN.1 classes
  172. */
  173. declare function HexBlock<T extends LocalBaseBlockConstructor>(BaseClass: T): {
  174. new (...args: any[]): {
  175. isHexOnly: boolean;
  176. /**
  177. * Binary data in ArrayBuffer representation
  178. *
  179. * @deprecated since version 3.0.0
  180. */
  181. valueHex: ArrayBuffer;
  182. /**
  183. * Binary data in Uint8Array representation
  184. *
  185. * @since 3.0.0
  186. */
  187. valueHexView: Uint8Array;
  188. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  189. toBER(sizeOnly?: boolean): ArrayBuffer;
  190. /**
  191. * Returns a JSON representation of an object
  192. * @returns JSON object
  193. */
  194. toJSON(): {
  195. isHexOnly: boolean;
  196. valueHex: string;
  197. blockName: string;
  198. valueBeforeDecode: string;
  199. blockLength: number;
  200. error: string;
  201. warnings: string[];
  202. };
  203. blockLength: number;
  204. error: string;
  205. warnings: string[];
  206. valueBeforeDecode: ArrayBuffer;
  207. valueBeforeDecodeView: Uint8Array;
  208. };
  209. NAME: string;
  210. blockName(): string;
  211. } & T;
  212. type IValueBlock = ILocalBaseBlock;
  213. type ValueBlockParams = LocalBaseBlockParams;
  214. type ValueBlockJson = LocalBaseBlockJson;
  215. declare class ValueBlock extends LocalBaseBlock implements IValueBlock, IBerConvertible {
  216. static NAME: string;
  217. fromBER(_inputBuffer: ArrayBuffer | Uint8Array, _inputOffset: number, _inputLength: number, _context?: unknown): number;
  218. toBER(_sizeOnly?: boolean, _writer?: ViewWriter): ArrayBuffer;
  219. }
  220. interface ILocalIdentificationBlock {
  221. tagClass: number;
  222. tagNumber: number;
  223. isConstructed: boolean;
  224. }
  225. interface LocalIdentificationBlockParams {
  226. idBlock?: Partial<ILocalIdentificationBlock> & HexBlockParams;
  227. }
  228. interface LocalIdentificationBlockJson extends HexBlockJson, LocalBaseBlockJson, ILocalIdentificationBlock {
  229. }
  230. declare const LocalIdentificationBlock_base: {
  231. new (...args: any[]): {
  232. isHexOnly: boolean;
  233. valueHex: ArrayBuffer;
  234. valueHexView: Uint8Array;
  235. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  236. toBER(sizeOnly?: boolean): ArrayBuffer;
  237. toJSON(): {
  238. isHexOnly: boolean;
  239. valueHex: string;
  240. blockName: string;
  241. valueBeforeDecode: string;
  242. blockLength: number;
  243. error: string;
  244. warnings: string[];
  245. };
  246. blockLength: number;
  247. error: string;
  248. warnings: string[];
  249. valueBeforeDecode: ArrayBuffer;
  250. valueBeforeDecodeView: Uint8Array;
  251. };
  252. NAME: string;
  253. blockName(): string;
  254. } & typeof LocalBaseBlock;
  255. declare class LocalIdentificationBlock extends LocalIdentificationBlock_base implements ILocalIdentificationBlock {
  256. static NAME: string;
  257. tagClass: number;
  258. tagNumber: number;
  259. isConstructed: boolean;
  260. constructor({ idBlock }?: LocalIdentificationBlockParams);
  261. toBER(sizeOnly?: boolean): ArrayBuffer;
  262. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  263. toJSON(): LocalIdentificationBlockJson;
  264. }
  265. interface LocalIdentificationBlock {
  266. /**
  267. * @deprecated since version 3.0.0
  268. */
  269. valueBeforeDecode: ArrayBuffer;
  270. /**
  271. * Binary data in ArrayBuffer representation
  272. *
  273. * @deprecated since version 3.0.0
  274. */
  275. valueHex: ArrayBuffer;
  276. }
  277. interface ILocalLengthBlock {
  278. isIndefiniteForm: boolean;
  279. longFormUsed: boolean;
  280. length: number;
  281. }
  282. interface LocalLengthBlockParams {
  283. lenBlock?: Partial<ILocalLengthBlock>;
  284. }
  285. interface LocalLengthBlockJson extends LocalBaseBlockJson, ILocalLengthBlock {
  286. isIndefiniteForm: boolean;
  287. longFormUsed: boolean;
  288. length: number;
  289. }
  290. declare class LocalLengthBlock extends LocalBaseBlock implements ILocalLengthBlock, IBerConvertible {
  291. static NAME: string;
  292. isIndefiniteForm: boolean;
  293. longFormUsed: boolean;
  294. length: number;
  295. constructor({ lenBlock }?: LocalLengthBlockParams);
  296. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  297. toBER(sizeOnly?: boolean): ArrayBuffer;
  298. toJSON(): LocalLengthBlockJson;
  299. }
  300. interface IAny {
  301. name: string;
  302. optional: boolean;
  303. }
  304. type AnyParams = Partial<IAny>;
  305. declare class Any implements IAny {
  306. name: string;
  307. optional: boolean;
  308. constructor({ name, optional }?: AnyParams);
  309. }
  310. type ConstructedItem = BaseBlock | Any;
  311. interface ILocalConstructedValueBlock {
  312. value: ConstructedItem[];
  313. isIndefiniteForm: boolean;
  314. }
  315. interface LocalConstructedValueBlockParams extends ValueBlockParams, Partial<ILocalConstructedValueBlock> {
  316. }
  317. interface LocalConstructedValueBlockJson extends LocalBaseBlockJson, Omit<ILocalConstructedValueBlock, "value"> {
  318. value: LocalBaseBlockJson[];
  319. }
  320. declare class LocalConstructedValueBlock extends ValueBlock implements ILocalConstructedValueBlock {
  321. static NAME: string;
  322. value: BaseBlock[];
  323. isIndefiniteForm: boolean;
  324. constructor({ value, isIndefiniteForm, ...parameters }?: LocalConstructedValueBlockParams);
  325. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, context?: FromBerContext): number;
  326. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  327. toJSON(): LocalConstructedValueBlockJson;
  328. }
  329. interface ILocalBitStringValueBlock {
  330. unusedBits: number;
  331. isConstructed: boolean;
  332. }
  333. interface LocalBitStringValueBlockParams extends HexBlockParams, LocalConstructedValueBlockParams, Partial<ILocalBitStringValueBlock> {
  334. value?: BitString[];
  335. }
  336. interface LocalBitStringValueBlockJson extends HexBlockJson, LocalConstructedValueBlockJson, ILocalBitStringValueBlock {
  337. }
  338. declare const LocalBitStringValueBlock_base: {
  339. new (...args: any[]): {
  340. isHexOnly: boolean;
  341. valueHex: ArrayBuffer;
  342. valueHexView: Uint8Array;
  343. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  344. toBER(sizeOnly?: boolean): ArrayBuffer;
  345. toJSON(): {
  346. isHexOnly: boolean;
  347. valueHex: string;
  348. blockName: string;
  349. valueBeforeDecode: string;
  350. blockLength: number;
  351. error: string;
  352. warnings: string[];
  353. };
  354. blockLength: number;
  355. error: string;
  356. warnings: string[];
  357. valueBeforeDecode: ArrayBuffer;
  358. valueBeforeDecodeView: Uint8Array;
  359. };
  360. NAME: string;
  361. blockName(): string;
  362. } & typeof LocalConstructedValueBlock;
  363. declare class LocalBitStringValueBlock extends LocalBitStringValueBlock_base implements ILocalBitStringValueBlock {
  364. static NAME: string;
  365. unusedBits: number;
  366. isConstructed: boolean;
  367. constructor({ unusedBits, isConstructed, ...parameters }?: LocalBitStringValueBlockParams);
  368. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, context?: FromBerContext): number;
  369. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  370. toJSON(): LocalBitStringValueBlockJson;
  371. }
  372. interface LocalBitStringValueBlock {
  373. /**
  374. * @deprecated since version 3.0.0
  375. */
  376. valueBeforeDecode: ArrayBuffer;
  377. /**
  378. * Binary data in ArrayBuffer representation
  379. *
  380. * @deprecated since version 3.0.0
  381. */
  382. valueHex: ArrayBuffer;
  383. }
  384. interface BitStringParams extends BaseBlockParams, LocalBitStringValueBlockParams {
  385. }
  386. type BitStringJson = BaseBlockJson<LocalBitStringValueBlockJson>;
  387. declare class BitString extends BaseBlock<LocalBitStringValueBlock, LocalBitStringValueBlockJson> {
  388. static NAME: string;
  389. constructor({ idBlock, lenBlock, ...parameters }?: BitStringParams);
  390. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, context?: FromBerContext): number;
  391. protected onAsciiEncoding(): string;
  392. }
  393. type LocalUtf8StringValueBlockParams = LocalSimpleStringBlockParams;
  394. type LocalUtf8StringValueBlockJson = LocalSimpleStringBlockJson;
  395. declare class LocalUtf8StringValueBlock extends LocalSimpleStringBlock {
  396. static NAME: string;
  397. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  398. fromString(inputString: string): void;
  399. }
  400. interface ILocalStringValueBlock {
  401. value: string;
  402. }
  403. interface LocalStringValueBlockParams extends Omit<HexBlockParams, "isHexOnly">, ValueBlockParams, Partial<ILocalStringValueBlock> {
  404. }
  405. interface LocalStringValueBlockJson extends HexBlockJson, ValueBlockJson, ILocalStringValueBlock {
  406. }
  407. declare const LocalStringValueBlock_base: {
  408. new (...args: any[]): {
  409. isHexOnly: boolean;
  410. valueHex: ArrayBuffer;
  411. valueHexView: Uint8Array;
  412. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  413. toBER(sizeOnly?: boolean): ArrayBuffer;
  414. toJSON(): {
  415. isHexOnly: boolean;
  416. valueHex: string;
  417. blockName: string;
  418. valueBeforeDecode: string;
  419. blockLength: number;
  420. error: string;
  421. warnings: string[];
  422. };
  423. blockLength: number;
  424. error: string;
  425. warnings: string[];
  426. valueBeforeDecode: ArrayBuffer;
  427. valueBeforeDecodeView: Uint8Array;
  428. };
  429. NAME: string;
  430. blockName(): string;
  431. } & typeof ValueBlock;
  432. declare abstract class LocalStringValueBlock extends LocalStringValueBlock_base implements ILocalStringValueBlock {
  433. static NAME: string;
  434. value: string;
  435. constructor({ ...parameters }?: LocalUtf8StringValueBlockParams);
  436. toJSON(): LocalUtf8StringValueBlockJson;
  437. }
  438. interface LocalStringValueBlock {
  439. /**
  440. * @deprecated since version 3.0.0
  441. */
  442. valueBeforeDecode: ArrayBuffer;
  443. /**
  444. * Binary data in ArrayBuffer representation
  445. *
  446. * @deprecated since version 3.0.0
  447. */
  448. valueHex: ArrayBuffer;
  449. }
  450. interface BaseStringBlockParams extends BaseBlockParams, LocalStringValueBlockParams {
  451. }
  452. type BaseStringBlockJson = LocalStringValueBlockJson;
  453. declare abstract class BaseStringBlock<T extends LocalStringValueBlock = LocalStringValueBlock, J extends BaseStringBlockJson = BaseStringBlockJson> extends BaseBlock<T, J> implements IStringConvertible {
  454. static NAME: string;
  455. /**
  456. * String value
  457. * @since 3.0.0
  458. */
  459. getValue(): string;
  460. /**
  461. * String value
  462. * @param value String value
  463. * @since 3.0.0
  464. */
  465. setValue(value: string): void;
  466. constructor({ value, ...parameters }: BaseStringBlockParams | undefined, stringValueBlockType: new () => T);
  467. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  468. /**
  469. * Function converting ArrayBuffer into ASN.1 internal string
  470. * @param inputBuffer ASN.1 BER encoded array
  471. */
  472. abstract fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  473. abstract fromString(inputString: string): void;
  474. protected onAsciiEncoding(): string;
  475. }
  476. type LocalSimpleStringValueBlockParams = LocalStringValueBlockParams;
  477. type LocalSimpleStringValueBlockJson = LocalStringValueBlockJson;
  478. declare class LocalSimpleStringValueBlock extends LocalStringValueBlock {
  479. static NAME: string;
  480. }
  481. interface LocalSimpleStringBlockParams extends BaseBlockParams, LocalSimpleStringValueBlockParams {
  482. }
  483. type LocalSimpleStringBlockJson = LocalSimpleStringValueBlockJson;
  484. declare class LocalSimpleStringBlock extends BaseStringBlock<LocalSimpleStringValueBlock, LocalSimpleStringValueBlockJson> {
  485. static NAME: string;
  486. constructor({ ...parameters }?: LocalSimpleStringBlockParams);
  487. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  488. fromString(inputString: string): void;
  489. }
  490. type LocalBmpStringValueBlockParams = LocalSimpleStringBlockParams;
  491. type LocalBmpStringValueBlockJson = LocalSimpleStringBlockJson;
  492. declare class LocalBmpStringValueBlock extends LocalSimpleStringBlock {
  493. static NAME: string;
  494. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  495. fromString(inputString: string): void;
  496. }
  497. type BmpStringParams = LocalBmpStringValueBlockParams;
  498. type BmpStringJson = LocalBmpStringValueBlockJson;
  499. declare class BmpString extends LocalBmpStringValueBlock {
  500. static NAME: string;
  501. constructor({ ...parameters }?: BmpStringParams);
  502. }
  503. interface ILocalBooleanValueBlock {
  504. value: boolean;
  505. }
  506. interface LocalBooleanValueBlockParams extends ValueBlockParams, HexBlockParams, Partial<ILocalBooleanValueBlock> {
  507. }
  508. interface LocalBooleanValueBlockJson extends ValueBlockJson, HexBlockJson, ILocalBooleanValueBlock {
  509. }
  510. declare const LocalBooleanValueBlock_base: {
  511. new (...args: any[]): {
  512. isHexOnly: boolean;
  513. valueHex: ArrayBuffer;
  514. valueHexView: Uint8Array;
  515. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  516. toBER(sizeOnly?: boolean): ArrayBuffer;
  517. toJSON(): {
  518. isHexOnly: boolean;
  519. valueHex: string;
  520. blockName: string;
  521. valueBeforeDecode: string;
  522. blockLength: number;
  523. error: string;
  524. warnings: string[];
  525. };
  526. blockLength: number;
  527. error: string;
  528. warnings: string[];
  529. valueBeforeDecode: ArrayBuffer;
  530. valueBeforeDecodeView: Uint8Array;
  531. };
  532. NAME: string;
  533. blockName(): string;
  534. } & typeof ValueBlock;
  535. declare class LocalBooleanValueBlock extends LocalBooleanValueBlock_base implements ILocalBooleanValueBlock {
  536. static NAME: string;
  537. get value(): boolean;
  538. set value(value: boolean);
  539. constructor({ value, ...parameters }?: LocalBooleanValueBlockParams);
  540. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  541. toBER(): ArrayBuffer;
  542. toJSON(): LocalBooleanValueBlockJson;
  543. }
  544. interface LocalBooleanValueBlock {
  545. /**
  546. * @deprecated since version 3.0.0
  547. */
  548. valueBeforeDecode: ArrayBuffer;
  549. /**
  550. * Binary data in ArrayBuffer representation
  551. *
  552. * @deprecated since version 3.0.0
  553. */
  554. valueHex: ArrayBuffer;
  555. }
  556. interface BooleanParams extends BaseBlockParams, LocalBooleanValueBlockParams {
  557. }
  558. type BooleanJson = BaseBlockJson<LocalBooleanValueBlockJson>;
  559. declare class Boolean extends BaseBlock<LocalBooleanValueBlock, LocalBooleanValueBlockJson> {
  560. /**
  561. * Gets value
  562. * @since 3.0.0
  563. */
  564. getValue(): boolean;
  565. /**
  566. * Sets value
  567. * @param value Boolean value
  568. * @since 3.0.0
  569. */
  570. setValue(value: boolean): void;
  571. static NAME: string;
  572. constructor(parameters?: BooleanParams);
  573. protected onAsciiEncoding(): string;
  574. }
  575. type CharacterStringParams = LocalSimpleStringBlockParams;
  576. type CharacterStringJson = LocalSimpleStringBlockJson;
  577. declare class CharacterString extends LocalSimpleStringBlock {
  578. static NAME: string;
  579. constructor(parameters?: CharacterStringParams);
  580. }
  581. interface ConstructedParams extends BaseBlockParams, LocalConstructedValueBlockParams {
  582. }
  583. type ConstructedJson = BaseBlockJson<LocalConstructedValueBlockJson>;
  584. declare class Constructed extends BaseBlock<LocalConstructedValueBlock, LocalConstructedValueBlockJson> {
  585. static NAME: string;
  586. constructor(parameters?: ConstructedParams);
  587. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, context?: FromBerContext): number;
  588. }
  589. interface Utf8StringParams extends BaseStringBlockParams, LocalUtf8StringValueBlockParams {
  590. }
  591. type Utf8StringJson = BaseBlockJson<LocalUtf8StringValueBlockJson>;
  592. declare class Utf8String extends LocalUtf8StringValueBlock {
  593. static NAME: string;
  594. constructor(parameters?: Utf8StringParams);
  595. }
  596. type DATEParams = Utf8StringParams;
  597. type DATEJson = Utf8StringJson;
  598. declare class DATE extends Utf8String {
  599. static NAME: string;
  600. constructor(parameters?: DATEParams);
  601. }
  602. type DateTimeParams = Utf8StringParams;
  603. type DateTimeJson = Utf8StringJson;
  604. declare class DateTime extends Utf8String {
  605. static NAME: string;
  606. constructor(parameters?: DateTimeParams);
  607. }
  608. type DurationParams = Utf8StringParams;
  609. type DurationJson = Utf8StringJson;
  610. declare class Duration extends Utf8String {
  611. static NAME: string;
  612. constructor(parameters?: DurationParams);
  613. }
  614. declare class LocalEndOfContentValueBlock extends ValueBlock {
  615. static override: string;
  616. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, _inputLength: number): number;
  617. toBER(_sizeOnly?: boolean): ArrayBuffer;
  618. }
  619. type EndOfContentParams = BaseBlockParams;
  620. type EndOfContentJson = BaseBlockJson;
  621. declare class EndOfContent extends BaseBlock<LocalEndOfContentValueBlock> {
  622. static NAME: string;
  623. constructor(parameters?: EndOfContentParams);
  624. }
  625. interface ILocalIntegerValueBlock {
  626. value: number;
  627. }
  628. interface LocalIntegerValueBlockParams extends HexBlockParams, ValueBlockParams, Partial<ILocalIntegerValueBlock> {
  629. }
  630. interface LocalIntegerValueBlockJson extends HexBlockJson, ValueBlockJson {
  631. valueDec: number;
  632. }
  633. declare const LocalIntegerValueBlock_base: {
  634. new (...args: any[]): {
  635. isHexOnly: boolean;
  636. valueHex: ArrayBuffer;
  637. valueHexView: Uint8Array;
  638. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  639. toBER(sizeOnly?: boolean): ArrayBuffer;
  640. toJSON(): {
  641. isHexOnly: boolean;
  642. valueHex: string;
  643. blockName: string;
  644. valueBeforeDecode: string;
  645. blockLength: number;
  646. error: string;
  647. warnings: string[];
  648. };
  649. blockLength: number;
  650. error: string;
  651. warnings: string[];
  652. valueBeforeDecode: ArrayBuffer;
  653. valueBeforeDecodeView: Uint8Array;
  654. };
  655. NAME: string;
  656. blockName(): string;
  657. } & typeof ValueBlock;
  658. declare class LocalIntegerValueBlock extends LocalIntegerValueBlock_base implements IDerConvertible {
  659. protected setValueHex(): void;
  660. static NAME: string;
  661. private _valueDec;
  662. constructor({ value, ...parameters }?: LocalIntegerValueBlockParams);
  663. set valueDec(v: number);
  664. get valueDec(): number;
  665. fromDER(inputBuffer: ArrayBuffer, inputOffset: number, inputLength: number, expectedLength?: number): number;
  666. toDER(sizeOnly?: boolean): ArrayBuffer;
  667. fromBER(inputBuffer: ArrayBuffer, inputOffset: number, inputLength: number): number;
  668. toBER(sizeOnly?: boolean): ArrayBuffer;
  669. toJSON(): LocalIntegerValueBlockJson;
  670. toString(): string;
  671. }
  672. interface LocalIntegerValueBlock {
  673. /**
  674. * @deprecated since version 3.0.0
  675. */
  676. valueBeforeDecode: ArrayBuffer;
  677. /**
  678. * Binary data in ArrayBuffer representation
  679. *
  680. * @deprecated since version 3.0.0
  681. */
  682. valueHex: ArrayBuffer;
  683. }
  684. interface IntegerParams extends BaseBlockParams, LocalIntegerValueBlockParams {
  685. }
  686. type IntegerJson = BaseBlockJson<LocalIntegerValueBlockJson>;
  687. declare class Integer extends BaseBlock<LocalIntegerValueBlock, LocalIntegerValueBlockJson> {
  688. static NAME: string;
  689. constructor(parameters?: IntegerParams);
  690. /**
  691. * Converts Integer into BigInt
  692. * @throws Throws Error if BigInt is not supported
  693. * @since 3.0.0
  694. */
  695. toBigInt(): bigint;
  696. /**
  697. * Creates Integer from BigInt value
  698. * @param value BigInt value
  699. * @returns ASN.1 Integer
  700. * @throws Throws Error if BigInt is not supported
  701. * @since 3.0.0
  702. */
  703. static fromBigInt(value: number | string | bigint | boolean): Integer;
  704. convertToDER(): Integer;
  705. /**
  706. * Convert current Integer value from DER to BER format
  707. * @returns
  708. */
  709. convertFromDER(): Integer;
  710. protected onAsciiEncoding(): string;
  711. }
  712. type EnumeratedParams = IntegerParams;
  713. type EnumeratedJson = IntegerJson;
  714. declare class Enumerated extends Integer {
  715. static NAME: string;
  716. constructor(parameters?: EnumeratedParams);
  717. }
  718. type VisibleStringParams = LocalSimpleStringBlockParams;
  719. type VisibleStringJson = LocalSimpleStringBlockJson;
  720. declare class VisibleString extends LocalSimpleStringBlock {
  721. static NAME: string;
  722. constructor(parameters?: VisibleStringParams);
  723. }
  724. interface IUTCTime {
  725. year: number;
  726. month: number;
  727. day: number;
  728. hour: number;
  729. minute: number;
  730. second: number;
  731. }
  732. interface UTCTimeParams extends VisibleStringParams {
  733. value?: string;
  734. valueDate?: Date;
  735. }
  736. interface UTCTimeJson extends BaseBlockJson<LocalSimpleStringValueBlockJson>, IUTCTime {
  737. }
  738. type DateStringEncoding = StringEncoding | "iso";
  739. declare class UTCTime extends VisibleString implements IUTCTime, IDateConvertible {
  740. static NAME: string;
  741. year: number;
  742. month: number;
  743. day: number;
  744. hour: number;
  745. minute: number;
  746. second: number;
  747. constructor({ value, valueDate, ...parameters }?: UTCTimeParams);
  748. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  749. /**
  750. * Function converting ASN.1 internal string into ArrayBuffer
  751. * @returns
  752. */
  753. toBuffer(): ArrayBuffer;
  754. /**
  755. * Function converting "Date" object into ASN.1 internal string
  756. * @param {!Date} inputDate JavaScript "Date" object
  757. */
  758. fromDate(inputDate: Date): void;
  759. toDate(): Date;
  760. fromString(inputString: string): void;
  761. toString(encoding?: DateStringEncoding): string;
  762. protected onAsciiEncoding(): string;
  763. toJSON(): UTCTimeJson;
  764. }
  765. interface IGeneralizedTime extends IUTCTime {
  766. millisecond: number;
  767. }
  768. type GeneralizedTimeParams = UTCTimeParams;
  769. interface GeneralizedTimeJson extends UTCTimeJson {
  770. millisecond: number;
  771. }
  772. declare class GeneralizedTime extends UTCTime {
  773. static NAME: string;
  774. millisecond: number;
  775. constructor(parameters?: GeneralizedTimeParams);
  776. fromDate(inputDate: Date): void;
  777. toDate(): Date;
  778. fromString(inputString: string): void;
  779. toString(encoding?: DateStringEncoding): string;
  780. toJSON(): GeneralizedTimeJson;
  781. }
  782. type GeneralStringParams = LocalSimpleStringBlockParams;
  783. type GeneralStringJson = LocalSimpleStringBlockJson;
  784. declare class GeneralString extends LocalSimpleStringBlock {
  785. static NAME: string;
  786. constructor(parameters?: GeneralStringParams);
  787. }
  788. type GraphicStringParams = LocalSimpleStringBlockParams;
  789. type GraphicStringJson = LocalSimpleStringBlockJson;
  790. declare class GraphicString extends LocalSimpleStringBlock {
  791. static NAME: string;
  792. constructor(parameters?: GraphicStringParams);
  793. }
  794. type IA5StringParams = LocalSimpleStringBlockParams;
  795. type IA5StringJson = LocalSimpleStringBlockJson;
  796. declare class IA5String extends LocalSimpleStringBlock {
  797. static NAME: string;
  798. constructor(parameters?: IA5StringParams);
  799. }
  800. type NullParams = BaseBlockParams;
  801. type NullJson = BaseBlockJson<ValueBlockJson>;
  802. declare class Null extends BaseBlock<ValueBlock, ValueBlockJson> {
  803. static NAME: string;
  804. constructor(parameters?: NullParams);
  805. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  806. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  807. protected onAsciiEncoding(): string;
  808. }
  809. type NumericStringParams = LocalSimpleStringBlockParams;
  810. type NumericStringJson = LocalSimpleStringBlockJson;
  811. declare class NumericString extends LocalSimpleStringBlock {
  812. static NAME: string;
  813. constructor(parameters?: NumericStringParams);
  814. }
  815. interface ILocalSidValueBlock {
  816. valueDec: number;
  817. isFirstSid: boolean;
  818. }
  819. interface LocalSidValueBlockParams extends HexBlockParams, ValueBlockParams, Partial<ILocalSidValueBlock> {
  820. }
  821. interface LocalSidValueBlockJson extends HexBlockJson, ValueBlockJson, ILocalSidValueBlock {
  822. }
  823. declare const LocalSidValueBlock_base: {
  824. new (...args: any[]): {
  825. isHexOnly: boolean;
  826. valueHex: ArrayBuffer;
  827. valueHexView: Uint8Array;
  828. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  829. toBER(sizeOnly?: boolean): ArrayBuffer;
  830. toJSON(): {
  831. isHexOnly: boolean;
  832. valueHex: string;
  833. blockName: string;
  834. valueBeforeDecode: string;
  835. blockLength: number;
  836. error: string;
  837. warnings: string[];
  838. };
  839. blockLength: number;
  840. error: string;
  841. warnings: string[];
  842. valueBeforeDecode: ArrayBuffer;
  843. valueBeforeDecodeView: Uint8Array;
  844. };
  845. NAME: string;
  846. blockName(): string;
  847. } & typeof ValueBlock;
  848. declare class LocalSidValueBlock extends LocalSidValueBlock_base implements ILocalSidValueBlock {
  849. static NAME: string;
  850. valueDec: number;
  851. isFirstSid: boolean;
  852. constructor({ valueDec, isFirstSid, ...parameters }?: LocalSidValueBlockParams);
  853. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  854. set valueBigInt(value: bigint);
  855. toBER(sizeOnly?: boolean): ArrayBuffer;
  856. toString(): string;
  857. toJSON(): LocalSidValueBlockJson;
  858. }
  859. interface LocalSidValueBlock {
  860. /**
  861. * @deprecated since version 3.0.0
  862. */
  863. valueBeforeDecode: ArrayBuffer;
  864. /**
  865. * Binary data in ArrayBuffer representation
  866. *
  867. * @deprecated since version 3.0.0
  868. */
  869. valueHex: ArrayBuffer;
  870. }
  871. interface ILocalObjectIdentifierValueBlock {
  872. value: string;
  873. }
  874. interface LocalObjectIdentifierValueBlockParams extends ValueBlockParams, Partial<ILocalObjectIdentifierValueBlock> {
  875. }
  876. interface LocalObjectIdentifierValueBlockJson extends ValueBlockJson, ILocalObjectIdentifierValueBlock {
  877. sidArray: LocalSidValueBlockJson[];
  878. }
  879. declare class LocalObjectIdentifierValueBlock extends ValueBlock implements IStringConvertible {
  880. static NAME: string;
  881. value: LocalSidValueBlock[];
  882. constructor({ value, ...parameters }?: LocalObjectIdentifierValueBlockParams);
  883. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  884. toBER(sizeOnly?: boolean): ArrayBuffer;
  885. fromString(string: string): void;
  886. toString(): string;
  887. toJSON(): LocalObjectIdentifierValueBlockJson;
  888. }
  889. interface ObjectIdentifierParams extends BaseBlockParams, LocalObjectIdentifierValueBlockParams {
  890. }
  891. interface ObjectIdentifierJson extends BaseBlockJson<LocalObjectIdentifierValueBlockJson> {
  892. value: string;
  893. }
  894. declare class ObjectIdentifier extends BaseBlock<LocalObjectIdentifierValueBlock, LocalObjectIdentifierValueBlockJson> {
  895. static NAME: string;
  896. /**
  897. * Gets string representation of Object Identifier
  898. * @since 3.0.0
  899. */
  900. getValue(): string;
  901. /**
  902. * Sets Object Identifier value from string
  903. * @param value String value
  904. * @since 3.0.0
  905. */
  906. setValue(value: string): void;
  907. constructor(parameters?: ObjectIdentifierParams);
  908. protected onAsciiEncoding(): string;
  909. toJSON(): ObjectIdentifierJson;
  910. }
  911. interface ILocalOctetStringValueBlock {
  912. isConstructed: boolean;
  913. }
  914. interface LocalOctetStringValueBlockParams extends HexBlockParams, LocalConstructedValueBlockParams, Partial<ILocalOctetStringValueBlock> {
  915. value?: OctetString[];
  916. }
  917. interface LocalOctetStringValueBlockJson extends HexBlockJson, LocalConstructedValueBlockJson, ILocalOctetStringValueBlock {
  918. }
  919. declare const LocalOctetStringValueBlock_base: {
  920. new (...args: any[]): {
  921. isHexOnly: boolean;
  922. valueHex: ArrayBuffer;
  923. valueHexView: Uint8Array;
  924. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  925. toBER(sizeOnly?: boolean): ArrayBuffer;
  926. toJSON(): {
  927. isHexOnly: boolean;
  928. valueHex: string;
  929. blockName: string;
  930. valueBeforeDecode: string;
  931. blockLength: number;
  932. error: string;
  933. warnings: string[];
  934. };
  935. blockLength: number;
  936. error: string;
  937. warnings: string[];
  938. valueBeforeDecode: ArrayBuffer;
  939. valueBeforeDecodeView: Uint8Array;
  940. };
  941. NAME: string;
  942. blockName(): string;
  943. } & typeof LocalConstructedValueBlock;
  944. declare class LocalOctetStringValueBlock extends LocalOctetStringValueBlock_base {
  945. static NAME: string;
  946. isConstructed: boolean;
  947. constructor({ isConstructed, ...parameters }?: LocalOctetStringValueBlockParams);
  948. fromBER(inputBuffer: ArrayBuffer, inputOffset: number, inputLength: number, context?: FromBerContext): number;
  949. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  950. toJSON(): LocalOctetStringValueBlockJson;
  951. }
  952. interface LocalOctetStringValueBlock {
  953. /**
  954. * @deprecated since version 3.0.0
  955. */
  956. valueBeforeDecode: ArrayBuffer;
  957. /**
  958. * Binary data in ArrayBuffer representation
  959. *
  960. * @deprecated since version 3.0.0
  961. */
  962. valueHex: ArrayBuffer;
  963. }
  964. interface OctetStringParams extends BaseBlockParams, LocalOctetStringValueBlockParams {
  965. }
  966. type OctetStringJson = BaseBlockJson<LocalOctetStringValueBlockJson>;
  967. declare class OctetString extends BaseBlock<LocalOctetStringValueBlock, LocalOctetStringValueBlockJson> {
  968. static NAME: string;
  969. constructor({ idBlock, lenBlock, ...parameters }?: OctetStringParams);
  970. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, context?: FromBerContext): number;
  971. protected onAsciiEncoding(): string;
  972. /**
  973. * Returns OctetString value. If OctetString is constructed, returns concatenated internal OctetString values
  974. * @returns Array buffer
  975. * @since 3.0.0
  976. */
  977. getValue(): ArrayBuffer;
  978. }
  979. interface LocalPrimitiveValueBlockParams extends HexBlockParams, ValueBlockParams {
  980. }
  981. interface LocalPrimitiveValueBlockJson extends HexBlockJson, ValueBlockJson {
  982. }
  983. declare const LocalPrimitiveValueBlock_base: {
  984. new (...args: any[]): {
  985. isHexOnly: boolean;
  986. valueHex: ArrayBuffer;
  987. valueHexView: Uint8Array;
  988. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  989. toBER(sizeOnly?: boolean): ArrayBuffer;
  990. toJSON(): {
  991. isHexOnly: boolean;
  992. valueHex: string;
  993. blockName: string;
  994. valueBeforeDecode: string;
  995. blockLength: number;
  996. error: string;
  997. warnings: string[];
  998. };
  999. blockLength: number;
  1000. error: string;
  1001. warnings: string[];
  1002. valueBeforeDecode: ArrayBuffer;
  1003. valueBeforeDecodeView: Uint8Array;
  1004. };
  1005. NAME: string;
  1006. blockName(): string;
  1007. } & typeof ValueBlock;
  1008. declare class LocalPrimitiveValueBlock extends LocalPrimitiveValueBlock_base {
  1009. static NAME: string;
  1010. constructor({ isHexOnly, ...parameters }?: LocalPrimitiveValueBlockParams);
  1011. }
  1012. interface LocalPrimitiveValueBlock {
  1013. /**
  1014. * @deprecated since version 3.0.0
  1015. */
  1016. valueBeforeDecode: ArrayBuffer;
  1017. /**
  1018. * Binary data in ArrayBuffer representation
  1019. *
  1020. * @deprecated since version 3.0.0
  1021. */
  1022. valueHex: ArrayBuffer;
  1023. }
  1024. interface PrimitiveParams extends BaseBlockParams, LocalPrimitiveValueBlockParams {
  1025. }
  1026. type PrimitiveJson = BaseBlockJson<LocalPrimitiveValueBlockJson>;
  1027. declare class Primitive extends BaseBlock<LocalPrimitiveValueBlock, LocalPrimitiveValueBlockJson> {
  1028. static NAME: string;
  1029. constructor(parameters?: PrimitiveParams);
  1030. }
  1031. type PrintableStringParams = LocalSimpleStringBlockParams;
  1032. type PrintableStringJson = LocalSimpleStringBlockJson;
  1033. declare class PrintableString extends LocalSimpleStringBlock {
  1034. static NAME: string;
  1035. constructor(parameters?: PrintableStringParams);
  1036. }
  1037. interface ILocalRelativeSidValueBlock {
  1038. valueDec: number;
  1039. }
  1040. interface LocalRelativeSidValueBlockParams extends HexBlockParams, ValueBlockParams, Partial<ILocalRelativeSidValueBlock> {
  1041. }
  1042. interface LocalRelativeSidValueBlockJson extends HexBlockJson, ValueBlockJson, ILocalRelativeSidValueBlock {
  1043. }
  1044. declare const LocalRelativeSidValueBlock_base: {
  1045. new (...args: any[]): {
  1046. isHexOnly: boolean;
  1047. valueHex: ArrayBuffer;
  1048. valueHexView: Uint8Array;
  1049. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number, _context?: unknown): number;
  1050. toBER(sizeOnly?: boolean): ArrayBuffer;
  1051. toJSON(): {
  1052. isHexOnly: boolean;
  1053. valueHex: string;
  1054. blockName: string;
  1055. valueBeforeDecode: string;
  1056. blockLength: number;
  1057. error: string;
  1058. warnings: string[];
  1059. };
  1060. blockLength: number;
  1061. error: string;
  1062. warnings: string[];
  1063. valueBeforeDecode: ArrayBuffer;
  1064. valueBeforeDecodeView: Uint8Array;
  1065. };
  1066. NAME: string;
  1067. blockName(): string;
  1068. } & typeof LocalBaseBlock;
  1069. declare class LocalRelativeSidValueBlock extends LocalRelativeSidValueBlock_base implements ILocalRelativeSidValueBlock {
  1070. static NAME: string;
  1071. valueDec: number;
  1072. constructor({ valueDec, ...parameters }?: LocalRelativeSidValueBlockParams);
  1073. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  1074. toBER(sizeOnly?: boolean): ArrayBuffer;
  1075. toString(): string;
  1076. toJSON(): LocalRelativeSidValueBlockJson;
  1077. }
  1078. interface ILocalRelativeObjectIdentifierValueBlock {
  1079. value: string;
  1080. }
  1081. interface LocalRelativeObjectIdentifierValueBlockParams extends ValueBlockParams, Partial<ILocalRelativeObjectIdentifierValueBlock> {
  1082. }
  1083. interface LocalRelativeObjectIdentifierValueBlockJson extends ValueBlockJson, ILocalRelativeObjectIdentifierValueBlock {
  1084. sidArray: LocalRelativeSidValueBlockJson[];
  1085. }
  1086. declare class LocalRelativeObjectIdentifierValueBlock extends ValueBlock implements IStringConvertible {
  1087. static NAME: string;
  1088. value: LocalRelativeSidValueBlock[];
  1089. constructor({ value, ...parameters }?: LocalRelativeObjectIdentifierValueBlockParams);
  1090. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  1091. toBER(sizeOnly?: boolean, _writer?: ViewWriter): ArrayBuffer;
  1092. fromString(string: string): boolean;
  1093. toString(): string;
  1094. toJSON(): LocalRelativeObjectIdentifierValueBlockJson;
  1095. }
  1096. interface RelativeObjectIdentifierParams extends BaseBlockParams, LocalRelativeObjectIdentifierValueBlockParams {
  1097. }
  1098. interface RelativeObjectIdentifierJson extends BaseBlockJson<LocalRelativeObjectIdentifierValueBlockJson> {
  1099. value: string;
  1100. }
  1101. declare class RelativeObjectIdentifier extends BaseBlock<LocalRelativeObjectIdentifierValueBlock, LocalRelativeObjectIdentifierValueBlockJson> {
  1102. /**
  1103. * Gets string representation of Relative Object Identifier
  1104. * @since 3.0.0
  1105. */
  1106. getValue(): string;
  1107. /**
  1108. * Sets Relative Object Identifier value from string
  1109. * @param value String value
  1110. * @since 3.0.0
  1111. */
  1112. setValue(value: string): void;
  1113. static NAME: string;
  1114. constructor(parameters?: RelativeObjectIdentifierParams);
  1115. protected onAsciiEncoding(): string;
  1116. toJSON(): RelativeObjectIdentifierJson;
  1117. }
  1118. type SequenceParams = ConstructedParams;
  1119. type SequenceJson = ConstructedJson;
  1120. declare class Sequence extends Constructed {
  1121. static NAME: string;
  1122. constructor(parameters?: SequenceParams);
  1123. }
  1124. type SetParams = ConstructedParams;
  1125. type SetJson = ConstructedJson;
  1126. declare class Set extends Constructed {
  1127. static NAME: string;
  1128. constructor(parameters?: SetParams);
  1129. }
  1130. type TeletexStringParams = LocalSimpleStringBlockParams;
  1131. type TeletexStringJson = LocalSimpleStringBlockJson;
  1132. declare class TeletexString extends LocalSimpleStringBlock {
  1133. static NAME: string;
  1134. constructor(parameters?: TeletexStringParams);
  1135. }
  1136. type TIMEParams = Utf8StringParams;
  1137. type TIMEJson = Utf8StringJson;
  1138. declare class TIME extends Utf8String {
  1139. static NAME: string;
  1140. constructor(parameters?: TIMEParams);
  1141. }
  1142. type TimeOfDayParams = Utf8StringParams;
  1143. type TimeOfDayJson = Utf8StringJson;
  1144. declare class TimeOfDay extends Utf8String {
  1145. static NAME: string;
  1146. constructor(parameters?: TimeOfDayParams);
  1147. }
  1148. type LocalUniversalStringValueBlockParams = LocalSimpleStringBlockParams;
  1149. type LocalUniversalStringValueBlockJson = LocalSimpleStringBlockJson;
  1150. declare class LocalUniversalStringValueBlock extends LocalSimpleStringBlock {
  1151. static NAME: string;
  1152. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  1153. fromString(inputString: string): void;
  1154. }
  1155. type UniversalStringParams = LocalUniversalStringValueBlockParams;
  1156. type UniversalStringJson = LocalUniversalStringValueBlockJson;
  1157. declare class UniversalString extends LocalUniversalStringValueBlock {
  1158. static NAME: string;
  1159. constructor({ ...parameters }?: UniversalStringParams);
  1160. }
  1161. type VideotexStringParams = LocalSimpleStringBlockParams;
  1162. type VideotexStringJson = LocalSimpleStringBlockJson;
  1163. declare class VideotexString extends LocalSimpleStringBlock {
  1164. static NAME: string;
  1165. constructor(parameters?: VideotexStringParams);
  1166. }
  1167. type AsnType = BaseBlock | EndOfContent | Boolean | Integer | BitString | OctetString | Null | ObjectIdentifier | Enumerated | Utf8String | RelativeObjectIdentifier | TIME | Sequence | Set | NumericString | PrintableString | TeletexString | VideotexString | IA5String | UTCTime | GeneralizedTime | GraphicString | VisibleString | GeneralString | UniversalString | CharacterString | BmpString | DATE | TimeOfDay | DateTime | Duration | Constructed | Primitive;
  1168. interface FromBerResult {
  1169. offset: number;
  1170. result: AsnType;
  1171. }
  1172. interface FromBerOptions {
  1173. maxDepth?: number;
  1174. maxNodes?: number;
  1175. maxContentLength?: number;
  1176. }
  1177. interface FromBerContext {
  1178. depth: number;
  1179. maxDepth: number;
  1180. nodesCount: number;
  1181. maxNodes: number;
  1182. maxContentLength: number;
  1183. }
  1184. declare const DEFAULT_MAX_DEPTH = 100;
  1185. declare const DEFAULT_MAX_NODES = 10000;
  1186. declare const DEFAULT_MAX_CONTENT_LENGTH: number;
  1187. /**
  1188. * Major function for decoding ASN.1 BER array into internal library structures
  1189. * @param inputBuffer ASN.1 BER encoded array of bytes
  1190. * @param options Parser resource limits for untrusted input
  1191. */
  1192. declare function fromBER(inputBuffer: pvtsutils.BufferSource, options?: FromBerOptions): FromBerResult;
  1193. interface IBaseBlock {
  1194. name: string;
  1195. optional: boolean;
  1196. primitiveSchema?: BaseBlock;
  1197. }
  1198. interface BaseBlockParams extends LocalBaseBlockParams, LocalIdentificationBlockParams, LocalLengthBlockParams, Partial<IBaseBlock> {
  1199. }
  1200. type ValueBlockConstructor<T extends ValueBlock = ValueBlock> = new (...args: any[]) => T;
  1201. interface BaseBlockJson<T extends LocalBaseBlockJson = LocalBaseBlockJson> extends LocalBaseBlockJson, Omit<IBaseBlock, "primitiveSchema"> {
  1202. idBlock: LocalIdentificationBlockJson;
  1203. lenBlock: LocalLengthBlockJson;
  1204. valueBlock: T;
  1205. primitiveSchema?: BaseBlockJson;
  1206. }
  1207. type StringEncoding = "ascii" | "hex";
  1208. declare class BaseBlock<T extends ValueBlock = ValueBlock, J extends ValueBlockJson = ValueBlockJson> extends LocalBaseBlock implements IBaseBlock, IBerConvertible {
  1209. static NAME: string;
  1210. idBlock: LocalIdentificationBlock;
  1211. lenBlock: LocalLengthBlock;
  1212. valueBlock: T;
  1213. name: string;
  1214. optional: boolean;
  1215. primitiveSchema?: BaseBlock;
  1216. constructor({ name, optional, primitiveSchema, ...parameters }?: BaseBlockParams, valueBlockType?: ValueBlockConstructor<T>);
  1217. fromBER(inputBuffer: Uint8Array, inputOffset: number, inputLength: number, context?: FromBerContext): number;
  1218. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  1219. toJSON(): BaseBlockJson<J>;
  1220. toString(encoding?: StringEncoding): string;
  1221. protected onAsciiEncoding(): string;
  1222. /**
  1223. * Determines whether two object instances are equal
  1224. * @param other Object to compare with the current object
  1225. */
  1226. isEqual(other: unknown): other is this;
  1227. }
  1228. interface IChoice extends IAny {
  1229. value: BaseBlock[];
  1230. }
  1231. type ChoiceParams = Partial<IChoice>;
  1232. declare class Choice extends Any implements IChoice {
  1233. value: BaseBlock[];
  1234. constructor({ value, ...parameters }?: ChoiceParams);
  1235. }
  1236. interface IRepeated extends IAny {
  1237. value: Any;
  1238. local: boolean;
  1239. }
  1240. type RepeatedParams = Partial<IRepeated>;
  1241. declare class Repeated extends Any {
  1242. value: Any;
  1243. local: boolean;
  1244. constructor({ value, local, ...parameters }?: RepeatedParams);
  1245. }
  1246. interface IRawData {
  1247. data: ArrayBuffer;
  1248. }
  1249. type RawDataParams = Partial<IRawData>;
  1250. /**
  1251. * Special class providing ability to have "toBER/fromBER" for raw ArrayBuffer
  1252. */
  1253. declare class RawData implements IBerConvertible {
  1254. /**
  1255. * @deprecated Since v3.0.0
  1256. */
  1257. get data(): ArrayBuffer;
  1258. /**
  1259. * @deprecated Since v3.0.0
  1260. */
  1261. set data(value: ArrayBuffer);
  1262. /**
  1263. * @since 3.0.0
  1264. */
  1265. dataView: Uint8Array;
  1266. constructor({ data }?: RawDataParams);
  1267. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  1268. toBER(_sizeOnly?: boolean): ArrayBuffer;
  1269. }
  1270. type AsnSchemaType = AsnType | Any | Choice | Repeated;
  1271. interface CompareSchemaSuccess {
  1272. verified: true;
  1273. result: AsnType & Record<string, any>;
  1274. }
  1275. interface CompareSchemaFail {
  1276. verified: false;
  1277. name?: string;
  1278. result: AsnType | {
  1279. error: string;
  1280. };
  1281. }
  1282. type CompareSchemaResult = CompareSchemaSuccess | CompareSchemaFail;
  1283. /**
  1284. * Compare of two ASN.1 object trees
  1285. * @param root Root of input ASN.1 object tree
  1286. * @param inputData Input ASN.1 object tree
  1287. * @param inputSchema Input ASN.1 schema to compare with
  1288. * @return Returns result of comparison
  1289. */
  1290. declare function compareSchema(root: AsnType, inputData: AsnType, inputSchema: AsnSchemaType): CompareSchemaResult;
  1291. /**
  1292. * ASN.1 schema verification for ArrayBuffer data
  1293. * @param inputBuffer Input BER-encoded ASN.1 data
  1294. * @param inputSchema Input ASN.1 schema to verify against to
  1295. * @return
  1296. */
  1297. declare function verifySchema(inputBuffer: pvtsutils.BufferSource, inputSchema: AsnSchemaType): CompareSchemaResult;
  1298. export { Any, BaseBlock, BaseStringBlock, BitString, BmpString, Boolean, CharacterString, Choice, Constructed, DATE, DEFAULT_MAX_CONTENT_LENGTH, DEFAULT_MAX_DEPTH, DEFAULT_MAX_NODES, DateTime, Duration, EndOfContent, Enumerated, GeneralString, GeneralizedTime, GraphicString, HexBlock, IA5String, Integer, Null, NumericString, ObjectIdentifier, OctetString, Primitive, PrintableString, RawData, RelativeObjectIdentifier, Repeated, Sequence, Set, TIME, TeletexString, TimeOfDay, UTCTime, UniversalString, Utf8String, ValueBlock, VideotexString, ViewWriter, VisibleString, compareSchema, fromBER, verifySchema };
  1299. export type { AnyParams, AsnSchemaType, AsnType, BaseBlockJson, BaseBlockParams, BaseStringBlockJson, BaseStringBlockParams, BitStringJson, BitStringParams, BmpStringJson, BmpStringParams, BooleanJson, BooleanParams, CharacterStringJson, CharacterStringParams, ChoiceParams, CompareSchemaFail, CompareSchemaResult, CompareSchemaSuccess, ConstructedJson, ConstructedParams, DATEJson, DATEParams, DateStringEncoding, DateTimeJson, DateTimeParams, DurationJson, DurationParams, EndOfContentJson, EndOfContentParams, EnumeratedJson, EnumeratedParams, FromBerOptions, FromBerResult, GeneralStringJson, GeneralStringParams, GeneralizedTimeJson, GeneralizedTimeParams, GraphicStringJson, GraphicStringParams, HexBlockJson, HexBlockParams, IA5StringJson, IA5StringParams, IAny, IBaseBlock, IBerConvertible, IChoice, IDateConvertible, IDerConvertible, IGeneralizedTime, IHexBlock, IRawData, IRepeated, IStringConvertible, IUTCTime, IValueBlock, IntegerJson, IntegerParams, NullJson, NullParams, NumericStringJson, NumericStringParams, ObjectIdentifierJson, ObjectIdentifierParams, OctetStringJson, OctetStringParams, PrimitiveJson, PrimitiveParams, PrintableStringJson, PrintableStringParams, RawDataParams, RelativeObjectIdentifierJson, RelativeObjectIdentifierParams, RepeatedParams, SequenceJson, SequenceParams, SetJson, SetParams, StringEncoding, TIMEJson, TIMEParams, TeletexStringJson, TeletexStringParams, TimeOfDayJson, TimeOfDayParams, UTCTimeJson, UTCTimeParams, UniversalStringJson, UniversalStringParams, Utf8StringJson, Utf8StringParams, ValueBlockConstructor, ValueBlockJson, ValueBlockParams, VideotexStringJson, VideotexStringParams, VisibleStringJson, VisibleStringParams };