Skip to content

Commit 8929d3d

Browse files
committed
Add safe-buffer to dependencies
1 parent 5e6ddc0 commit 8929d3d

14 files changed

Lines changed: 95 additions & 82 deletions

File tree

lib/der.js

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict'
2+
var Buffer = require('safe-buffer').Buffer
23
var bip66 = require('bip66')
34

4-
var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
5+
var EC_PRIVKEY_EXPORT_DER_COMPRESSED = Buffer.from([
56
// begin
67
0x30, 0x81, 0xd3, 0x02, 0x01, 0x01, 0x04, 0x20,
78
// private key
@@ -23,7 +24,7 @@ var EC_PRIVKEY_EXPORT_DER_COMPRESSED = new Buffer([
2324
0x00
2425
])
2526

26-
var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
27+
var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = Buffer.from([
2728
// begin
2829
0x30, 0x82, 0x01, 0x13, 0x02, 0x01, 0x01, 0x04, 0x20,
2930
// private key
@@ -49,13 +50,13 @@ var EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = new Buffer([
4950
0x00
5051
])
5152

52-
var ZERO_BUFFER_32 = new Buffer([
53+
var ZERO_BUFFER_32 = Buffer.from([
5354
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
5455
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
5556
])
5657

5758
exports.privateKeyExport = function (privateKey, publicKey, compressed) {
58-
var result = new Buffer(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
59+
var result = Buffer.from(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED)
5960
privateKey.copy(result, compressed ? 8 : 9)
6061
publicKey.copy(result, compressed ? 181 : 214)
6162
return result
@@ -103,18 +104,18 @@ exports.privateKeyImport = function (privateKey) {
103104
}
104105

105106
exports.signatureExport = function (sigObj) {
106-
var r = Buffer.concat([new Buffer([0]), sigObj.r])
107+
var r = Buffer.concat([Buffer.from([0]), sigObj.r])
107108
for (var lenR = 33, posR = 0; lenR > 1 && r[posR] === 0x00 && !(r[posR + 1] & 0x80); --lenR, ++posR);
108109

109-
var s = Buffer.concat([new Buffer([0]), sigObj.s])
110+
var s = Buffer.concat([Buffer.from([0]), sigObj.s])
110111
for (var lenS = 33, posS = 0; lenS > 1 && s[posS] === 0x00 && !(s[posS + 1] & 0x80); --lenS, ++posS);
111112

112113
return bip66.encode(r.slice(posR), s.slice(posS))
113114
}
114115

115116
exports.signatureImport = function (sig) {
116-
var r = new Buffer(ZERO_BUFFER_32)
117-
var s = new Buffer(ZERO_BUFFER_32)
117+
var r = Buffer.from(ZERO_BUFFER_32)
118+
var s = Buffer.from(ZERO_BUFFER_32)
118119

119120
try {
120121
var sigObj = bip66.decode(sig)
@@ -133,8 +134,8 @@ exports.signatureImport = function (sig) {
133134
}
134135

135136
exports.signatureImportLax = function (sig) {
136-
var r = new Buffer(ZERO_BUFFER_32)
137-
var s = new Buffer(ZERO_BUFFER_32)
137+
var r = Buffer.from(ZERO_BUFFER_32)
138+
var s = Buffer.from(ZERO_BUFFER_32)
138139

139140
var length = sig.length
140141
var index = 0

lib/elliptic/index.js

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
'use strict'
2+
var Buffer = require('safe-buffer').Buffer
23
var createHash = require('create-hash')
34
var BN = require('bn.js')
45
var EC = require('elliptic').ec
@@ -68,7 +69,7 @@ exports.privateKeyExport = function (privateKey, compressed) {
6869
var d = new BN(privateKey)
6970
if (d.cmp(ecparams.n) >= 0 || d.isZero()) throw new Error(messages.EC_PRIVATE_KEY_EXPORT_DER_FAIL)
7071

71-
return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
72+
return Buffer.from(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
7273
}
7374

7475
exports.privateKeyTweakAdd = function (privateKey, tweak) {
@@ -96,14 +97,14 @@ exports.publicKeyCreate = function (privateKey, compressed) {
9697
var d = new BN(privateKey)
9798
if (d.cmp(ecparams.n) >= 0 || d.isZero()) throw new Error(messages.EC_PUBLIC_KEY_CREATE_FAIL)
9899

99-
return new Buffer(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
100+
return Buffer.from(ec.keyFromPrivate(privateKey).getPublic(compressed, true))
100101
}
101102

102103
exports.publicKeyConvert = function (publicKey, compressed) {
103104
var pair = loadPublicKey(publicKey)
104105
if (pair === null) throw new Error(messages.EC_PUBLIC_KEY_PARSE_FAIL)
105106

106-
return new Buffer(pair.getPublic(compressed, true))
107+
return Buffer.from(pair.getPublic(compressed, true))
107108
}
108109

109110
exports.publicKeyVerify = function (publicKey) {
@@ -117,7 +118,7 @@ exports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {
117118
tweak = new BN(tweak)
118119
if (tweak.cmp(ecparams.n) >= 0) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_ADD_FAIL)
119120

120-
return new Buffer(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
121+
return Buffer.from(ecparams.g.mul(tweak).add(pair.pub).encode(true, compressed))
121122
}
122123

123124
exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
@@ -127,7 +128,7 @@ exports.publicKeyTweakMul = function (publicKey, tweak, compressed) {
127128
tweak = new BN(tweak)
128129
if (tweak.cmp(ecparams.n) >= 0 || tweak.isZero()) throw new Error(messages.EC_PUBLIC_KEY_TWEAK_MUL_FAIL)
129130

130-
return new Buffer(pair.pub.mul(tweak).encode(true, compressed))
131+
return Buffer.from(pair.pub.mul(tweak).encode(true, compressed))
131132
}
132133

133134
exports.publicKeyCombine = function (publicKeys, compressed) {
@@ -141,15 +142,15 @@ exports.publicKeyCombine = function (publicKeys, compressed) {
141142
for (var j = 1; j < pairs.length; ++j) point = point.add(pairs[j].pub)
142143
if (point.isInfinity()) throw new Error(messages.EC_PUBLIC_KEY_COMBINE_FAIL)
143144

144-
return new Buffer(point.encode(true, compressed))
145+
return Buffer.from(point.encode(true, compressed))
145146
}
146147

147148
exports.signatureNormalize = function (signature) {
148149
var r = new BN(signature.slice(0, 32))
149150
var s = new BN(signature.slice(32, 64))
150151
if (r.cmp(ecparams.n) >= 0 || s.cmp(ecparams.n) >= 0) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
151152

152-
var result = new Buffer(signature)
153+
var result = Buffer.from(signature)
153154
if (s.cmp(ec.nh) === 1) ecparams.n.sub(s).toArrayLike(Buffer, 'be', 32).copy(result, 32)
154155

155156
return result
@@ -225,7 +226,7 @@ exports.recover = function (message, signature, recovery, compressed) {
225226
if (sigr.isZero() || sigs.isZero()) throw new Error()
226227

227228
var point = ec.recoverPubKey(message, sigObj, recovery)
228-
return new Buffer(point.encode(true, compressed))
229+
return Buffer.from(point.encode(true, compressed))
229230
} catch (err) {
230231
throw new Error(messages.ECDSA_RECOVER_FAIL)
231232
}
@@ -243,5 +244,5 @@ exports.ecdhUnsafe = function (publicKey, privateKey, compressed) {
243244
var scalar = new BN(privateKey)
244245
if (scalar.cmp(ecparams.n) >= 0 || scalar.isZero()) throw new Error(messages.ECDH_FAIL)
245246

246-
return new Buffer(pair.pub.mul(scalar).encode(true, compressed))
247+
return Buffer.from(pair.pub.mul(scalar).encode(true, compressed))
247248
}

lib/js/bn/index.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
'use strict'
2+
var Buffer = require('safe-buffer').Buffer
23
var optimized = require('./optimized')
34

45
function BN () {
@@ -39,7 +40,7 @@ BN.prototype.toBuffer = function () {
3940
var w = this.words
4041
for (var i = this.length; i < 10; ++i) w[i] = 0
4142

42-
return new Buffer([
43+
return Buffer.from([
4344
(w[9] >>> 14) & 0xFF, (w[9] >>> 6) & 0xFF, (w[9] & 0x3F) << 2 | ((w[8] >>> 24) & 0x03), // 0, 1, 2
4445
(w[8] >>> 16) & 0xFF, (w[8] >>> 8) & 0xFF, w[8] & 0xFF, // 3, 4, 5
4546

@@ -644,10 +645,10 @@ BN.prototype.inspect = function () {
644645
return buffer.slice(i)
645646
}
646647

647-
BN.n = BN.fromBuffer(new Buffer('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141', 'hex'))
648+
BN.n = BN.fromBuffer(Buffer.from('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141', 'hex'))
648649
BN.nh = BN.n.clone().ishrn(1)
649-
BN.nc = BN.fromBuffer(new Buffer('000000000000000000000000000000014551231950B75FC4402DA1732FC9BEBF', 'hex'))
650-
BN.p = BN.fromBuffer(new Buffer('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F', 'hex'))
650+
BN.nc = BN.fromBuffer(Buffer.from('000000000000000000000000000000014551231950B75FC4402DA1732FC9BEBF', 'hex'))
651+
BN.p = BN.fromBuffer(Buffer.from('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F', 'hex'))
651652
BN.psn = BN.p.sub(BN.n)
652653
BN.tmp = new BN()
653654
BN.tmp.words = new Array(10)

lib/js/ecpoint.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
'use strict'
2+
var Buffer = require('safe-buffer').Buffer
23
var BN = require('./bn')
34
var ECJPoint = require('./ecjpoint')
45

@@ -57,11 +58,11 @@ ECPoint.prototype.toPublicKey = function (compressed) {
5758
var publicKey
5859

5960
if (compressed) {
60-
publicKey = new Buffer(33)
61+
publicKey = Buffer.alloc(33)
6162
publicKey[0] = y.isOdd() ? 0x03 : 0x02
6263
x.toBuffer().copy(publicKey, 1)
6364
} else {
64-
publicKey = new Buffer(65)
65+
publicKey = Buffer.alloc(65)
6566
publicKey[0] = 0x04
6667
x.toBuffer().copy(publicKey, 1)
6768
y.toBuffer().copy(publicKey, 33)

lib/js/ecpointg.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
'use strict'
2+
var Buffer = require('safe-buffer').Buffer
23
var BN = require('./bn')
34
var ECPoint = require('./ecpoint')
45
var ECJPoint = require('./ecjpoint')
56

67
function ECPointG () {
7-
this.x = BN.fromBuffer(new Buffer('79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798', 'hex'))
8-
this.y = BN.fromBuffer(new Buffer('483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8', 'hex'))
8+
this.x = BN.fromBuffer(Buffer.from('79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798', 'hex'))
9+
this.y = BN.fromBuffer(Buffer.from('483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8', 'hex'))
910
this.inf = false
1011

1112
this._precompute()

lib/js/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
'use strict'
2+
var Buffer = require('safe-buffer').Buffer
23
var createHash = require('create-hash')
34
var HmacDRBG = require('drbg.js/hmac')
45
var messages = require('../messages.json')
@@ -94,7 +95,7 @@ exports.signatureNormalize = function (signature) {
9495
var s = BN.fromBuffer(signature.slice(32, 64))
9596
if (r.isOverflow() || s.isOverflow()) throw new Error(messages.ECDSA_SIGNATURE_PARSE_FAIL)
9697

97-
var result = new Buffer(signature)
98+
var result = Buffer.from(signature)
9899
if (s.isHigh()) BN.n.sub(s).toBuffer().copy(result, 32)
99100

100101
return result
@@ -194,7 +195,7 @@ exports.recover = function (message, signature, recovery, compressed) {
194195
kpx = sigr.add(BN.n)
195196
}
196197

197-
var kpPublicKey = Buffer.concat([new Buffer([0x02 + (recovery & 0x01)]), kpx.toBuffer()])
198+
var kpPublicKey = Buffer.concat([Buffer.from([0x02 + (recovery & 0x01)]), kpx.toBuffer()])
198199
var kp = ECPoint.fromPublicKey(kpPublicKey)
199200
if (kp === null) break
200201

package.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,12 @@
5555
"drbg.js": "^1.0.1",
5656
"elliptic": "^6.2.3",
5757
"nan": "^2.2.1",
58-
"prebuild-install": "^2.0.0"
58+
"prebuild-install": "^2.0.0",
59+
"safe-buffer": "^5.1.0"
5960
},
6061
"devDependencies": {
6162
"bignum": "^0.12.5",
62-
"browserify": "^13.0.0",
63+
"browserify": "^14.4.0",
6364
"karma": "^1.3.0",
6465
"karma-browserify": "^5.0.4",
6566
"karma-chrome-launcher": "^2.0.0",
@@ -68,9 +69,9 @@
6869
"karma-firefox-launcher": "^1.0.0",
6970
"karma-tap": "^3.1.1",
7071
"node-gyp": "^3.3.1",
71-
"nyc": "^10.0.0",
72+
"nyc": "^11.0.2",
7273
"prebuild": "^6.0.0",
73-
"prebuild-ci": "^1.0.9",
74+
"prebuild-ci": "^2.2.2",
7475
"standard": "*",
7576
"tape": "^4.5.1",
7677
"xorshift.js": "^1.0.3"

test/bn/index.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
'use strict'
2+
var Buffer = require('safe-buffer').Buffer
23
var test = require('tape')
34
var BigNum = require('bignum')
45

@@ -129,14 +130,14 @@ test('BN', function (t) {
129130
})
130131

131132
t.test('0x04000000 -> 0x04000000', function (t) {
132-
var b32 = bnUtil.fillZeros(new Buffer([0xff, 0xff, 0xff, 0xff]))
133+
var b32 = bnUtil.fillZeros(Buffer.from([0xff, 0xff, 0xff, 0xff]))
133134
var bn = BN.fromBuffer(b32)
134135
bnUtil.testBN(t, bn.normSign(), BigNum.fromBuffer(b32))
135136
t.end()
136137
})
137138

138139
t.test('-0x04000000 -> -0x04000000', function (t) {
139-
var b32 = bnUtil.fillZeros(new Buffer([0xff, 0xff, 0xff, 0xff]))
140+
var b32 = bnUtil.fillZeros(Buffer.from([0xff, 0xff, 0xff, 0xff]))
140141
var bn = BN.fromBuffer(b32)
141142
bn.negative = 1
142143
bnUtil.testBN(t, bn.normSign(), BigNum.fromBuffer(b32).neg())
@@ -726,15 +727,15 @@ test('BN', function (t) {
726727

727728
t.test('ishrn', function (t) {
728729
t.test('51 bits eq 1, shift from 0 to 26', function (t) {
729-
var b32 = bnUtil.fillZeros(new Buffer('07ffffffffffff', 'hex'))
730+
var b32 = bnUtil.fillZeros(Buffer.from('07ffffffffffff', 'hex'))
730731
for (var i = 0; i < 26; ++i) {
731732
bnUtil.testBN(t, BN.fromBuffer(b32).ishrn(i), BigNum.fromBuffer(b32).shiftRight(i))
732733
}
733734
t.end()
734735
})
735736

736737
t.test('256 bits eq 1, shift from 0 to 26', function (t) {
737-
var b32 = new Buffer(32)
738+
var b32 = Buffer.alloc(32)
738739
b32.fill(0xff)
739740
for (var i = 0; i < 26; ++i) {
740741
bnUtil.testBN(t, BN.fromBuffer(b32).ishrn(i), BigNum.fromBuffer(b32).shiftRight(i))
@@ -1002,7 +1003,7 @@ test('BN', function (t) {
10021003
})
10031004

10041005
t.test('return null for quadratic nonresidue', function (t) {
1005-
var b32 = new Buffer('16e5f9d306371e9b876f04025fb8c8ed10f8b8864119a149803357e77bcdd3b1', 'hex')
1006+
var b32 = Buffer.from('16e5f9d306371e9b876f04025fb8c8ed10f8b8864119a149803357e77bcdd3b1', 'hex')
10061007
t.same(BN.fromBuffer(b32).redSqrt(), null)
10071008
t.end()
10081009
})

test/bn/util.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
'use strict'
2+
var Buffer = require('safe-buffer').Buffer
23
var BigNum = require('bignum')
34

45
var BN_MAX256 = BigNum.pow(2, 256).sub(1)
5-
var N = BigNum.fromBuffer(new Buffer('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141', 'hex'))
6+
var N = BigNum.fromBuffer(Buffer.from('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141', 'hex'))
67
var NH = N.shiftRight(1)
7-
var P = BigNum.fromBuffer(new Buffer('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F', 'hex'))
8+
var P = BigNum.fromBuffer(Buffer.from('FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F', 'hex'))
89
var K = BigNum(1).shiftLeft(256).sub(P)
910

10-
var ZERO_BUFFER32 = new Buffer(32)
11-
ZERO_BUFFER32.fill(0)
11+
var ZERO_BUFFER32 = Buffer.alloc(32, 0)
1212

1313
function fillZeros (buffer) {
1414
return Buffer.concat([ZERO_BUFFER32, buffer]).slice(-32)

0 commit comments

Comments
 (0)