///
///
///
/**
* @description 对称加密算法对象
*
* Cipher 对象属于 crypto 模块,创建:
* ```JavaScript
* var c = new crypto.Cipher(crypto.AES, crypto.ECB, ...);
* ```
*
*/
declare class Class_Cipher extends Class_object {
/**
* @description Cipher 构造函数,仅用于 ARC4 初始化
* @param provider 指定加密算法
* @param key 指定加密解密密码
*
*/
constructor(provider: number, key: Class_Buffer);
/**
* @description Cipher 构造函数
* @param provider 指定加密算法
* @param mode 指定分组密码工作模式
* @param key 指定加密解密密码
*
*/
constructor(provider: number, mode: number, key: Class_Buffer);
/**
* @description Cipher 构造函数
* @param provider 指定加密算法
* @param mode 指定分组密码工作模式
* @param key 指定加密解密密码
* @param iv 指定初始向量
*
*/
constructor(provider: number, mode: number, key: Class_Buffer, iv: Class_Buffer);
/**
* @description 返回当前算法名称
*/
readonly name: string;
/**
* @description 返回当前算法密码长度,以位为单位
*/
readonly keySize: number;
/**
* @description 返回当前算法初始向量长度,以字节为单位
*/
readonly ivSize: number;
/**
* @description 返回当前算法数据块长度,以字节为单位
*/
readonly blockSize: number;
/**
* @description 使用填充模式
* @param mode 指定填充模式,缺省为 PADDING_PKCS7
*
*/
paddingMode(mode: number): void;
/**
* @description 使用当前算法密码加密数据
* @param data 指定要加密的数据
* @return 返回加密后的数据
*
*/
encrypt(data: Class_Buffer): Class_Buffer;
encrypt(data: Class_Buffer, callback: (err: Error | undefined | null, retVal: Class_Buffer)=>any): void;
/**
* @description 使用当前算法密码解密数据
* @param data 指定要解密的数据
* @return 返回解密后的数据
*
*/
decrypt(data: Class_Buffer): Class_Buffer;
decrypt(data: Class_Buffer, callback: (err: Error | undefined | null, retVal: Class_Buffer)=>any): void;
}