Skip to content

Commit b1c669b

Browse files
committed
fix encodings
1 parent 6af65e7 commit b1c669b

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

lib/async.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var checkParameters = require('./precondition')
22
var defaultEncoding = require('./default-encoding')
33
var sync = require('./sync')
4+
var toBuffer = require('./to-buffer')
45
var Buffer = require('safe-buffer').Buffer
56

67
var ZERO_BUF
@@ -89,8 +90,8 @@ module.exports = function (password, salt, iterations, keylen, digest, callback)
8990

9091
checkParameters(password, salt, iterations, keylen)
9192
if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')
92-
if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)
93-
if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)
93+
password = toBuffer(password, defaultEncoding)
94+
salt = toBuffer(salt, defaultEncoding)
9495

9596
resolvePromise(checkNative(algo).then(function (resp) {
9697
if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)

lib/sync-browser.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
var md5 = require('create-hash/md5')
22
var RIPEMD160 = require('ripemd160')
33
var sha = require('sha.js')
4+
var toBuffer = require('./to-buffer')
45

56
var checkParameters = require('./precondition')
67
var defaultEncoding = require('./default-encoding')
@@ -68,8 +69,8 @@ function getDigest (alg) {
6869
function pbkdf2 (password, salt, iterations, keylen, digest) {
6970
checkParameters(password, salt, iterations, keylen)
7071

71-
if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)
72-
if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)
72+
password = toBuffer(password, defaultEncoding)
73+
salt = toBuffer(salt, defaultEncoding)
7374

7475
digest = digest || 'sha1'
7576

lib/sync.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@ var createHmac = require('create-hmac')
1313
var checkParameters = require('../lib/precondition')
1414
var defaultEncoding = require('../lib/default-encoding')
1515
var Buffer = require('safe-buffer').Buffer
16+
var toBuffer = require('./to-buffer')
1617

1718
function pbkdf2 (password, salt, iterations, keylen, digest) {
1819
checkParameters(password, salt, iterations, keylen)
1920

20-
if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)
21-
if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)
21+
password = toBuffer(password, defaultEncoding)
22+
salt = toBuffer(salt, defaultEncoding)
2223

2324
digest = digest || 'sha1'
2425

lib/to-buffer.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
var Buffer = require('safe-buffer').Buffer
2+
3+
module.exports = (thing, encoding) => {
4+
if (Buffer.isBuffer(thing)) {
5+
return thing
6+
}
7+
if (typeof thing === 'string') {
8+
return Buffer.from(thing, encoding)
9+
}
10+
if (ArrayBuffer.isView(thing)) {
11+
return Buffer.from(thing.buffer)
12+
}
13+
}

0 commit comments

Comments
 (0)