UNPKG

@li0ard/gost3413

Version:

Cipher modes and padding's according to GOST R 34.13-2015 in pure TypeScript

37 lines (36 loc) 1.25 kB
import { type CipherFunc, type TArg, type TRet } from "./utils.js"; /** Multilinear Galois Mode (MGM) class */ export declare class MGM { tag_size: number; encrypter: CipherFunc; blockSize: number; max_size: bigint; r: number; /** * Prepare nonce * * Just clear MSB bit * @param nonce Nonce */ static nonce_prepare(nonce: TArg<Uint8Array>): TRet<Uint8Array>; constructor(encrypter: CipherFunc, blockSize: number, tagSize?: number); private validateNonce; private validateSizes; private mul; private crypt; private auth; /** * Seal plaintext * @param nonce Nonce (blocksized) * @param plaintext Data to be encrypted and authenticated * @param additional_data Additional data to be authenticated */ seal(nonce: TArg<Uint8Array>, plaintext: TArg<Uint8Array>, additional_data: TArg<Uint8Array>): TRet<Uint8Array>; /** * Open ciphertext * @param nonce Nonce (blocksized) * @param ciphertext Data to be decrypted and authenticated * @param additional_data Additional data to be authenticated */ open(nonce: TArg<Uint8Array>, ciphertext: TArg<Uint8Array>, additional_data: TArg<Uint8Array>): TRet<Uint8Array>; }