gnablib
Version:
A lean, zero dependency library to provide a useful base for your project.
53 lines (52 loc) • 1.76 kB
TypeScript
/*! Copyright 2023-2024 the gnablib contributors MPL-1.1 */
import { IFullCrypt } from '../interfaces/IFullCrypt.js';
import { IHash } from '../interfaces/IHash.js';
import { IAeadCrypt } from '../interfaces/IAeadCrypt.js';
export declare class Poly1305 implements IHash {
#private;
readonly blockSize = 16;
readonly size = 16;
private _bPos;
constructor(key: Uint8Array);
private hash;
write(data: Uint8Array): void;
sum(): Uint8Array;
sumIn(): Uint8Array;
reset(): void;
newEmpty(): IHash;
clone(): IHash;
static fromCrypt(c: IFullCrypt): Poly1305;
}
interface IFullCryptBuilder {
new (key: Uint8Array, nonce: Uint8Array): IFullCrypt;
}
declare class Poly1305Aead implements IAeadCrypt {
readonly tagSize = 16;
private _hash;
private _crypt;
private _stage;
private readonly _adLen;
private readonly _cLen;
constructor(key: Uint8Array, nonce: Uint8Array, ctor: IFullCryptBuilder);
get blockSize(): 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 ChaCha20_Poly1305 extends Poly1305Aead {
constructor(key: Uint8Array, nonce: Uint8Array);
}
export declare class Salsa20_Poly1305 extends Poly1305Aead {
constructor(key: Uint8Array, nonce: Uint8Array);
}
export declare class XChaCha20_Poly1305 extends Poly1305Aead {
constructor(key: Uint8Array, nonce: Uint8Array);
}
export declare class XSalsa20_Poly1305 extends Poly1305Aead {
constructor(key: Uint8Array, nonce: Uint8Array);
}
export {};