@ivujs/i-utils
Version:
前端模块化 JavaScript 工具库
57 lines (56 loc) • 1.74 kB
TypeScript
import * as sm4 from "./sm4.js";
/**
* sm4传参和返回的类型,不管是传参还是返回值固定是这几个
*/
export type SM4DataType = string | Uint8Array | ArrayBuffer | number[];
/**
* sm4通用配置
*/
export interface SM4Options {
mode?: keyof typeof sm4.MODE;
iv?: SM4DataType;
padding?: "pkcs#7";
output?: keyof typeof sm4.OUTPUT;
}
/**
* sm4 加密
* @param {string} str 字符串
* @param {string} key 秘钥
* @param {Object} options 配置
* @returns {string} 加密后的字符串
*/
export declare function sm4Encrypt(str: string, key: SM4DataType, options?: SM4Options): SM4DataType;
/**
* sm4 解密
* @param {string} str 字符串
* @param {string} key 秘钥
* @param {Object} options 配置
* @returns {string} 解密后的数据
*/
export declare function sm4Decrypt(str: string, key: SM4DataType, options?: SM4Options): SM4DataType;
/**
* 生成sm4的key
* @param {string} inputFormat 输入类型 可以任意字符串,其中固定的uint8array、array、hex这3个字符串,会对应生成类型数据
* @returns {SM4DataType} 生成的key
*/
export declare const generateSM4Key: (inputFormat?: string) => SM4DataType;
/**
* 生成sm4的iv
* @param {string} inputFormat 输入类型 可以任意字符串,其中固定的uint8array、array、hex这3个字符串,会对应生成类型数据
* @returns {SM4DataType} 生成的iv
*/
export declare const generateSM4Iv: (inputFormat?: string) => SM4DataType;
export declare const SM4: {
MODE: {
ECB: string;
CBC: string;
};
PADDING: string;
OUTPUT: {
HEX: string;
UTF8: string;
ARRAY: string;
UINT8ARRAY: string;
ARRAYBUFFER: string;
};
};