chore!: removed @mtcute/wasm
dependency from core
breaking: `WasmCryptoProvider` no longer exists
This commit is contained in:
parent
baa4ccf755
commit
fbf5c8f4bc
5 changed files with 46 additions and 58 deletions
|
@ -51,7 +51,6 @@
|
|||
"dependencies": {
|
||||
"@mtcute/tl": "workspace:^",
|
||||
"@mtcute/tl-runtime": "workspace:^",
|
||||
"@mtcute/wasm": "workspace:^",
|
||||
"@mtcute/file-id": "workspace:^",
|
||||
"@types/events": "3.0.0",
|
||||
"events": "3.2.0",
|
||||
|
|
|
@ -5,4 +5,3 @@ export * from './miller-rabin.js'
|
|||
export * from './mtproto.js'
|
||||
export * from './password.js'
|
||||
export * from './utils.js'
|
||||
export * from './wasm.js'
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
import {
|
||||
createCtr256,
|
||||
ctr256,
|
||||
deflateMaxSize,
|
||||
freeCtr256,
|
||||
gunzip,
|
||||
ige256Decrypt,
|
||||
ige256Encrypt,
|
||||
sha1,
|
||||
sha256,
|
||||
} from '@mtcute/wasm'
|
||||
|
||||
import { BaseCryptoProvider, IAesCtr, ICryptoProvider, IEncryptionScheme } from './abstract.js'
|
||||
|
||||
export abstract class WasmCryptoProvider extends BaseCryptoProvider implements Partial<ICryptoProvider> {
|
||||
abstract randomFill(buf: Uint8Array): void
|
||||
abstract initialize(): Promise<void>
|
||||
|
||||
sha1(data: Uint8Array): Uint8Array {
|
||||
return sha1(data)
|
||||
}
|
||||
|
||||
sha256(data: Uint8Array): Uint8Array {
|
||||
return sha256(data)
|
||||
}
|
||||
|
||||
createAesCtr(key: Uint8Array, iv: Uint8Array): IAesCtr {
|
||||
const ctx = createCtr256(key, iv)
|
||||
|
||||
return {
|
||||
process: (data) => ctr256(ctx, data),
|
||||
close: () => freeCtr256(ctx),
|
||||
}
|
||||
}
|
||||
|
||||
createAesIge(key: Uint8Array, iv: Uint8Array): IEncryptionScheme {
|
||||
return {
|
||||
encrypt: (data) => ige256Encrypt(data, key, iv),
|
||||
decrypt: (data) => ige256Decrypt(data, key, iv),
|
||||
}
|
||||
}
|
||||
|
||||
gzip(data: Uint8Array, maxSize: number): Uint8Array | null {
|
||||
return deflateMaxSize(data, maxSize)
|
||||
}
|
||||
|
||||
gunzip(data: Uint8Array): Uint8Array {
|
||||
return gunzip(data)
|
||||
}
|
||||
}
|
|
@ -1,5 +1,16 @@
|
|||
import { ICryptoProvider, WasmCryptoProvider } from '@mtcute/core/utils.js'
|
||||
import { initSync } from '@mtcute/wasm'
|
||||
import { BaseCryptoProvider, IAesCtr, ICryptoProvider, IEncryptionScheme } from '@mtcute/core/utils.js'
|
||||
import {
|
||||
createCtr256,
|
||||
ctr256,
|
||||
deflateMaxSize,
|
||||
freeCtr256,
|
||||
gunzip,
|
||||
ige256Decrypt,
|
||||
ige256Encrypt,
|
||||
initSync,
|
||||
sha1,
|
||||
sha256,
|
||||
} from '@mtcute/wasm'
|
||||
|
||||
import { loadWasmBinary, WasmInitInput } from './wasm.js'
|
||||
|
||||
|
@ -14,10 +25,42 @@ export interface WebCryptoProviderOptions {
|
|||
wasmInput?: WasmInitInput
|
||||
}
|
||||
|
||||
export class WebCryptoProvider extends WasmCryptoProvider implements ICryptoProvider {
|
||||
export class WebCryptoProvider extends BaseCryptoProvider implements ICryptoProvider {
|
||||
readonly crypto: Crypto
|
||||
private _wasmInput?: WasmInitInput
|
||||
|
||||
sha1(data: Uint8Array): Uint8Array {
|
||||
return sha1(data)
|
||||
}
|
||||
|
||||
sha256(data: Uint8Array): Uint8Array {
|
||||
return sha256(data)
|
||||
}
|
||||
|
||||
createAesCtr(key: Uint8Array, iv: Uint8Array): IAesCtr {
|
||||
const ctx = createCtr256(key, iv)
|
||||
|
||||
return {
|
||||
process: (data) => ctr256(ctx, data),
|
||||
close: () => freeCtr256(ctx),
|
||||
}
|
||||
}
|
||||
|
||||
createAesIge(key: Uint8Array, iv: Uint8Array): IEncryptionScheme {
|
||||
return {
|
||||
encrypt: (data) => ige256Encrypt(data, key, iv),
|
||||
decrypt: (data) => ige256Decrypt(data, key, iv),
|
||||
}
|
||||
}
|
||||
|
||||
gzip(data: Uint8Array, maxSize: number): Uint8Array | null {
|
||||
return deflateMaxSize(data, maxSize)
|
||||
}
|
||||
|
||||
gunzip(data: Uint8Array): Uint8Array {
|
||||
return gunzip(data)
|
||||
}
|
||||
|
||||
constructor(params?: WebCryptoProviderOptions) {
|
||||
super()
|
||||
const crypto = params?.crypto ?? globalThis.crypto
|
||||
|
|
|
@ -126,9 +126,6 @@ importers:
|
|||
'@mtcute/tl-runtime':
|
||||
specifier: workspace:^
|
||||
version: link:../tl-runtime
|
||||
'@mtcute/wasm':
|
||||
specifier: workspace:^
|
||||
version: link:../wasm
|
||||
'@types/events':
|
||||
specifier: 3.0.0
|
||||
version: 3.0.0
|
||||
|
|
Loading…
Reference in a new issue