import {Struct, StructCtor} from '@tios/bufio'; export interface SNMap { [k: string]: number; } export interface NSMap { [k: number]: string; } export interface SSMap { [k: string]: string; } export interface ASN1Node extends Struct { readonly type: number; mode: number; opt: number; target: number; raw: Buffer | null; isRaw: boolean; value?: any; explicit(target: number): this; implicit(target: number): this; optional(value?: boolean): this; clean(): boolean; getBodySize(extra?): number; writeBody(bw, extra?): any; readBody(br, extra?): this; encodeBody(extra?): Buffer; decodeBody(data: Buffer, extra?): this; set(...args): this; error(str: string); fromArray(value: any[]): this; fromNumber(num: number): this; fromPEM(str: string): this; } export interface ASN1NodeCtor extends StructCtor { new(...args: any[]): T; decodeBody(data: Buffer, extra?): T; fromArray(value: any[], extra?): T; fromNumber(num: number, extra?): T; fromPEM(pem: string, extra?): T; } export interface ASN1Any extends ASN1Node { node: ASN1Node; } export interface ASN1AnyCtor extends ASN1NodeCtor { } export interface ASN1Sequence extends ASN1Node { } export interface ASN1SequenceCtor extends ASN1NodeCtor { } export interface ASN1Set extends ASN1Node { } export interface ASN1SetCtor extends ASN1NodeCtor { } export interface ASN1Choice extends ASN1Node { node: ASN1Node; } export interface ASN1ChoiceCtor extends ASN1NodeCtor { } export interface ASN1Str extends ASN1Node { readonly encoding: string; value: string; } export interface ASN1StrCtor extends ASN1NodeCtor { } export interface ASN1Bool extends ASN1Node { value: boolean; } export interface ASN1BoolCtor extends ASN1NodeCtor { } export interface ASN1Integer extends ASN1Node { value: Buffer; negative: boolean; toNumber(): number; } export interface ASN1IntegerCtor extends ASN1NodeCtor { } export interface ASN1Unsigned extends ASN1Integer { } export interface ASN1UnsignedCtor extends ASN1IntegerCtor { } export interface ASN1BitString extends ASN1Node { bits: number; value: Buffer; rightAlign(): Buffer; getBit(i: number): number; setBit(i: number, val: number): this; } export interface ASN1BitStringCtor extends ASN1NodeCtor { } export interface ASN1OctString extends ASN1Node { value: Buffer; } export interface ASN1OctStringCtor extends ASN1NodeCtor { } export interface ASN1Null extends ASN1Node { } export interface ASN1NullCtor extends ASN1NodeCtor { } export interface ASN1OID extends ASN1Node { value: Buffer; getAttributeName(): string | null; getSignatureAlgorithmName(): string | null; getSignatureHash(): string | null; getSignatureHashName(): string | null; getKeyAlgorithmName(): string | null; getHashName(): string | null; getCurveName(): string | null; } export interface ASN1OIDCtor extends ASN1NodeCtor { } export interface ASN1Enum extends ASN1Integer { } export interface ASN1EnumCtor extends ASN1NodeCtor { } export interface ASN1Utf8String extends ASN1Str { } export interface ASN1Utf8StringCtor extends ASN1StrCtor { } export interface ASN1RawSequence extends ASN1Node { value: Buffer; } export interface ASN1RawSequenceCtor extends ASN1NodeCtor { } export interface ASN1RawSet extends ASN1RawSequence { } export interface ASN1RawSetCtor extends ASN1RawSequenceCtor { } export interface ASN1NumString extends ASN1Str { } export interface ASN1NumStringCtor extends ASN1StrCtor { } export interface ASN1PrintString extends ASN1Str { } export interface ASN1PrintStringCtor extends ASN1StrCtor { } export interface ASN1T61String extends ASN1Str { } export interface ASN1T61StringCtor extends ASN1StrCtor { } export interface ASN1IA5String extends ASN1Str { } export interface ASN1IA5StringCtor extends ASN1StrCtor { } export interface ASN1GenString extends ASN1Str { } export interface ASN1GenStringCtor extends ASN1StrCtor { } export interface ASN1Time extends ASN1Node { offset: number; value: number; unix(): number; } export interface ASN1TimeCtor extends ASN1NodeCtor { } export interface ASN1UTCTime extends ASN1Time { } export interface ASN1UTCTimeCtor extends ASN1TimeCtor { } export interface ASN1GenTime extends ASN1Time { constructor(...options); } export interface ASN1GenTimeCtor extends ASN1TimeCtor { }