@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
TypeScript
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>;
}