Skip to content

Commit efd560f

Browse files
committed
lib: split in modules
1 parent 63aee8d commit efd560f

File tree

8 files changed

+18
-573
lines changed

8 files changed

+18
-573
lines changed

lib/elliptic.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ var elliptic = exports;
55
elliptic.version = require('../package.json').version;
66
elliptic.utils = require('./elliptic/utils');
77
elliptic.rand = require('brorand');
8-
elliptic.hmacDRBG = require('./elliptic/hmac-drbg');
98
elliptic.curve = require('./elliptic/curve');
109
elliptic.curves = require('./elliptic/curves');
1110

lib/elliptic/ec/index.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict';
22

33
var BN = require('bn.js');
4+
var HmacDRBG = require('hmac-drbg');
45
var elliptic = require('../../elliptic');
56
var utils = elliptic.utils;
67
var assert = utils.assert;
@@ -54,10 +55,12 @@ EC.prototype.genKeyPair = function genKeyPair(options) {
5455
options = {};
5556

5657
// Instantiate Hmac_DRBG
57-
var drbg = new elliptic.hmacDRBG({
58+
var drbg = new HmacDRBG({
5859
hash: this.hash,
5960
pers: options.pers,
61+
persEnc: options.persEnc || 'utf8',
6062
entropy: options.entropy || elliptic.rand(this.hash.hmacStrength),
63+
entropyEnc: options.entropy && options.entropyEnc || 'utf8',
6164
nonce: this.n.toArray()
6265
});
6366

@@ -102,12 +105,12 @@ EC.prototype.sign = function sign(msg, key, enc, options) {
102105
var nonce = msg.toArray('be', bytes);
103106

104107
// Instantiate Hmac_DRBG
105-
var drbg = new elliptic.hmacDRBG({
108+
var drbg = new HmacDRBG({
106109
hash: this.hash,
107110
entropy: bkey,
108111
nonce: nonce,
109112
pers: options.pers,
110-
persEnc: options.persEnc
113+
persEnc: options.persEnc || 'utf8'
111114
});
112115

113116
// Number of bytes to generate

lib/elliptic/hmac-drbg.js

Lines changed: 0 additions & 114 deletions
This file was deleted.

lib/elliptic/utils.js

Lines changed: 8 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -2,66 +2,14 @@
22

33
var utils = exports;
44
var BN = require('bn.js');
5-
6-
utils.assert = function assert(val, msg) {
7-
if (!val)
8-
throw new Error(msg || 'Assertion failed');
9-
};
10-
11-
function toArray(msg, enc) {
12-
if (Array.isArray(msg))
13-
return msg.slice();
14-
if (!msg)
15-
return [];
16-
var res = [];
17-
if (typeof msg !== 'string') {
18-
for (var i = 0; i < msg.length; i++)
19-
res[i] = msg[i] | 0;
20-
return res;
21-
}
22-
if (!enc) {
23-
for (var i = 0; i < msg.length; i++) {
24-
var c = msg.charCodeAt(i);
25-
var hi = c >> 8;
26-
var lo = c & 0xff;
27-
if (hi)
28-
res.push(hi, lo);
29-
else
30-
res.push(lo);
31-
}
32-
} else if (enc === 'hex') {
33-
msg = msg.replace(/[^a-z0-9]+/ig, '');
34-
if (msg.length % 2 !== 0)
35-
msg = '0' + msg;
36-
for (var i = 0; i < msg.length; i += 2)
37-
res.push(parseInt(msg[i] + msg[i + 1], 16));
38-
}
39-
return res;
40-
}
41-
utils.toArray = toArray;
42-
43-
function zero2(word) {
44-
if (word.length === 1)
45-
return '0' + word;
46-
else
47-
return word;
48-
}
49-
utils.zero2 = zero2;
50-
51-
function toHex(msg) {
52-
var res = '';
53-
for (var i = 0; i < msg.length; i++)
54-
res += zero2(msg[i].toString(16));
55-
return res;
56-
}
57-
utils.toHex = toHex;
58-
59-
utils.encode = function encode(arr, enc) {
60-
if (enc === 'hex')
61-
return toHex(arr);
62-
else
63-
return arr;
64-
};
5+
var minAssert = require('minimalistic-assert');
6+
var minUtils = require('minimalistic-crypto-utils');
7+
8+
utils.assert = minAssert;
9+
utils.toArray = minUtils.toArray;
10+
utils.zero2 = minUtils.zero2;
11+
utils.toHex = minUtils.toHex;
12+
utils.encode = minUtils.encode;
6513

6614
// Represent num in a w-NAF form
6715
function getNAF(num, w) {

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@
5050
"bn.js": "^4.4.0",
5151
"brorand": "^1.0.1",
5252
"hash.js": "^1.0.0",
53-
"inherits": "^2.0.1"
53+
"hmac-drbg": "^1.0.0",
54+
"inherits": "^2.0.1",
55+
"minimalistic-assert": "^1.0.0",
56+
"minimalistic-crypto-utils": "^1.0.0"
5457
}
5558
}

0 commit comments

Comments
 (0)