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": {
|
"dependencies": {
|
||||||
"@mtcute/tl": "workspace:^",
|
"@mtcute/tl": "workspace:^",
|
||||||
"@mtcute/tl-runtime": "workspace:^",
|
"@mtcute/tl-runtime": "workspace:^",
|
||||||
"@mtcute/wasm": "workspace:^",
|
|
||||||
"@mtcute/file-id": "workspace:^",
|
"@mtcute/file-id": "workspace:^",
|
||||||
"@types/events": "3.0.0",
|
"@types/events": "3.0.0",
|
||||||
"events": "3.2.0",
|
"events": "3.2.0",
|
||||||
|
|
|
@ -5,4 +5,3 @@ export * from './miller-rabin.js'
|
||||||
export * from './mtproto.js'
|
export * from './mtproto.js'
|
||||||
export * from './password.js'
|
export * from './password.js'
|
||||||
export * from './utils.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 { BaseCryptoProvider, IAesCtr, ICryptoProvider, IEncryptionScheme } from '@mtcute/core/utils.js'
|
||||||
import { initSync } from '@mtcute/wasm'
|
import {
|
||||||
|
createCtr256,
|
||||||
|
ctr256,
|
||||||
|
deflateMaxSize,
|
||||||
|
freeCtr256,
|
||||||
|
gunzip,
|
||||||
|
ige256Decrypt,
|
||||||
|
ige256Encrypt,
|
||||||
|
initSync,
|
||||||
|
sha1,
|
||||||
|
sha256,
|
||||||
|
} from '@mtcute/wasm'
|
||||||
|
|
||||||
import { loadWasmBinary, WasmInitInput } from './wasm.js'
|
import { loadWasmBinary, WasmInitInput } from './wasm.js'
|
||||||
|
|
||||||
|
@ -14,10 +25,42 @@ export interface WebCryptoProviderOptions {
|
||||||
wasmInput?: WasmInitInput
|
wasmInput?: WasmInitInput
|
||||||
}
|
}
|
||||||
|
|
||||||
export class WebCryptoProvider extends WasmCryptoProvider implements ICryptoProvider {
|
export class WebCryptoProvider extends BaseCryptoProvider implements ICryptoProvider {
|
||||||
readonly crypto: Crypto
|
readonly crypto: Crypto
|
||||||
private _wasmInput?: WasmInitInput
|
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) {
|
constructor(params?: WebCryptoProviderOptions) {
|
||||||
super()
|
super()
|
||||||
const crypto = params?.crypto ?? globalThis.crypto
|
const crypto = params?.crypto ?? globalThis.crypto
|
||||||
|
|
|
@ -126,9 +126,6 @@ importers:
|
||||||
'@mtcute/tl-runtime':
|
'@mtcute/tl-runtime':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../tl-runtime
|
version: link:../tl-runtime
|
||||||
'@mtcute/wasm':
|
|
||||||
specifier: workspace:^
|
|
||||||
version: link:../wasm
|
|
||||||
'@types/events':
|
'@types/events':
|
||||||
specifier: 3.0.0
|
specifier: 3.0.0
|
||||||
version: 3.0.0
|
version: 3.0.0
|
||||||
|
|
Loading…
Reference in a new issue