feat(core): added keylen and algo in pbkdf2 (attempt 2, i am retarded)
This commit is contained in:
parent
e98b8f8855
commit
a864eacfd4
1 changed files with 11 additions and 3 deletions
|
@ -4,11 +4,13 @@ import { factorizePQSync } from './factorization'
|
||||||
|
|
||||||
export interface IEncryptionScheme {
|
export interface IEncryptionScheme {
|
||||||
encrypt(data: Buffer): MaybeAsync<Buffer>
|
encrypt(data: Buffer): MaybeAsync<Buffer>
|
||||||
|
|
||||||
decrypt(data: Buffer): MaybeAsync<Buffer>
|
decrypt(data: Buffer): MaybeAsync<Buffer>
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IHashMethod {
|
export interface IHashMethod {
|
||||||
update(data: Buffer): MaybeAsync<void>
|
update(data: Buffer): MaybeAsync<void>
|
||||||
|
|
||||||
digest(): MaybeAsync<Buffer>
|
digest(): MaybeAsync<Buffer>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,17 +18,24 @@ export interface ICryptoProvider {
|
||||||
initialize?(): MaybeAsync<void>
|
initialize?(): MaybeAsync<void>
|
||||||
|
|
||||||
sha1(data: Buffer): MaybeAsync<Buffer>
|
sha1(data: Buffer): MaybeAsync<Buffer>
|
||||||
|
|
||||||
sha256(data: Buffer): MaybeAsync<Buffer>
|
sha256(data: Buffer): MaybeAsync<Buffer>
|
||||||
|
|
||||||
pbkdf2(
|
pbkdf2(
|
||||||
password: Buffer,
|
password: Buffer,
|
||||||
salt: Buffer,
|
salt: Buffer,
|
||||||
iterations: number
|
iterations: number,
|
||||||
|
keylen?: number, // = 64
|
||||||
|
algo?: string // sha1 or sha512 (default sha512)
|
||||||
): MaybeAsync<Buffer>
|
): MaybeAsync<Buffer>
|
||||||
|
|
||||||
hmacSha256(data: Buffer, key: Buffer): 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
|
// 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
|
createAesCtr(key: Buffer, iv: Buffer, encrypt: boolean): IEncryptionScheme
|
||||||
|
|
||||||
createAesIge(key: Buffer, iv: Buffer): IEncryptionScheme
|
createAesIge(key: Buffer, iv: Buffer): IEncryptionScheme
|
||||||
|
|
||||||
createAesEcb(key: Buffer): IEncryptionScheme
|
createAesEcb(key: Buffer): IEncryptionScheme
|
||||||
|
|
||||||
createMd5(): IHashMethod
|
createMd5(): IHashMethod
|
||||||
|
@ -53,13 +62,12 @@ export abstract class BaseCryptoProvider implements ICryptoProvider {
|
||||||
|
|
||||||
abstract createAesEcb(key: Buffer): IEncryptionScheme
|
abstract createAesEcb(key: Buffer): IEncryptionScheme
|
||||||
|
|
||||||
// algo: sha1 or sha512 (default sha512)
|
|
||||||
abstract pbkdf2(
|
abstract pbkdf2(
|
||||||
password: Buffer,
|
password: Buffer,
|
||||||
salt: Buffer,
|
salt: Buffer,
|
||||||
iterations: number,
|
iterations: number,
|
||||||
keylen?: number, // = 64
|
keylen?: number, // = 64
|
||||||
algo?: string
|
algo?: string // sha1 or sha512 (default sha512)
|
||||||
): MaybeAsync<Buffer>
|
): MaybeAsync<Buffer>
|
||||||
|
|
||||||
abstract sha1(data: Buffer): MaybeAsync<Buffer>
|
abstract sha1(data: Buffer): MaybeAsync<Buffer>
|
||||||
|
|
Loading…
Reference in a new issue