UNPKG

gnablib

Version:

A lean, zero dependency library to provide a useful base for your project.

60 lines (59 loc) 2.06 kB
/*! 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 {};