feat(core): added keylen and algo in pbkdf2
This commit is contained in:
parent
ae07583161
commit
e98b8f8855
3 changed files with 14 additions and 7 deletions
|
@ -53,10 +53,13 @@ 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
|
||||
iterations: number,
|
||||
keylen?: number, // = 64
|
||||
algo?: string
|
||||
): MaybeAsync<Buffer>
|
||||
|
||||
abstract sha1(data: Buffer): MaybeAsync<Buffer>
|
||||
|
|
|
@ -59,15 +59,17 @@ export class ForgeCryptoProvider extends BaseCryptoProvider {
|
|||
pbkdf2(
|
||||
password: Buffer,
|
||||
salt: Buffer,
|
||||
iterations: number
|
||||
iterations: number,
|
||||
keylen = 64,
|
||||
algo = 'sha512'
|
||||
): MaybeAsync<Buffer> {
|
||||
return new Promise((resolve, reject) =>
|
||||
forge.pkcs5.pbkdf2(
|
||||
password.toString('binary'),
|
||||
salt.toString('binary'),
|
||||
iterations,
|
||||
64,
|
||||
forge.md.sha512.create(),
|
||||
keylen,
|
||||
forge.md[algo].create(),
|
||||
(err: Error | null, buf: string) =>
|
||||
err !== null
|
||||
? reject(err)
|
||||
|
|
|
@ -44,15 +44,17 @@ export class NodeCryptoProvider extends BaseCryptoProvider {
|
|||
pbkdf2(
|
||||
password: Buffer,
|
||||
salt: Buffer,
|
||||
iterations: number
|
||||
iterations: number,
|
||||
keylen = 64,
|
||||
algo = 'sha512',
|
||||
): MaybeAsync<Buffer> {
|
||||
return new Promise((resolve, reject) =>
|
||||
pbkdf2(
|
||||
password,
|
||||
salt,
|
||||
iterations,
|
||||
64,
|
||||
'sha512',
|
||||
keylen,
|
||||
algo,
|
||||
(err: Error | null, buf: Buffer) =>
|
||||
err !== null ? reject(err) : resolve(buf)
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue