gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
60 lines (59 loc) • 2.06 kB
TypeScript
/*! Copyright 2023-2025 the gnablib contributors MPL-1.1 */
import { IHash } from '../interfaces/IHash.js';
import { IAeadCrypt } from '../interfaces/IAeadCrypt.js';
declare abstract class AAscon {
readonly blockSize: number;
readonly aRound: number;
readonly bRound: number;
protected readonly state: Uint8Array<ArrayBuffer>;
protected readonly s32: Uint32Array<ArrayBuffer>;
protected _sPos: number;
constructor(blockSize: number, aRound: number, bRound: number);
protected p(rounds: number): void;
}
declare class _AsconAead extends AAscon implements IAeadCrypt {
#private;
readonly tagSize = 16;
private _stage;
constructor(key: Uint8Array, nonce: Uint8Array, rate: number, aRound: number, bRound: number);
writeAD(data: Uint8Array): void;
private finalizeAD;
encryptInto(enc: Uint8Array, plain: Uint8Array): void;
decryptInto(plain: Uint8Array, enc: Uint8Array): void;
verify(tag: Uint8Array): boolean;
finalize(): Uint8Array;
encryptSize(plainLen: number): number;
}
export declare class Ascon128 extends _AsconAead {
constructor(key: Uint8Array, nonce: Uint8Array);
}
export declare class Ascon128a extends _AsconAead {
constructor(key: Uint8Array, nonce: Uint8Array);
}
export declare class Ascon80pq extends _AsconAead {
constructor(key: Uint8Array, nonce: Uint8Array);
}
declare class _AsconHash extends AAscon implements IHash {
readonly size: number;
private readonly xof;
constructor(rate: number, aRound: number, bRound: number, size: number, xof: boolean);
write(data: Uint8Array): void;
sum(): Uint8Array;
sumIn(): Uint8Array;
reset(): void;
newEmpty(): IHash;
clone(): IHash;
}
export declare class AsconHash extends _AsconHash {
constructor();
}
export declare class AsconHashA extends _AsconHash {
constructor();
}
export declare class AsconXof extends _AsconHash {
constructor(digestSize: number);
}
export declare class AsconXofA extends _AsconHash {
constructor(digestSize: number);
}
export {};