summaryrefslogtreecommitdiff
path: root/std/node/_crypto/pbkdf2.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/node/_crypto/pbkdf2.ts')
-rw-r--r--std/node/_crypto/pbkdf2.ts34
1 files changed, 20 insertions, 14 deletions
diff --git a/std/node/_crypto/pbkdf2.ts b/std/node/_crypto/pbkdf2.ts
index 80aacdaf2..2a63802e6 100644
--- a/std/node/_crypto/pbkdf2.ts
+++ b/std/node/_crypto/pbkdf2.ts
@@ -162,19 +162,25 @@ export function pbkdf2(
iterations: number,
keylen: number,
digest: Algorithms = "sha1",
- callback: ((err?: Error, derivedKey?: Buffer) => void),
+ callback: ((err: Error | null, derivedKey?: Buffer) => void),
): void {
- try {
- const res = pbkdf2Sync(
- password,
- salt,
- iterations,
- keylen,
- digest,
- );
-
- callback(undefined, res);
- } catch (e) {
- callback(e);
- }
+ setTimeout(() => {
+ let err = null, res;
+ try {
+ res = pbkdf2Sync(
+ password,
+ salt,
+ iterations,
+ keylen,
+ digest,
+ );
+ } catch (e) {
+ err = e;
+ }
+ if (err) {
+ callback(err);
+ } else {
+ callback(null, res);
+ }
+ }, 0);
}