BlockCipherMode.d.ts
1.1 KB
import type { BlockCipher } from "../BlockCipher";
import type { Word32Array } from "../../../Word32Array";
export interface BlockCipherModeProps {
cipher: BlockCipher;
iv: Word32Array | undefined;
}
/**
* Abstract base block cipher mode template.
* @abstract
*/
export declare class BlockCipherMode {
protected _props: BlockCipherModeProps;
protected _cipher: BlockCipher;
protected _iv?: Word32Array;
constructor(props: BlockCipherModeProps);
/**
* @abstract
*/
processBlock(words: number[], offset: number): void;
/**
* Creates this mode for encryption.
* @param {BlockCipherModeProps} props
* @abstract
* @example
* var mode = CBC.createEncryptor(cipher, iv.words);
*/
static createEncryptor(props: BlockCipherModeProps): BlockCipherMode;
/**
* Creates this mode for decryption.
* @param {BlockCipherModeProps} props
* @abstract
* @example
* var mode = CBC.createDecryptor(cipher, iv.words);
*/
static createDecryptor(props: BlockCipherModeProps): BlockCipherMode;
}