@blueking/crypto-js-sdk
Version:
crypto-js-sdk
52 lines (51 loc) • 1.43 kB
TypeScript
export default class SM3Digest {
ivByte: number[];
iv: number[];
tj: number[];
BLOCK_BYTE_LEN: number;
vbuf: number[];
dataBuf: number[];
dataBufLen: number;
totalLen: number;
constructor();
ffj(x: number, y: number, z: number, i: number): number;
ggj(x: number, y: number, z: number, i: number): number;
p0(x: number): number;
p1(x: number): number;
/**
* 循环左移
*/
cycleLeft(x: number, moveLen: number): number;
/**
* 消息填充函数
* @param data
* @return
*/
padding(data: number[]): number[];
/**
* 对数据进行分组迭代,每64个字节迭代一次
* <br>1、对消息进行分组,由于是int类型,则每16个分一组,对每一组再调用{@link #expand}进行拓展
* <br>2、使用上一轮的迭代结果V,调用{@link #cf}进行本轮迭代
* <br>3、最后一轮迭代结果复制进缓冲区vbuf
* @param message
*/
iterate(message: number[]): void;
/**
* 消息数据拓展函数
* @param b
* @return
*/
expand(b: number[]): any[][];
/**
* 迭代压缩函数
*
* @param v
* @param w1
* @param w2
* @return
*/
cf(v: number[], w1: number[], w2: number[]): any[];
digest(data: number[]): number[];
update(data: number[], pos: any, len: number): void;
doFinal(): any[];
}