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
|
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
|
||||||
|
algo?: string
|
||||||
): MaybeAsync<Buffer>
|
): MaybeAsync<Buffer>
|
||||||
|
|
||||||
abstract sha1(data: Buffer): MaybeAsync<Buffer>
|
abstract sha1(data: Buffer): MaybeAsync<Buffer>
|
||||||
|
|
|
@ -59,15 +59,17 @@ export class ForgeCryptoProvider extends BaseCryptoProvider {
|
||||||
pbkdf2(
|
pbkdf2(
|
||||||
password: Buffer,
|
password: Buffer,
|
||||||
salt: Buffer,
|
salt: Buffer,
|
||||||
iterations: number
|
iterations: number,
|
||||||
|
keylen = 64,
|
||||||
|
algo = 'sha512'
|
||||||
): MaybeAsync<Buffer> {
|
): MaybeAsync<Buffer> {
|
||||||
return new Promise((resolve, reject) =>
|
return new Promise((resolve, reject) =>
|
||||||
forge.pkcs5.pbkdf2(
|
forge.pkcs5.pbkdf2(
|
||||||
password.toString('binary'),
|
password.toString('binary'),
|
||||||
salt.toString('binary'),
|
salt.toString('binary'),
|
||||||
iterations,
|
iterations,
|
||||||
64,
|
keylen,
|
||||||
forge.md.sha512.create(),
|
forge.md[algo].create(),
|
||||||
(err: Error | null, buf: string) =>
|
(err: Error | null, buf: string) =>
|
||||||
err !== null
|
err !== null
|
||||||
? reject(err)
|
? reject(err)
|
||||||
|
|
|
@ -44,15 +44,17 @@ export class NodeCryptoProvider extends BaseCryptoProvider {
|
||||||
pbkdf2(
|
pbkdf2(
|
||||||
password: Buffer,
|
password: Buffer,
|
||||||
salt: Buffer,
|
salt: Buffer,
|
||||||
iterations: number
|
iterations: number,
|
||||||
|
keylen = 64,
|
||||||
|
algo = 'sha512',
|
||||||
): MaybeAsync<Buffer> {
|
): MaybeAsync<Buffer> {
|
||||||
return new Promise((resolve, reject) =>
|
return new Promise((resolve, reject) =>
|
||||||
pbkdf2(
|
pbkdf2(
|
||||||
password,
|
password,
|
||||||
salt,
|
salt,
|
||||||
iterations,
|
iterations,
|
||||||
64,
|
keylen,
|
||||||
'sha512',
|
algo,
|
||||||
(err: Error | null, buf: Buffer) =>
|
(err: Error | null, buf: Buffer) =>
|
||||||
err !== null ? reject(err) : resolve(buf)
|
err !== null ? reject(err) : resolve(buf)
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in a new issue