index.d.ts 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350
  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): 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): 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): 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 IBaseBlock {
  301. name: string;
  302. optional: boolean;
  303. primitiveSchema?: BaseBlock;
  304. }
  305. interface BaseBlockParams extends LocalBaseBlockParams, LocalIdentificationBlockParams, LocalLengthBlockParams, Partial<IBaseBlock> {
  306. }
  307. type ValueBlockConstructor<T extends ValueBlock = ValueBlock> = new (...args: any[]) => T;
  308. interface BaseBlockJson<T extends LocalBaseBlockJson = LocalBaseBlockJson> extends LocalBaseBlockJson, Omit<IBaseBlock, "primitiveSchema"> {
  309. idBlock: LocalIdentificationBlockJson;
  310. lenBlock: LocalLengthBlockJson;
  311. valueBlock: T;
  312. primitiveSchema?: BaseBlockJson;
  313. }
  314. type StringEncoding = "ascii" | "hex";
  315. declare class BaseBlock<T extends ValueBlock = ValueBlock, J extends ValueBlockJson = ValueBlockJson> extends LocalBaseBlock implements IBaseBlock, IBerConvertible {
  316. static NAME: string;
  317. idBlock: LocalIdentificationBlock;
  318. lenBlock: LocalLengthBlock;
  319. valueBlock: T;
  320. name: string;
  321. optional: boolean;
  322. primitiveSchema?: BaseBlock;
  323. constructor({ name, optional, primitiveSchema, ...parameters }?: BaseBlockParams, valueBlockType?: ValueBlockConstructor<T>);
  324. fromBER(inputBuffer: Uint8Array, inputOffset: number, inputLength: number): number;
  325. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  326. toJSON(): BaseBlockJson<J>;
  327. toString(encoding?: StringEncoding): string;
  328. protected onAsciiEncoding(): string;
  329. /**
  330. * Determines whether two object instances are equal
  331. * @param other Object to compare with the current object
  332. */
  333. isEqual(other: unknown): other is this;
  334. }
  335. type LocalSimpleStringValueBlockParams = LocalStringValueBlockParams;
  336. type LocalSimpleStringValueBlockJson = LocalStringValueBlockJson;
  337. declare class LocalSimpleStringValueBlock extends LocalStringValueBlock {
  338. static NAME: string;
  339. }
  340. interface LocalSimpleStringBlockParams extends BaseBlockParams, LocalSimpleStringValueBlockParams {
  341. }
  342. type LocalSimpleStringBlockJson = LocalSimpleStringValueBlockJson;
  343. declare class LocalSimpleStringBlock extends BaseStringBlock<LocalSimpleStringValueBlock, LocalSimpleStringValueBlockJson> {
  344. static NAME: string;
  345. constructor({ ...parameters }?: LocalSimpleStringBlockParams);
  346. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  347. fromString(inputString: string): void;
  348. }
  349. type LocalUtf8StringValueBlockParams = LocalSimpleStringBlockParams;
  350. type LocalUtf8StringValueBlockJson = LocalSimpleStringBlockJson;
  351. declare class LocalUtf8StringValueBlock extends LocalSimpleStringBlock {
  352. static NAME: string;
  353. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  354. fromString(inputString: string): void;
  355. }
  356. interface ILocalStringValueBlock {
  357. value: string;
  358. }
  359. interface LocalStringValueBlockParams extends Omit<HexBlockParams, "isHexOnly">, ValueBlockParams, Partial<ILocalStringValueBlock> {
  360. }
  361. interface LocalStringValueBlockJson extends HexBlockJson, ValueBlockJson, ILocalStringValueBlock {
  362. }
  363. declare const LocalStringValueBlock_base: {
  364. new (...args: any[]): {
  365. isHexOnly: boolean;
  366. valueHex: ArrayBuffer;
  367. valueHexView: Uint8Array;
  368. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  369. toBER(sizeOnly?: boolean): ArrayBuffer;
  370. toJSON(): {
  371. isHexOnly: boolean;
  372. valueHex: string;
  373. blockName: string;
  374. valueBeforeDecode: string;
  375. blockLength: number;
  376. error: string;
  377. warnings: string[];
  378. };
  379. blockLength: number;
  380. error: string;
  381. warnings: string[];
  382. valueBeforeDecode: ArrayBuffer;
  383. valueBeforeDecodeView: Uint8Array;
  384. };
  385. NAME: string;
  386. blockName(): string;
  387. } & typeof ValueBlock;
  388. declare abstract class LocalStringValueBlock extends LocalStringValueBlock_base implements ILocalStringValueBlock {
  389. static NAME: string;
  390. value: string;
  391. constructor({ ...parameters }?: LocalUtf8StringValueBlockParams);
  392. toJSON(): LocalUtf8StringValueBlockJson;
  393. }
  394. interface LocalStringValueBlock {
  395. /**
  396. * @deprecated since version 3.0.0
  397. */
  398. valueBeforeDecode: ArrayBuffer;
  399. /**
  400. * Binary data in ArrayBuffer representation
  401. *
  402. * @deprecated since version 3.0.0
  403. */
  404. valueHex: ArrayBuffer;
  405. }
  406. interface BaseStringBlockParams extends BaseBlockParams, LocalStringValueBlockParams {
  407. }
  408. type BaseStringBlockJson = LocalStringValueBlockJson;
  409. declare abstract class BaseStringBlock<T extends LocalStringValueBlock = LocalStringValueBlock, J extends BaseStringBlockJson = BaseStringBlockJson> extends BaseBlock<T, J> implements IStringConvertible {
  410. static NAME: string;
  411. /**
  412. * String value
  413. * @since 3.0.0
  414. */
  415. getValue(): string;
  416. /**
  417. * String value
  418. * @param value String value
  419. * @since 3.0.0
  420. */
  421. setValue(value: string): void;
  422. constructor({ value, ...parameters }: BaseStringBlockParams | undefined, stringValueBlockType: new () => T);
  423. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  424. /**
  425. * Function converting ArrayBuffer into ASN.1 internal string
  426. * @param inputBuffer ASN.1 BER encoded array
  427. */
  428. abstract fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  429. abstract fromString(inputString: string): void;
  430. protected onAsciiEncoding(): string;
  431. }
  432. interface LocalPrimitiveValueBlockParams extends HexBlockParams, ValueBlockParams {
  433. }
  434. interface LocalPrimitiveValueBlockJson extends HexBlockJson, ValueBlockJson {
  435. }
  436. declare const LocalPrimitiveValueBlock_base: {
  437. new (...args: any[]): {
  438. isHexOnly: boolean;
  439. valueHex: ArrayBuffer;
  440. valueHexView: Uint8Array;
  441. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  442. toBER(sizeOnly?: boolean): ArrayBuffer;
  443. toJSON(): {
  444. isHexOnly: boolean;
  445. valueHex: string;
  446. blockName: string;
  447. valueBeforeDecode: string;
  448. blockLength: number;
  449. error: string;
  450. warnings: string[];
  451. };
  452. blockLength: number;
  453. error: string;
  454. warnings: string[];
  455. valueBeforeDecode: ArrayBuffer;
  456. valueBeforeDecodeView: Uint8Array;
  457. };
  458. NAME: string;
  459. blockName(): string;
  460. } & typeof ValueBlock;
  461. declare class LocalPrimitiveValueBlock extends LocalPrimitiveValueBlock_base {
  462. static NAME: string;
  463. constructor({ isHexOnly, ...parameters }?: LocalPrimitiveValueBlockParams);
  464. }
  465. interface LocalPrimitiveValueBlock {
  466. /**
  467. * @deprecated since version 3.0.0
  468. */
  469. valueBeforeDecode: ArrayBuffer;
  470. /**
  471. * Binary data in ArrayBuffer representation
  472. *
  473. * @deprecated since version 3.0.0
  474. */
  475. valueHex: ArrayBuffer;
  476. }
  477. interface PrimitiveParams extends BaseBlockParams, LocalPrimitiveValueBlockParams {
  478. }
  479. type PrimitiveJson = BaseBlockJson<LocalPrimitiveValueBlockJson>;
  480. declare class Primitive extends BaseBlock<LocalPrimitiveValueBlock, LocalPrimitiveValueBlockJson> {
  481. static NAME: string;
  482. constructor(parameters?: PrimitiveParams);
  483. }
  484. interface IAny {
  485. name: string;
  486. optional: boolean;
  487. }
  488. type AnyParams = Partial<IAny>;
  489. declare class Any implements IAny {
  490. name: string;
  491. optional: boolean;
  492. constructor({ name, optional }?: AnyParams);
  493. }
  494. type ConstructedItem = BaseBlock | Any;
  495. interface ILocalConstructedValueBlock {
  496. value: ConstructedItem[];
  497. isIndefiniteForm: boolean;
  498. }
  499. interface LocalConstructedValueBlockParams extends ValueBlockParams, Partial<ILocalConstructedValueBlock> {
  500. }
  501. interface LocalConstructedValueBlockJson extends LocalBaseBlockJson, Omit<ILocalConstructedValueBlock, "value"> {
  502. value: LocalBaseBlockJson[];
  503. }
  504. declare class LocalConstructedValueBlock extends ValueBlock implements ILocalConstructedValueBlock {
  505. static NAME: string;
  506. value: BaseBlock[];
  507. isIndefiniteForm: boolean;
  508. constructor({ value, isIndefiniteForm, ...parameters }?: LocalConstructedValueBlockParams);
  509. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  510. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  511. toJSON(): LocalConstructedValueBlockJson;
  512. }
  513. interface ConstructedParams extends BaseBlockParams, LocalConstructedValueBlockParams {
  514. }
  515. type ConstructedJson = BaseBlockJson<LocalConstructedValueBlockJson>;
  516. declare class Constructed extends BaseBlock<LocalConstructedValueBlock, LocalConstructedValueBlockJson> {
  517. static NAME: string;
  518. constructor(parameters?: ConstructedParams);
  519. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  520. }
  521. declare class LocalEndOfContentValueBlock extends ValueBlock {
  522. static override: string;
  523. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, _inputLength: number): number;
  524. toBER(_sizeOnly?: boolean): ArrayBuffer;
  525. }
  526. type EndOfContentParams = BaseBlockParams;
  527. type EndOfContentJson = BaseBlockJson;
  528. declare class EndOfContent extends BaseBlock<LocalEndOfContentValueBlock> {
  529. static NAME: string;
  530. constructor(parameters?: EndOfContentParams);
  531. }
  532. type NullParams = BaseBlockParams;
  533. type NullJson = BaseBlockJson<ValueBlockJson>;
  534. declare class Null extends BaseBlock<ValueBlock, ValueBlockJson> {
  535. static NAME: string;
  536. constructor(parameters?: NullParams);
  537. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  538. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  539. protected onAsciiEncoding(): string;
  540. }
  541. interface ILocalBooleanValueBlock {
  542. value: boolean;
  543. }
  544. interface LocalBooleanValueBlockParams extends ValueBlockParams, HexBlockParams, Partial<ILocalBooleanValueBlock> {
  545. }
  546. interface LocalBooleanValueBlockJson extends ValueBlockJson, HexBlockJson, ILocalBooleanValueBlock {
  547. }
  548. declare const LocalBooleanValueBlock_base: {
  549. new (...args: any[]): {
  550. isHexOnly: boolean;
  551. valueHex: ArrayBuffer;
  552. valueHexView: Uint8Array;
  553. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  554. toBER(sizeOnly?: boolean): ArrayBuffer;
  555. toJSON(): {
  556. isHexOnly: boolean;
  557. valueHex: string;
  558. blockName: string;
  559. valueBeforeDecode: string;
  560. blockLength: number;
  561. error: string;
  562. warnings: string[];
  563. };
  564. blockLength: number;
  565. error: string;
  566. warnings: string[];
  567. valueBeforeDecode: ArrayBuffer;
  568. valueBeforeDecodeView: Uint8Array;
  569. };
  570. NAME: string;
  571. blockName(): string;
  572. } & typeof ValueBlock;
  573. declare class LocalBooleanValueBlock extends LocalBooleanValueBlock_base implements ILocalBooleanValueBlock {
  574. static NAME: string;
  575. get value(): boolean;
  576. set value(value: boolean);
  577. constructor({ value, ...parameters }?: LocalBooleanValueBlockParams);
  578. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  579. toBER(): ArrayBuffer;
  580. toJSON(): LocalBooleanValueBlockJson;
  581. }
  582. interface LocalBooleanValueBlock {
  583. /**
  584. * @deprecated since version 3.0.0
  585. */
  586. valueBeforeDecode: ArrayBuffer;
  587. /**
  588. * Binary data in ArrayBuffer representation
  589. *
  590. * @deprecated since version 3.0.0
  591. */
  592. valueHex: ArrayBuffer;
  593. }
  594. interface BooleanParams extends BaseBlockParams, LocalBooleanValueBlockParams {
  595. }
  596. type BooleanJson = BaseBlockJson<LocalBooleanValueBlockJson>;
  597. declare class Boolean extends BaseBlock<LocalBooleanValueBlock, LocalBooleanValueBlockJson> {
  598. /**
  599. * Gets value
  600. * @since 3.0.0
  601. */
  602. getValue(): boolean;
  603. /**
  604. * Sets value
  605. * @param value Boolean value
  606. * @since 3.0.0
  607. */
  608. setValue(value: boolean): void;
  609. static NAME: string;
  610. constructor(parameters?: BooleanParams);
  611. protected onAsciiEncoding(): string;
  612. }
  613. interface ILocalOctetStringValueBlock {
  614. isConstructed: boolean;
  615. }
  616. interface LocalOctetStringValueBlockParams extends HexBlockParams, LocalConstructedValueBlockParams, Partial<ILocalOctetStringValueBlock> {
  617. value?: OctetString[];
  618. }
  619. interface LocalOctetStringValueBlockJson extends HexBlockJson, LocalConstructedValueBlockJson, ILocalOctetStringValueBlock {
  620. }
  621. declare const LocalOctetStringValueBlock_base: {
  622. new (...args: any[]): {
  623. isHexOnly: boolean;
  624. valueHex: ArrayBuffer;
  625. valueHexView: Uint8Array;
  626. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  627. toBER(sizeOnly?: boolean): ArrayBuffer;
  628. toJSON(): {
  629. isHexOnly: boolean;
  630. valueHex: string;
  631. blockName: string;
  632. valueBeforeDecode: string;
  633. blockLength: number;
  634. error: string;
  635. warnings: string[];
  636. };
  637. blockLength: number;
  638. error: string;
  639. warnings: string[];
  640. valueBeforeDecode: ArrayBuffer;
  641. valueBeforeDecodeView: Uint8Array;
  642. };
  643. NAME: string;
  644. blockName(): string;
  645. } & typeof LocalConstructedValueBlock;
  646. declare class LocalOctetStringValueBlock extends LocalOctetStringValueBlock_base {
  647. static NAME: string;
  648. isConstructed: boolean;
  649. constructor({ isConstructed, ...parameters }?: LocalOctetStringValueBlockParams);
  650. fromBER(inputBuffer: ArrayBuffer, inputOffset: number, inputLength: number): number;
  651. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  652. toJSON(): LocalOctetStringValueBlockJson;
  653. }
  654. interface LocalOctetStringValueBlock {
  655. /**
  656. * @deprecated since version 3.0.0
  657. */
  658. valueBeforeDecode: ArrayBuffer;
  659. /**
  660. * Binary data in ArrayBuffer representation
  661. *
  662. * @deprecated since version 3.0.0
  663. */
  664. valueHex: ArrayBuffer;
  665. }
  666. interface OctetStringParams extends BaseBlockParams, LocalOctetStringValueBlockParams {
  667. }
  668. type OctetStringJson = BaseBlockJson<LocalOctetStringValueBlockJson>;
  669. declare class OctetString extends BaseBlock<LocalOctetStringValueBlock, LocalOctetStringValueBlockJson> {
  670. static NAME: string;
  671. constructor({ idBlock, lenBlock, ...parameters }?: OctetStringParams);
  672. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  673. protected onAsciiEncoding(): string;
  674. /**
  675. * Returns OctetString value. If OctetString is constructed, returns concatenated internal OctetString values
  676. * @returns Array buffer
  677. * @since 3.0.0
  678. */
  679. getValue(): ArrayBuffer;
  680. }
  681. interface ILocalBitStringValueBlock {
  682. unusedBits: number;
  683. isConstructed: boolean;
  684. }
  685. interface LocalBitStringValueBlockParams extends HexBlockParams, LocalConstructedValueBlockParams, Partial<ILocalBitStringValueBlock> {
  686. value?: BitString[];
  687. }
  688. interface LocalBitStringValueBlockJson extends HexBlockJson, LocalConstructedValueBlockJson, ILocalBitStringValueBlock {
  689. }
  690. declare const LocalBitStringValueBlock_base: {
  691. new (...args: any[]): {
  692. isHexOnly: boolean;
  693. valueHex: ArrayBuffer;
  694. valueHexView: Uint8Array;
  695. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  696. toBER(sizeOnly?: boolean): ArrayBuffer;
  697. toJSON(): {
  698. isHexOnly: boolean;
  699. valueHex: string;
  700. blockName: string;
  701. valueBeforeDecode: string;
  702. blockLength: number;
  703. error: string;
  704. warnings: string[];
  705. };
  706. blockLength: number;
  707. error: string;
  708. warnings: string[];
  709. valueBeforeDecode: ArrayBuffer;
  710. valueBeforeDecodeView: Uint8Array;
  711. };
  712. NAME: string;
  713. blockName(): string;
  714. } & typeof LocalConstructedValueBlock;
  715. declare class LocalBitStringValueBlock extends LocalBitStringValueBlock_base implements ILocalBitStringValueBlock {
  716. static NAME: string;
  717. unusedBits: number;
  718. isConstructed: boolean;
  719. constructor({ unusedBits, isConstructed, ...parameters }?: LocalBitStringValueBlockParams);
  720. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  721. toBER(sizeOnly?: boolean, writer?: ViewWriter): ArrayBuffer;
  722. toJSON(): LocalBitStringValueBlockJson;
  723. }
  724. interface LocalBitStringValueBlock {
  725. /**
  726. * @deprecated since version 3.0.0
  727. */
  728. valueBeforeDecode: ArrayBuffer;
  729. /**
  730. * Binary data in ArrayBuffer representation
  731. *
  732. * @deprecated since version 3.0.0
  733. */
  734. valueHex: ArrayBuffer;
  735. }
  736. interface BitStringParams extends BaseBlockParams, LocalBitStringValueBlockParams {
  737. }
  738. type BitStringJson = BaseBlockJson<LocalBitStringValueBlockJson>;
  739. declare class BitString extends BaseBlock<LocalBitStringValueBlock, LocalBitStringValueBlockJson> {
  740. static NAME: string;
  741. constructor({ idBlock, lenBlock, ...parameters }?: BitStringParams);
  742. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  743. protected onAsciiEncoding(): string;
  744. }
  745. interface ILocalIntegerValueBlock {
  746. value: number;
  747. }
  748. interface LocalIntegerValueBlockParams extends HexBlockParams, ValueBlockParams, Partial<ILocalIntegerValueBlock> {
  749. }
  750. interface LocalIntegerValueBlockJson extends HexBlockJson, ValueBlockJson {
  751. valueDec: number;
  752. }
  753. declare const LocalIntegerValueBlock_base: {
  754. new (...args: any[]): {
  755. isHexOnly: boolean;
  756. valueHex: ArrayBuffer;
  757. valueHexView: Uint8Array;
  758. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  759. toBER(sizeOnly?: boolean): ArrayBuffer;
  760. toJSON(): {
  761. isHexOnly: boolean;
  762. valueHex: string;
  763. blockName: string;
  764. valueBeforeDecode: string;
  765. blockLength: number;
  766. error: string;
  767. warnings: string[];
  768. };
  769. blockLength: number;
  770. error: string;
  771. warnings: string[];
  772. valueBeforeDecode: ArrayBuffer;
  773. valueBeforeDecodeView: Uint8Array;
  774. };
  775. NAME: string;
  776. blockName(): string;
  777. } & typeof ValueBlock;
  778. declare class LocalIntegerValueBlock extends LocalIntegerValueBlock_base implements IDerConvertible {
  779. protected setValueHex(): void;
  780. static NAME: string;
  781. private _valueDec;
  782. constructor({ value, ...parameters }?: LocalIntegerValueBlockParams);
  783. set valueDec(v: number);
  784. get valueDec(): number;
  785. fromDER(inputBuffer: ArrayBuffer, inputOffset: number, inputLength: number, expectedLength?: number): number;
  786. toDER(sizeOnly?: boolean): ArrayBuffer;
  787. fromBER(inputBuffer: ArrayBuffer, inputOffset: number, inputLength: number): number;
  788. toBER(sizeOnly?: boolean): ArrayBuffer;
  789. toJSON(): LocalIntegerValueBlockJson;
  790. toString(): string;
  791. }
  792. interface LocalIntegerValueBlock {
  793. /**
  794. * @deprecated since version 3.0.0
  795. */
  796. valueBeforeDecode: ArrayBuffer;
  797. /**
  798. * Binary data in ArrayBuffer representation
  799. *
  800. * @deprecated since version 3.0.0
  801. */
  802. valueHex: ArrayBuffer;
  803. }
  804. interface IntegerParams extends BaseBlockParams, LocalIntegerValueBlockParams {
  805. }
  806. type IntegerJson = BaseBlockJson<LocalIntegerValueBlockJson>;
  807. declare class Integer extends BaseBlock<LocalIntegerValueBlock, LocalIntegerValueBlockJson> {
  808. static NAME: string;
  809. constructor(parameters?: IntegerParams);
  810. /**
  811. * Converts Integer into BigInt
  812. * @throws Throws Error if BigInt is not supported
  813. * @since 3.0.0
  814. */
  815. toBigInt(): bigint;
  816. /**
  817. * Creates Integer from BigInt value
  818. * @param value BigInt value
  819. * @returns ASN.1 Integer
  820. * @throws Throws Error if BigInt is not supported
  821. * @since 3.0.0
  822. */
  823. static fromBigInt(value: number | string | bigint | boolean): Integer;
  824. convertToDER(): Integer;
  825. /**
  826. * Convert current Integer value from DER to BER format
  827. * @returns
  828. */
  829. convertFromDER(): Integer;
  830. protected onAsciiEncoding(): string;
  831. }
  832. type EnumeratedParams = IntegerParams;
  833. type EnumeratedJson = IntegerJson;
  834. declare class Enumerated extends Integer {
  835. static NAME: string;
  836. constructor(parameters?: EnumeratedParams);
  837. }
  838. interface ILocalSidValueBlock {
  839. valueDec: number;
  840. isFirstSid: boolean;
  841. }
  842. interface LocalSidValueBlockParams extends HexBlockParams, ValueBlockParams, Partial<ILocalSidValueBlock> {
  843. }
  844. interface LocalSidValueBlockJson extends HexBlockJson, ValueBlockJson, ILocalSidValueBlock {
  845. }
  846. declare const LocalSidValueBlock_base: {
  847. new (...args: any[]): {
  848. isHexOnly: boolean;
  849. valueHex: ArrayBuffer;
  850. valueHexView: Uint8Array;
  851. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  852. toBER(sizeOnly?: boolean): ArrayBuffer;
  853. toJSON(): {
  854. isHexOnly: boolean;
  855. valueHex: string;
  856. blockName: string;
  857. valueBeforeDecode: string;
  858. blockLength: number;
  859. error: string;
  860. warnings: string[];
  861. };
  862. blockLength: number;
  863. error: string;
  864. warnings: string[];
  865. valueBeforeDecode: ArrayBuffer;
  866. valueBeforeDecodeView: Uint8Array;
  867. };
  868. NAME: string;
  869. blockName(): string;
  870. } & typeof ValueBlock;
  871. declare class LocalSidValueBlock extends LocalSidValueBlock_base implements ILocalSidValueBlock {
  872. static NAME: string;
  873. valueDec: number;
  874. isFirstSid: boolean;
  875. constructor({ valueDec, isFirstSid, ...parameters }?: LocalSidValueBlockParams);
  876. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  877. set valueBigInt(value: bigint);
  878. toBER(sizeOnly?: boolean): ArrayBuffer;
  879. toString(): string;
  880. toJSON(): LocalSidValueBlockJson;
  881. }
  882. interface LocalSidValueBlock {
  883. /**
  884. * @deprecated since version 3.0.0
  885. */
  886. valueBeforeDecode: ArrayBuffer;
  887. /**
  888. * Binary data in ArrayBuffer representation
  889. *
  890. * @deprecated since version 3.0.0
  891. */
  892. valueHex: ArrayBuffer;
  893. }
  894. interface ILocalObjectIdentifierValueBlock {
  895. value: string;
  896. }
  897. interface LocalObjectIdentifierValueBlockParams extends ValueBlockParams, Partial<ILocalObjectIdentifierValueBlock> {
  898. }
  899. interface LocalObjectIdentifierValueBlockJson extends ValueBlockJson, ILocalObjectIdentifierValueBlock {
  900. sidArray: LocalSidValueBlockJson[];
  901. }
  902. declare class LocalObjectIdentifierValueBlock extends ValueBlock implements IStringConvertible {
  903. static NAME: string;
  904. value: LocalSidValueBlock[];
  905. constructor({ value, ...parameters }?: LocalObjectIdentifierValueBlockParams);
  906. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  907. toBER(sizeOnly?: boolean): ArrayBuffer;
  908. fromString(string: string): void;
  909. toString(): string;
  910. toJSON(): LocalObjectIdentifierValueBlockJson;
  911. }
  912. interface ObjectIdentifierParams extends BaseBlockParams, LocalObjectIdentifierValueBlockParams {
  913. }
  914. interface ObjectIdentifierJson extends BaseBlockJson<LocalObjectIdentifierValueBlockJson> {
  915. value: string;
  916. }
  917. declare class ObjectIdentifier extends BaseBlock<LocalObjectIdentifierValueBlock, LocalObjectIdentifierValueBlockJson> {
  918. static NAME: string;
  919. /**
  920. * Gets string representation of Object Identifier
  921. * @since 3.0.0
  922. */
  923. getValue(): string;
  924. /**
  925. * Sets Object Identifier value from string
  926. * @param value String value
  927. * @since 3.0.0
  928. */
  929. setValue(value: string): void;
  930. constructor(parameters?: ObjectIdentifierParams);
  931. protected onAsciiEncoding(): string;
  932. toJSON(): ObjectIdentifierJson;
  933. }
  934. interface ILocalRelativeSidValueBlock {
  935. valueDec: number;
  936. }
  937. interface LocalRelativeSidValueBlockParams extends HexBlockParams, ValueBlockParams, Partial<ILocalRelativeSidValueBlock> {
  938. }
  939. interface LocalRelativeSidValueBlockJson extends HexBlockJson, ValueBlockJson, ILocalRelativeSidValueBlock {
  940. }
  941. declare const LocalRelativeSidValueBlock_base: {
  942. new (...args: any[]): {
  943. isHexOnly: boolean;
  944. valueHex: ArrayBuffer;
  945. valueHexView: Uint8Array;
  946. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  947. toBER(sizeOnly?: boolean): ArrayBuffer;
  948. toJSON(): {
  949. isHexOnly: boolean;
  950. valueHex: string;
  951. blockName: string;
  952. valueBeforeDecode: string;
  953. blockLength: number;
  954. error: string;
  955. warnings: string[];
  956. };
  957. blockLength: number;
  958. error: string;
  959. warnings: string[];
  960. valueBeforeDecode: ArrayBuffer;
  961. valueBeforeDecodeView: Uint8Array;
  962. };
  963. NAME: string;
  964. blockName(): string;
  965. } & typeof LocalBaseBlock;
  966. declare class LocalRelativeSidValueBlock extends LocalRelativeSidValueBlock_base implements ILocalRelativeSidValueBlock {
  967. static NAME: string;
  968. valueDec: number;
  969. constructor({ valueDec, ...parameters }?: LocalRelativeSidValueBlockParams);
  970. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  971. toBER(sizeOnly?: boolean): ArrayBuffer;
  972. toString(): string;
  973. toJSON(): LocalRelativeSidValueBlockJson;
  974. }
  975. interface ILocalRelativeObjectIdentifierValueBlock {
  976. value: string;
  977. }
  978. interface LocalRelativeObjectIdentifierValueBlockParams extends ValueBlockParams, Partial<ILocalRelativeObjectIdentifierValueBlock> {
  979. }
  980. interface LocalRelativeObjectIdentifierValueBlockJson extends ValueBlockJson, ILocalRelativeObjectIdentifierValueBlock {
  981. sidArray: LocalRelativeSidValueBlockJson[];
  982. }
  983. declare class LocalRelativeObjectIdentifierValueBlock extends ValueBlock implements IStringConvertible {
  984. static NAME: string;
  985. value: LocalRelativeSidValueBlock[];
  986. constructor({ value, ...parameters }?: LocalRelativeObjectIdentifierValueBlockParams);
  987. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  988. toBER(sizeOnly?: boolean, _writer?: ViewWriter): ArrayBuffer;
  989. fromString(string: string): boolean;
  990. toString(): string;
  991. toJSON(): LocalRelativeObjectIdentifierValueBlockJson;
  992. }
  993. interface RelativeObjectIdentifierParams extends BaseBlockParams, LocalRelativeObjectIdentifierValueBlockParams {
  994. }
  995. interface RelativeObjectIdentifierJson extends BaseBlockJson<LocalRelativeObjectIdentifierValueBlockJson> {
  996. value: string;
  997. }
  998. declare class RelativeObjectIdentifier extends BaseBlock<LocalRelativeObjectIdentifierValueBlock, LocalRelativeObjectIdentifierValueBlockJson> {
  999. /**
  1000. * Gets string representation of Relative Object Identifier
  1001. * @since 3.0.0
  1002. */
  1003. getValue(): string;
  1004. /**
  1005. * Sets Relative Object Identifier value from string
  1006. * @param value String value
  1007. * @since 3.0.0
  1008. */
  1009. setValue(value: string): void;
  1010. static NAME: string;
  1011. constructor(parameters?: RelativeObjectIdentifierParams);
  1012. protected onAsciiEncoding(): string;
  1013. toJSON(): RelativeObjectIdentifierJson;
  1014. }
  1015. type SequenceParams = ConstructedParams;
  1016. type SequenceJson = ConstructedJson;
  1017. declare class Sequence extends Constructed {
  1018. static NAME: string;
  1019. constructor(parameters?: SequenceParams);
  1020. }
  1021. type SetParams = ConstructedParams;
  1022. type SetJson = ConstructedJson;
  1023. declare class Set extends Constructed {
  1024. static NAME: string;
  1025. constructor(parameters?: SetParams);
  1026. }
  1027. interface Utf8StringParams extends BaseStringBlockParams, LocalUtf8StringValueBlockParams {
  1028. }
  1029. type Utf8StringJson = BaseBlockJson<LocalUtf8StringValueBlockJson>;
  1030. declare class Utf8String extends LocalUtf8StringValueBlock {
  1031. static NAME: string;
  1032. constructor(parameters?: Utf8StringParams);
  1033. }
  1034. type LocalBmpStringValueBlockParams = LocalSimpleStringBlockParams;
  1035. type LocalBmpStringValueBlockJson = LocalSimpleStringBlockJson;
  1036. declare class LocalBmpStringValueBlock extends LocalSimpleStringBlock {
  1037. static NAME: string;
  1038. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  1039. fromString(inputString: string): void;
  1040. }
  1041. type BmpStringParams = LocalBmpStringValueBlockParams;
  1042. type BmpStringJson = LocalBmpStringValueBlockJson;
  1043. declare class BmpString extends LocalBmpStringValueBlock {
  1044. static NAME: string;
  1045. constructor({ ...parameters }?: BmpStringParams);
  1046. }
  1047. type LocalUniversalStringValueBlockParams = LocalSimpleStringBlockParams;
  1048. type LocalUniversalStringValueBlockJson = LocalSimpleStringBlockJson;
  1049. declare class LocalUniversalStringValueBlock extends LocalSimpleStringBlock {
  1050. static NAME: string;
  1051. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  1052. fromString(inputString: string): void;
  1053. }
  1054. type UniversalStringParams = LocalUniversalStringValueBlockParams;
  1055. type UniversalStringJson = LocalUniversalStringValueBlockJson;
  1056. declare class UniversalString extends LocalUniversalStringValueBlock {
  1057. static NAME: string;
  1058. constructor({ ...parameters }?: UniversalStringParams);
  1059. }
  1060. type NumericStringParams = LocalSimpleStringBlockParams;
  1061. type NumericStringJson = LocalSimpleStringBlockJson;
  1062. declare class NumericString extends LocalSimpleStringBlock {
  1063. static NAME: string;
  1064. constructor(parameters?: NumericStringParams);
  1065. }
  1066. type PrintableStringParams = LocalSimpleStringBlockParams;
  1067. type PrintableStringJson = LocalSimpleStringBlockJson;
  1068. declare class PrintableString extends LocalSimpleStringBlock {
  1069. static NAME: string;
  1070. constructor(parameters?: PrintableStringParams);
  1071. }
  1072. type TeletexStringParams = LocalSimpleStringBlockParams;
  1073. type TeletexStringJson = LocalSimpleStringBlockJson;
  1074. declare class TeletexString extends LocalSimpleStringBlock {
  1075. static NAME: string;
  1076. constructor(parameters?: TeletexStringParams);
  1077. }
  1078. type VideotexStringParams = LocalSimpleStringBlockParams;
  1079. type VideotexStringJson = LocalSimpleStringBlockJson;
  1080. declare class VideotexString extends LocalSimpleStringBlock {
  1081. static NAME: string;
  1082. constructor(parameters?: VideotexStringParams);
  1083. }
  1084. type IA5StringParams = LocalSimpleStringBlockParams;
  1085. type IA5StringJson = LocalSimpleStringBlockJson;
  1086. declare class IA5String extends LocalSimpleStringBlock {
  1087. static NAME: string;
  1088. constructor(parameters?: IA5StringParams);
  1089. }
  1090. type GraphicStringParams = LocalSimpleStringBlockParams;
  1091. type GraphicStringJson = LocalSimpleStringBlockJson;
  1092. declare class GraphicString extends LocalSimpleStringBlock {
  1093. static NAME: string;
  1094. constructor(parameters?: GraphicStringParams);
  1095. }
  1096. type VisibleStringParams = LocalSimpleStringBlockParams;
  1097. type VisibleStringJson = LocalSimpleStringBlockJson;
  1098. declare class VisibleString extends LocalSimpleStringBlock {
  1099. static NAME: string;
  1100. constructor(parameters?: VisibleStringParams);
  1101. }
  1102. type GeneralStringParams = LocalSimpleStringBlockParams;
  1103. type GeneralStringJson = LocalSimpleStringBlockJson;
  1104. declare class GeneralString extends LocalSimpleStringBlock {
  1105. static NAME: string;
  1106. constructor(parameters?: GeneralStringParams);
  1107. }
  1108. type CharacterStringParams = LocalSimpleStringBlockParams;
  1109. type CharacterStringJson = LocalSimpleStringBlockJson;
  1110. declare class CharacterString extends LocalSimpleStringBlock {
  1111. static NAME: string;
  1112. constructor(parameters?: CharacterStringParams);
  1113. }
  1114. interface IUTCTime {
  1115. year: number;
  1116. month: number;
  1117. day: number;
  1118. hour: number;
  1119. minute: number;
  1120. second: number;
  1121. }
  1122. interface UTCTimeParams extends VisibleStringParams {
  1123. value?: string;
  1124. valueDate?: Date;
  1125. }
  1126. interface UTCTimeJson extends BaseBlockJson<LocalSimpleStringValueBlockJson>, IUTCTime {
  1127. }
  1128. type DateStringEncoding = StringEncoding | "iso";
  1129. declare class UTCTime extends VisibleString implements IUTCTime, IDateConvertible {
  1130. static NAME: string;
  1131. year: number;
  1132. month: number;
  1133. day: number;
  1134. hour: number;
  1135. minute: number;
  1136. second: number;
  1137. constructor({ value, valueDate, ...parameters }?: UTCTimeParams);
  1138. fromBuffer(inputBuffer: ArrayBuffer | Uint8Array): void;
  1139. /**
  1140. * Function converting ASN.1 internal string into ArrayBuffer
  1141. * @returns
  1142. */
  1143. toBuffer(): ArrayBuffer;
  1144. /**
  1145. * Function converting "Date" object into ASN.1 internal string
  1146. * @param {!Date} inputDate JavaScript "Date" object
  1147. */
  1148. fromDate(inputDate: Date): void;
  1149. toDate(): Date;
  1150. fromString(inputString: string): void;
  1151. toString(encoding?: DateStringEncoding): string;
  1152. protected onAsciiEncoding(): string;
  1153. toJSON(): UTCTimeJson;
  1154. }
  1155. interface IGeneralizedTime extends IUTCTime {
  1156. millisecond: number;
  1157. }
  1158. type GeneralizedTimeParams = UTCTimeParams;
  1159. interface GeneralizedTimeJson extends UTCTimeJson {
  1160. millisecond: number;
  1161. }
  1162. declare class GeneralizedTime extends UTCTime {
  1163. static NAME: string;
  1164. millisecond: number;
  1165. constructor(parameters?: GeneralizedTimeParams);
  1166. fromDate(inputDate: Date): void;
  1167. toDate(): Date;
  1168. fromString(inputString: string): void;
  1169. toString(encoding?: DateStringEncoding): string;
  1170. toJSON(): GeneralizedTimeJson;
  1171. }
  1172. type DATEParams = Utf8StringParams;
  1173. type DATEJson = Utf8StringJson;
  1174. declare class DATE extends Utf8String {
  1175. static NAME: string;
  1176. constructor(parameters?: DATEParams);
  1177. }
  1178. type TimeOfDayParams = Utf8StringParams;
  1179. type TimeOfDayJson = Utf8StringJson;
  1180. declare class TimeOfDay extends Utf8String {
  1181. static NAME: string;
  1182. constructor(parameters?: TimeOfDayParams);
  1183. }
  1184. type DateTimeParams = Utf8StringParams;
  1185. type DateTimeJson = Utf8StringJson;
  1186. declare class DateTime extends Utf8String {
  1187. static NAME: string;
  1188. constructor(parameters?: DateTimeParams);
  1189. }
  1190. type DurationParams = Utf8StringParams;
  1191. type DurationJson = Utf8StringJson;
  1192. declare class Duration extends Utf8String {
  1193. static NAME: string;
  1194. constructor(parameters?: DurationParams);
  1195. }
  1196. type TIMEParams = Utf8StringParams;
  1197. type TIMEJson = Utf8StringJson;
  1198. declare class TIME extends Utf8String {
  1199. static NAME: string;
  1200. constructor(parameters?: TIMEParams);
  1201. }
  1202. interface IChoice extends IAny {
  1203. value: BaseBlock[];
  1204. }
  1205. type ChoiceParams = Partial<IChoice>;
  1206. declare class Choice extends Any implements IChoice {
  1207. value: BaseBlock[];
  1208. constructor({ value, ...parameters }?: ChoiceParams);
  1209. }
  1210. interface IRepeated extends IAny {
  1211. value: Any;
  1212. local: boolean;
  1213. }
  1214. type RepeatedParams = Partial<IRepeated>;
  1215. declare class Repeated extends Any {
  1216. value: Any;
  1217. local: boolean;
  1218. constructor({ value, local, ...parameters }?: RepeatedParams);
  1219. }
  1220. interface IRawData {
  1221. data: ArrayBuffer;
  1222. }
  1223. type RawDataParams = Partial<IRawData>;
  1224. /**
  1225. * Special class providing ability to have "toBER/fromBER" for raw ArrayBuffer
  1226. */
  1227. declare class RawData implements IBerConvertible {
  1228. /**
  1229. * @deprecated Since v3.0.0
  1230. */
  1231. get data(): ArrayBuffer;
  1232. /**
  1233. * @deprecated Since v3.0.0
  1234. */
  1235. set data(value: ArrayBuffer);
  1236. /**
  1237. * @since 3.0.0
  1238. */
  1239. dataView: Uint8Array;
  1240. constructor({ data }?: RawDataParams);
  1241. fromBER(inputBuffer: ArrayBuffer | Uint8Array, inputOffset: number, inputLength: number): number;
  1242. toBER(_sizeOnly?: boolean): ArrayBuffer;
  1243. }
  1244. 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;
  1245. interface FromBerResult {
  1246. offset: number;
  1247. result: AsnType;
  1248. }
  1249. /**
  1250. * Major function for decoding ASN.1 BER array into internal library structures
  1251. * @param inputBuffer ASN.1 BER encoded array of bytes
  1252. */
  1253. declare function fromBER(inputBuffer: pvtsutils.BufferSource): FromBerResult;
  1254. type AsnSchemaType = AsnType | Any | Choice | Repeated;
  1255. interface CompareSchemaSuccess {
  1256. verified: true;
  1257. result: AsnType & Record<string, any>;
  1258. }
  1259. interface CompareSchemaFail {
  1260. verified: false;
  1261. name?: string;
  1262. result: AsnType | {
  1263. error: string;
  1264. };
  1265. }
  1266. type CompareSchemaResult = CompareSchemaSuccess | CompareSchemaFail;
  1267. /**
  1268. * Compare of two ASN.1 object trees
  1269. * @param root Root of input ASN.1 object tree
  1270. * @param inputData Input ASN.1 object tree
  1271. * @param inputSchema Input ASN.1 schema to compare with
  1272. * @return Returns result of comparison
  1273. */
  1274. declare function compareSchema(root: AsnType, inputData: AsnType, inputSchema: AsnSchemaType): CompareSchemaResult;
  1275. /**
  1276. * ASN.1 schema verification for ArrayBuffer data
  1277. * @param inputBuffer Input BER-encoded ASN.1 data
  1278. * @param inputSchema Input ASN.1 schema to verify against to
  1279. * @return
  1280. */
  1281. declare function verifySchema(inputBuffer: pvtsutils.BufferSource, inputSchema: AsnSchemaType): CompareSchemaResult;
  1282. export { Any, BaseBlock, BaseStringBlock, BitString, BmpString, Boolean, CharacterString, Choice, Constructed, DATE, 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 };
  1283. 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, 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 };