Skip to content

Commit 3b55ab3

Browse files
committed
Use Buffer.(from|alloc) instead of deprecated Buffer API
This also includes a dependnecy on a polyfill targeting older Node.js versions where Buffer.alloc() and Buffer.from() API is not implemented (Node.js < 4.5.0 and some 5.x versions). Ref: nodejs/node#19079 Ref: https://nodejs.org/api/deprecations.html#deprecations_dep0005_buffer_constructor Ref: https://nodejs.org/api/buffer.html#buffer_class_buffer Ref: https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md
1 parent 2c2a19e commit 3b55ab3

File tree

6 files changed

+29
-23
lines changed

6 files changed

+29
-23
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ The following reads an ASN.1 sequence with a boolean.
1616

1717
var Ber = require('asn1').Ber;
1818

19-
var reader = new Ber.Reader(new Buffer([0x30, 0x03, 0x01, 0x01, 0xff]));
19+
var reader = new Ber.Reader(Buffer.from([0x30, 0x03, 0x01, 0x01, 0xff]));
2020

2121
reader.readSequence();
2222
console.log('Sequence len: ' + reader.length);

lib/ber/reader.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright 2011 Mark Cavage <[email protected]> All rights reserved.
22

33
var assert = require('assert');
4+
var Buffer = require('safer-buffer').Buffer;
45

