/*! 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 {};