feat(core): added keylen and algo in pbkdf2 (attempt 2, i am retarded)

This commit is contained in:
teidesu 2022-06-12 19:29:38 +03:00
parent e98b8f8855
commit a864eacfd4

View file

@ -4,11 +4,13 @@ import { factorizePQSync } from './factorization'
export interface IEncryptionScheme {
encrypt(data: Buffer): MaybeAsync<Buffer>
decrypt(data: Buffer): MaybeAsync<Buffer>
}
export interface IHashMethod {
update(data: Buffer): MaybeAsync<void>
digest(): MaybeAsync<Buffer>
}
@ -16,17 +18,24 @@ export interface ICryptoProvider {
initialize?(): MaybeAsync<void>
sha1(data: Buffer): MaybeAsync<Buffer>
sha256(data: Buffer): MaybeAsync<Buffer>
pbkdf2(
password: Buffer,
salt: Buffer,
iterations: number
iterations: number,
keylen?: number, // = 64
algo?: string // sha1 or sha512 (default sha512)
): MaybeAsync<Buffer>
hmacSha256(data: Buffer, key: Buffer): MaybeAsync<Buffer>
// 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<Buffer>
abstract sha1(data: Buffer): MaybeAsync<Buffer>