56
var ASN1 = require('./types');
67
var errors = require('./errors');
@@ -179,7 +180,7 @@ Reader.prototype.readString = function(tag, retbuf) {
179180
this._offset = o;
180181

181182
if (this.length === 0)
182-
return retbuf ? new Buffer(0) : '';
183+
return retbuf ? Buffer.alloc(0) : '';
183184

184185
var str = this._buf.slice(this._offset, this._offset + this.length);
185186
this._offset += this.length;

lib/ber/writer.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright 2011 Mark Cavage <[email protected]> All rights reserved.
22

33
var assert = require('assert');
4+
var Buffer = require('safer-buffer').Buffer;
45
var ASN1 = require('./types');
56
var errors = require('./errors');
67

@@ -42,7 +43,7 @@ function merge(from, to) {
4243
function Writer(options) {
4344
options = merge(DEFAULT_OPTS, options || {});
4445

45-
this._buf = new Buffer(options.size || 1024);
46+
this._buf = Buffer.alloc(options.size || 1024);
4647
this._size = this._buf.length;
4748
this._offset = 0;
4849
this._options = options;
@@ -301,7 +302,7 @@ Writer.prototype._ensure = function(len) {
301302
if (sz - this._offset < len)
302303
sz += len;
303304

304-
var buf = new Buffer(sz);
305+
var buf = Buffer.alloc(sz);
305306

306307
this._buf.copy(buf, 0, 0, this._offset);
307308
this._buf = buf;

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
"url": "git://github.com/mcavage/node-asn1.git"
1414
},
1515
"main": "lib/index.js",
16-
"dependencies": {},
16+
"dependencies": {
17+
"safer-buffer": "^2.0.2"
18+
},
1719
"devDependencies": {
1820
"tap": "0.4.8"
1921
},

tst/ber/reader.test.js

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright 2011 Mark Cavage <[email protected]> All rights reserved.
22

33
var test = require('tap').test;
4+
var Buffer = require('safer-buffer').Buffer;
45

56

67

@@ -26,15 +27,15 @@ test('load library', function(t) {
2627

2728

2829
test('read byte', function(t) {
29-
var reader = new BerReader(new Buffer([0xde]));
30+
var reader = new BerReader(Buffer.from([0xde]));
3031
t.ok(reader);
3132
t.equal(reader.readByte(), 0xde, 'wrong value');
3233
t.end();
3334
});
3435

3536

3637
test('read 1 byte int', function(t) {
37-
var reader = new BerReader(new Buffer([0x02, 0x01, 0x03]));
38+
var reader = new BerReader(Buffer.from([0x02, 0x01, 0x03]));
3839
t.ok(reader);
3940
t.equal(reader.readInt(), 0x03, 'wrong value');
4041
t.equal(reader.length, 0x01, 'wrong length');
@@ -43,7 +44,7 @@ test('read 1 byte int', function(t) {
4344

4445

4546
test('read 2 byte int', function(t) {
46-
var reader = new BerReader(new Buffer([0x02, 0x02, 0x7e, 0xde]));
47+
var reader = new BerReader(Buffer.from([0x02, 0x02, 0x7e, 0xde]));
4748
t.ok(reader);
4849
t.equal(reader.readInt(), 0x7ede, 'wrong value');
4950
t.equal(reader.length, 0x02, 'wrong length');
@@ -52,7 +53,7 @@ test('read 2 byte int', function(t) {
5253

5354

5455
test('read 3 byte int', function(t) {
55-
var reader = new BerReader(new Buffer([0x02, 0x03, 0x7e, 0xde, 0x03]));
56+
var reader = new BerReader(Buffer.from([0x02, 0x03, 0x7e, 0xde, 0x03]));
5657
t.ok(reader);
5758
t.equal(reader.readInt(), 0x7ede03, 'wrong value');
5859
t.equal(reader.length, 0x03, 'wrong length');
@@ -61,7 +62,7 @@ test('read 3 byte int', function(t) {
6162

6263

6364
test('read 4 byte int', function(t) {
64-
var reader = new BerReader(new Buffer([0x02, 0x04, 0x7e, 0xde, 0x03, 0x01]));
65+
var reader = new BerReader(Buffer.from([0x02, 0x04, 0x7e, 0xde, 0x03, 0x01]));
6566
t.ok(reader);
6667
t.equal(reader.readInt(), 0x7ede0301, 'wrong value');
6768
t.equal(reader.length, 0x04, 'wrong length');
@@ -70,7 +71,7 @@ test('read 4 byte int', function(t) {
7071

7172

7273
test('read 1 byte negative int', function(t) {
73-
var reader = new BerReader(new Buffer([0x02, 0x01, 0xdc]));
74+
var reader = new BerReader(Buffer.from([0x02, 0x01, 0xdc]));
7475
t.ok(reader);
7576
t.equal(reader.readInt(), -36, 'wrong value');
7677
t.equal(reader.length, 0x01, 'wrong length');
@@ -79,7 +80,7 @@ test('read 1 byte negative int', function(t) {
7980

8081

8182
test('read 2 byte negative int', function(t) {
82-
var reader = new BerReader(new Buffer([0x02, 0x02, 0xc0, 0x4e]));
83+
var reader = new BerReader(Buffer.from([0x02, 0x02, 0xc0, 0x4e]));
8384
t.ok(reader);
8485
t.equal(reader.readInt(), -16306, 'wrong value');
8586
t.equal(reader.length, 0x02, 'wrong length');
@@ -88,7 +89,7 @@ test('read 2 byte negative int', function(t) {
8889

8990

9091
test('read 3 byte negative int', function(t) {
91-
var reader = new BerReader(new Buffer([0x02, 0x03, 0xff, 0x00, 0x19]));
92+
var reader = new BerReader(Buffer.from([0x02, 0x03, 0xff, 0x00, 0x19]));
9293
t.ok(reader);
9394
t.equal(reader.readInt(), -65511, 'wrong value');
9495
t.equal(reader.length, 0x03, 'wrong length');
@@ -97,7 +98,7 @@ test('read 3 byte negative int', function(t) {
9798

9899

99100
test('read 4 byte negative int', function(t) {
100-
var reader = new BerReader(new Buffer([0x02, 0x04, 0x91, 0x7c, 0x22, 0x1f]));
101+
var reader = new BerReader(Buffer.from([0x02, 0x04, 0x91, 0x7c, 0x22, 0x1f]));
101102
t.ok(reader);
102103
t.equal(reader.readInt(), -1854135777, 'wrong value');
103104
t.equal(reader.length, 0x04, 'wrong length');
@@ -106,7 +107,7 @@ test('read 4 byte negative int', function(t) {
106107

107108

108109
test('read boolean true', function(t) {
109-
var reader = new BerReader(new Buffer([0x01, 0x01, 0xff]));
110+
var reader = new BerReader(Buffer.from([0x01, 0x01, 0xff]));
110111
t.ok(reader);
111112
t.equal(reader.readBoolean(), true, 'wrong value');
112113
t.equal(reader.length, 0x01, 'wrong length');
@@ -115,7 +116,7 @@ test('read boolean true', function(t) {
115116

116117

117118
test('read boolean false', function(t) {
118-
var reader = new BerReader(new Buffer([0x01, 0x01, 0x00]));
119+
var reader = new BerReader(Buffer.from([0x01, 0x01, 0x00]));
119120
t.ok(reader);
120121
t.equal(reader.readBoolean(), false, 'wrong value');
121122
t.equal(reader.length, 0x01, 'wrong length');
@@ -124,7 +125,7 @@ test('read boolean false', function(t) {
124125

125126

126127
test('read enumeration', function(t) {
127-
var reader = new BerReader(new Buffer([0x0a, 0x01, 0x20]));
128+
var reader = new BerReader(Buffer.from([0x0a, 0x01, 0x20]));
128129
t.ok(reader);
129130
t.equal(reader.readEnumeration(), 0x20, 'wrong value');
130131
t.equal(reader.length, 0x01, 'wrong length');
@@ -134,7 +135,7 @@ test('read enumeration', function(t) {
134135

135136
test('read string', function(t) {
136137
var dn = 'cn=foo,ou=unit,o=test';
137-
var buf = new Buffer(dn.length + 2);
138+
var buf = Buffer.alloc(dn.length + 2);
138139
buf[0] = 0x04;
139140
buf[1] = Buffer.byteLength(dn);
140141
buf.write(dn, 2);
@@ -147,7 +148,7 @@ test('read string', function(t) {
147148

148149

149150
test('read sequence', function(t) {
150-
var reader = new BerReader(new Buffer([0x30, 0x03, 0x01, 0x01, 0xff]));
151+
var reader = new BerReader(Buffer.from([0x30, 0x03, 0x01, 0x01, 0xff]));
151152
t.ok(reader);
152153
t.equal(reader.readSequence(), 0x30, 'wrong value');
153154
t.equal(reader.length, 0x03, 'wrong length');
@@ -158,7 +159,7 @@ test('read sequence', function(t) {
158159

159160

160161
test('anonymous LDAPv3 bind', function(t) {
161-
var BIND = new Buffer(14);
162+
var BIND = Buffer.alloc(14);
162163
BIND[0] = 0x30; // Sequence
163164
BIND[1] = 12; // len
164165
BIND[2] = 0x02; // ASN.1 Integer
@@ -192,7 +193,7 @@ test('anonymous LDAPv3 bind', function(t) {
192193

193194

194195
test('long string', function(t) {
195-
var buf = new Buffer(256);
196+
var buf = Buffer.alloc(256);
196197
var o;
197198
var s =
198199
'2;649;CN=Red Hat CS 71GA Demo,O=Red Hat CS 71GA Demo,C=US;' +

tst/ber/writer.test.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
var test = require('tap').test;
44
var sys = require('sys');
5+
var Buffer = require('safer-buffer').Buffer;
56

67
///--- Globals
78

@@ -218,7 +219,7 @@ test('write buffer', function(t) {
218219
// write some stuff to start with
219220
writer.writeString('hello world');
220221
var ber = writer.buffer;
221-
var buf = new Buffer([0x04, 0x0b, 0x30, 0x09, 0x02, 0x01, 0x0f, 0x01, 0x01,
222+
var buf = Buffer.from([0x04, 0x0b, 0x30, 0x09, 0x02, 0x01, 0x0f, 0x01, 0x01,
222223
0xff, 0x01, 0x01, 0xff]);
223224
writer.writeBuffer(buf.slice(2, buf.length), 0x04);
224225
ber = writer.buffer;
@@ -362,7 +363,7 @@ test('Write OID', function(t) {
362363
var ber = writer.buffer;
363364
t.ok(ber);
364365
console.log(require('util').inspect(ber));
365-
console.log(require('util').inspect(new Buffer([0x06, 0x09, 0x2a, 0x86,
366+
console.log(require('util').inspect(Buffer.from([0x06, 0x09, 0x2a, 0x86,
366367
0x48, 0x86, 0xf7, 0x0d,
367368
0x01, 0x01, 0x01])));
368369

0 commit comments

Comments
 (0)