Skip to content

Instantly share code, notes, and snippets.

@yoursunny
Created June 5, 2020 20:41
Show Gist options
  • Save yoursunny/521816e1294bba33a1ffc367cb141490 to your computer and use it in GitHub Desktop.
Save yoursunny/521816e1294bba33a1ffc367cb141490 to your computer and use it in GitHub Desktop.
@types/root__asn1
// Type definitions for @root/asn1 1.0
// Project: https://git.coolaj86.com/coolaj86/asn1.js
// Definitions by: Junxiao Shi <https://github.com/yoursunny>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// Minimum TypeScript Version: 3.7
export {};
interface Element<V extends string|Uint8Array> {
type: number;
lengthSize: number;
length: number;
value?: V;
children?: Array<Element<V>>;
}
export type ElementHex = Element<string>;
export type ElementBuffer = Element<Uint8Array>;
export interface ElementInput {
type: number;
value?: string|Uint8Array;
children?: ElementInput[];
}
export type ArrJson = [string, string | ArrJson[]];
export type ArrBuffer = [number, Uint8Array | ArrBuffer[]];
export type ArrInput = [string|number, string|Uint8Array|ArrInput[]];
export function parseVerbose(buf: Uint8Array, opts?: { json?: false }): ElementBuffer;
export function parseVerbose(buf: Uint8Array, opts: { json: true }): ElementHex;
export function parse(opts: { der: Uint8Array, verbose?: false, json?: true }): ArrJson;
export function parse(opts: { der: Uint8Array, verbose?: false, json: false }): ArrBuffer;
export function parse(opts: { der: Uint8Array, verbose: true, json?: true }): ElementHex;
export function parse(opts: { der: Uint8Array, verbose: true, json: false }): ElementBuffer;
export function pack(asn1: ElementInput|ArrInput, opts?: { json?: false }): Uint8Array;
export function pack(asn1: ElementInput|ArrInput, opts: { json: true }): string;
export function Any(hexType: string|number, ...hexBytes: string[]): string;
export function UInt(hexBigInt: string): string;
export function BitStr(hexBitStream: string): string;
{
"private": true,
"name": "@types/root__asn1"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment