初始版本

This commit is contained in:
cheney
2026-04-15 16:10:29 +08:00
commit ffd4d17f5d
22 changed files with 8483 additions and 0 deletions
+3
View File
@@ -0,0 +1,3 @@
declare module 'gmsm-sm4js' {
export function bindSM4(sjcl: any): void
}
+64
View File
@@ -0,0 +1,64 @@
declare module 'sjcl-with-all' {
export interface BitArray extends Array<number> {}
export interface Codec {
bytes: {
toBits(bytes: number[]): BitArray
fromBits(bits: BitArray): number[]
}
hex: {
toBits(hex: string): BitArray
fromBits(bits: BitArray): string
}
utf8String: {
toBits(str: string): BitArray
fromBits(bits: BitArray): string
}
}
export interface BitArrayUtils {
concat(arrays: BitArray[]): BitArray
bitLength(bits: BitArray): number
clamp(bits: BitArray, length: number): BitArray
partial(length: number, x: number, n: number): number
getPartial(x: number): number
equal(a: BitArray, b: BitArray): boolean
shift(bits: BitArray, shift: number): BitArray
xor(a: BitArray, b: BitArray): BitArray
bitSlice(bits: BitArray, end: number, start?: number): BitArray
bytesToMsb(bytes: number[]): number[]
msbToBytes(msb: number[]): number[]
bitsToBytes(bits: BitArray): number[]
bytesToBits(bytes: number[]): BitArray
}
export interface Mode {
cbc: {
name: string
encrypt(prp: any, plaintext: BitArray, iv: BitArray, adata?: BitArray): BitArray
decrypt(prp: any, ciphertext: BitArray, iv: BitArray, adata?: BitArray): BitArray
}
gcm: {
name: string
encrypt(prp: any, plaintext: BitArray, iv: BitArray, adata?: BitArray, tagLength?: number): BitArray | { data: BitArray, tag: BitArray }
decrypt(prp: any, ciphertext: BitArray, iv: BitArray, adata?: BitArray, tagLength?: number): BitArray | { data: BitArray, tag: BitArray }
}
}
export interface Beware {
[key: string]: (() => void) | any
}
export interface SJCL {
cipher: {
sm4: any
}
codec: Codec
bitArray: BitArrayUtils
mode: Mode
beware: Beware
}
const sjcl: SJCL
export = sjcl
}