@zlattice/lattice-js
Version:
Lattice blockchain TypeScript SDK with dual module support (CJS + ESM)
60 lines • 1.72 kB
TypeScript
import { Hash, Input } from "../../crypto/sm3/utils.js";
/**
* 循环左移
*/
export declare function rotl(x: number, n: number): number;
export declare abstract class SHA2<T extends SHA2<T>> extends Hash<T> {
readonly blockLen: number;
outputLen: number;
readonly padOffset: number;
readonly isLE: boolean;
protected abstract process(buf: DataView, offset: number): void;
protected abstract get(): number[];
protected abstract set(...args: number[]): void;
abstract destroy(): void;
protected abstract roundClean(): void;
protected buffer: Uint8Array;
protected view: DataView;
protected finished: boolean;
protected length: number;
protected pos: number;
protected destroyed: boolean;
constructor(blockLen: number, outputLen: number, padOffset: number, isLE: boolean);
update(data: Input): this;
digestInto(out: Uint8Array): void;
digest(): Uint8Array<ArrayBuffer>;
_cloneInto(to?: T): T;
}
declare class SM3 extends SHA2<SM3> {
A: number;
B: number;
C: number;
D: number;
E: number;
F: number;
G: number;
H: number;
constructor();
protected get(): [
number,
number,
number,
number,
number,
number,
number,
number
];
protected set(A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number): void;
protected process(view: DataView, offset: number): void;
protected roundClean(): void;
destroy(): void;
}
export declare const sm3: {
(msg: Input): Uint8Array;
outputLen: number;
blockLen: number;
create(): Hash<SM3>;
};
export {};
//# sourceMappingURL=sm3.d.ts.map