diff --git a/packages/core/src/utils/crypto/abstract.ts b/packages/core/src/utils/crypto/abstract.ts index 943b0d83..1ad0690f 100644 --- a/packages/core/src/utils/crypto/abstract.ts +++ b/packages/core/src/utils/crypto/abstract.ts @@ -4,11 +4,13 @@ import { factorizePQSync } from './factorization' export interface IEncryptionScheme { encrypt(data: Buffer): MaybeAsync + decrypt(data: Buffer): MaybeAsync } export interface IHashMethod { update(data: Buffer): MaybeAsync + digest(): MaybeAsync } @@ -16,17 +18,24 @@ export interface ICryptoProvider { initialize?(): MaybeAsync sha1(data: Buffer): MaybeAsync + sha256(data: Buffer): MaybeAsync + pbkdf2( password: Buffer, salt: Buffer, - iterations: number + iterations: number, + keylen?: number, // = 64 + algo?: string // sha1 or sha512 (default sha512) ): MaybeAsync + hmacSha256(data: Buffer, key: Buffer): MaybeAsync // in telegram, iv is always either used only once, or is the same for all calls for the key createAesCtr(key: Buffer, iv: Buffer, encrypt: boolean): IEncryptionScheme + createAesIge(key: Buffer, iv: Buffer): IEncryptionScheme + createAesEcb(key: Buffer): IEncryptionScheme createMd5(): IHashMethod @@ -53,13 +62,12 @@ export abstract class BaseCryptoProvider implements ICryptoProvider { abstract createAesEcb(key: Buffer): IEncryptionScheme - // algo: sha1 or sha512 (default sha512) abstract pbkdf2( password: Buffer, salt: Buffer, iterations: number, keylen?: number, // = 64 - algo?: string + algo?: string // sha1 or sha512 (default sha512) ): MaybeAsync abstract sha1(data: Buffer): MaybeAsync