///
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?: any): number;
writeBody(bw: any, extra?: any): any;
readBody(br: any, extra?: any): this;
encodeBody(extra?: any): Buffer;
decodeBody(data: Buffer, extra?: any): this;
set(...args: any[]): this;
error(str: string): any;
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?: any): T;
fromArray(value: any[], extra?: any): T;
fromNumber(num: number, extra?: any): T;
fromPEM(pem: string, extra?: any): 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: any[]): any;
}
export interface ASN1GenTimeCtor extends ASN1TimeCtor {
}