Skip to content

Commit 56d3a99

Browse files
committed
Restructure
Move Random to Entropy
1 parent 0eeec74 commit 56d3a99

27 files changed

+541
-556
lines changed

Diff for: dist/lib/charSet.js

+1-8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
Object.defineProperty(exports, "__esModule", {
44
value: true
55
});
6-
exports.charSet2 = exports.charSet4 = exports.charSet8 = exports.charSet16 = exports.charSet32 = exports.charSet64 = undefined;
76

87
var _log = require('babel-runtime/core-js/math/log2');
98

@@ -149,10 +148,4 @@ var CharSet = function () {
149148
return CharSet;
150149
}();
151150

152-
exports.default = CharSet;
153-
var charSet64 = exports.charSet64 = new CharSet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_');
154-
var charSet32 = exports.charSet32 = new CharSet('2346789bdfghjmnpqrtBDFGHJLMNPQRT');
155-
var charSet16 = exports.charSet16 = new CharSet('0123456789abcdef');
156-
var charSet8 = exports.charSet8 = new CharSet('01234567');
157-
var charSet4 = exports.charSet4 = new CharSet('ATCG');
158-
var charSet2 = exports.charSet2 = new CharSet('01');
151+
exports.default = CharSet;

Diff for: dist/lib/entropy.js

+12-6
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1-
"use strict";
1+
'use strict';
22

33
Object.defineProperty(exports, "__esModule", {
44
value: true
55
});
6+
exports.charset2 = exports.charset4 = exports.charset8 = exports.charset16 = exports.charset32 = exports.charset64 = exports.entropyBits = undefined;
67

7-
var _log = require("babel-runtime/core-js/math/log2");
8+
var _log = require('babel-runtime/core-js/math/log2');
89

910
var _log2 = _interopRequireDefault(_log);
1011

1112
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1213

13-
var bits = function bits(total, risk) {
14+
var CharSet = require('./charset').default;
15+
16+
var entropyBits = exports.entropyBits = function entropyBits(total, risk) {
1417
if (total === 0) {
1518
return 0;
1619
}
@@ -27,6 +30,9 @@ var bits = function bits(total, risk) {
2730
return N + log2(risk) - 1;
2831
};
2932

30-
exports.default = {
31-
bits: bits
32-
};
33+
var charset64 = exports.charset64 = new CharSet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_');
34+
var charset32 = exports.charset32 = new CharSet('2346789bdfghjmnpqrtBDFGHJLMNPQRT');
35+
var charset16 = exports.charset16 = new CharSet('0123456789abcdef');
36+
var charset8 = exports.charset8 = new CharSet('01234567');
37+
var charset4 = exports.charset4 = new CharSet('ATCG');
38+
var charset2 = exports.charset2 = new CharSet('01');

Diff for: dist/lib/random.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
1616

1717
var CharSet = require('./charset').default;
1818

19-
var _require = require('./charset'),
19+
var _require = require('./entropy'),
2020
charset32 = _require.charset32;
2121

2222
var Crypto = require('crypto');

Diff for: entropy-string.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
const Random = require('./dist/lib/random').default
2-
const CharSet = require('./dist/lib/charset').default
1+
const { default: CharSet } = require('./dist/lib/charset')
32
const {
3+
default: Entropy,
44
charset2, charset4, charset8, charset16, charset32, charset64
55
} = require('./dist/lib/entropy')
66

77
module.exports = {
8-
Random,
8+
Entropy,
99
CharSet,
1010
charset2,
1111
charset4,

Diff for: examples/custom_bytes.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
// Custom bytes
22

3-
const { Random } = require('./entropy-string')
3+
const { default: Entropy } = require('./entropy')
44

5-
const random = new Random()
5+
const entropy = new Entropy()
66
const bytes = Buffer.from([250, 200, 150, 100])
7-
let string = random.stringWithBytes(30, bytes)
7+
let string = entropy.stringWithBytes(30, bytes)
88
console.log(`\n Custom bytes string : ${string}\n`)
99

1010
try {
11-
string = random.stringWithBytes(32, bytes)
11+
string = entropy.stringWithBytes(32, bytes)
1212
} catch (error) {
1313
console.log(` Error: ${error.message}\n`)
1414
}

Diff for: examples/custom_chars_1.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
// Custom characters: HT for coin flip
22

3-
const { Random } = require('./entropy-string')
4-
const { charset2 } = require('./entropy')
3+
const { default: Entropy, charset2 } = require('./entropy')
54

6-
const random = new Random(charset2)
7-
let flips = random.string(10)
5+
const entropy = new Entropy(charset2)
6+
let flips = entropy.string(10)
87
console.log(`\n 10 flips: ${flips}`)
98

10-
random.useChars('HT')
11-
flips = random.string(10)
9+
entropy.useChars('HT')
10+
flips = entropy.string(10)
1211
console.log(`\n 10 flips: ${flips}\n`)

Diff for: examples/custom_chars_2.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Custom characters: Uppercase hex
22

3-
const { Random } = require('./entropy-string')
3+
const { default: Entropy } = require('./entropy')
44

5-
const random = new Random('0123456789ABCDEF')
6-
const string = random.string(48)
5+
const entropy = new Entropy('0123456789ABCDEF')
6+
const string = entropy.string(48)
77
console.log(`\n Uppercase hex: ${string}\n`)

Diff for: examples/custom_chars_3.js

+5-5
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
// Custom character errors
22

3-
const { Random } = require('./entropy-string')
3+
const { default: Entropy } = require('./entropy')
44

55
try {
6-
const random = new Random('123456')
7-
console.error('variable \'random\' should not exist', random)
6+
const entropy = new Entropy('123456')
7+
console.error('variable \'entropy\' should not exist', entropy)
88
} catch (error) {
99
console.log(`\n Error: ${error.message}`)
1010
}
1111

1212
try {
13-
const random = new Random('01233210')
14-
console.error('variable \'random\' should not exist', random)
13+
const entropy = new Entropy('01233210')
14+
console.error('variable \'entropy\' should not exist', entropy)
1515
} catch (error) {
1616
console.log(`\n Error: ${error.message}\n`)
1717
}

Diff for: examples/gen5.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
const { Random } = require('./entropy-string')
2-
const { entropyBits, charset16 } = require('./entropy')
1+
const { default: Entropy, entropyBits, charset16 } = require('./entropy')
32

4-
const random = new Random(charset16)
3+
const entropy = new Entropy(charset16)
54
const bits = entropyBits(10000, 1000000)
65
const strings = []
76
for (let i = 0; i < 5; i += 1) {
8-
const string = random.string(bits)
7+
const string = entropy.string(bits)
98
strings.push(string)
109
}
1110
console.log(`\n 5 IDs: ${strings.join(', ')}\n`)

Diff for: examples/more_1.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
// Ten thousand potential strings with 1 in a million risk of repeat
22

3-
const { Random, Entropy } = require('./entropy-string')
4-
const { entropyBits } = require('./entropy')
3+
const { default: Entropy, entropyBits } = require('./entropy')
54

6-
const random = new Random()
5+
const entropy = new Entropy()
76
const bits = entropyBits(10000, 1000000)
8-
const string = random.string(bits)
7+
const string = entropy.string(bits)
98

109
console.log(`\n Ten thousand potential strings with 1 in a million risk of repeat: ${string}\n`)
1110

Diff for: examples/more_2.js

+7-8
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
// Base 16 (hex) and base 4
22

33
const {
4-
Random, charset16, charset4
5-
} = require('./entropy-string')
6-
7-
const { entropyBits } = require('./entropy')
4+
default: Entropy,
5+
entropyBits, charset16, charset4
6+
} = require('./entropy')
87

98
console.log('\n 30 potential strings with 1 in a million risk of repeat: \n')
109

11-
const random = new Random(charset16)
10+
const entropy = new Entropy(charset16)
1211
const bits = entropyBits(30, 100000)
13-
let string = random.string(bits)
12+
let string = entropy.string(bits)
1413
console.log(` Base 16: ${string}\n`)
1514

16-
random.use(charset4)
17-
string = random.string(bits)
15+
entropy.use(charset4)
16+
string = entropy.string(bits)
1817
console.log(` Base 4 : ${string}\n`)

Diff for: examples/more_3.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
// Ten billion potential strings with 1 in a trillion risk of repeat
22

3-
const { Random } = require('./entropy-string')
4-
const { entropyBits } = require('./entropy')
3+
const { default: Entropy, entropyBits } = require('./entropy')
54

6-
const random = new Random()
5+
const entropy = new Entropy()
76
const bits = entropyBits(1e10, 1e12)
8-
const string = random.string(bits)
7+
const string = entropy.string(bits)
98

109
console.log(`\n Ten billion potential strings with 1 in a trillion risk of repeat: ${string}\n`)

Diff for: examples/random.js

-1
This file was deleted.

Diff for: examples/secure.js

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// Cryptographically strong and not...
22

3-
const { Random } = require('./entropy-string')
3+
const { default: Entropy } = require('./entropy')
44

5-
const random = new Random()
6-
let string = random.string(80)
5+
const entropy = new Entropy()
6+
let string = entropy.string(80)
77
console.log(`\n CSPRNG base 32 80-bit string : ${string}`)
88

9-
string = random.stringRandom(80)
9+
string = entropy.stringRandom(80)
1010
console.log(`\n PRNG base 32 80-bit string : ${string}\n`)
1111

Diff for: examples/tldr2.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
// Base32 string with a 1 in a billion chance of repeat in a million strings
22

3-
const { Random } = require('./entropy-string')
4-
const { entropyBits } = require('./entropy')
3+
const { default: Entropy, entropyBits } = require('./entropy')
54

6-
const random = new Random()
5+
const entropy = new Entropy()
76
const bits = entropyBits(1e6, 1e9)
8-
const string = random.string(bits)
7+
const string = entropy.string(bits)
98

109
console.log(`\n Base32 string with a 1 in a billion chance of repeat in a million strings: ${string}\n`)

Diff for: examples/tldr_1.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
// Potential of _1 million_ random strings with _1 in a billion_ chance of repeat
22

3-
const { Random } = require('./entropy-string')
4-
const { entropyBits } = require('./entropy')
3+
const { default: Entropy, entropyBits } = require('./entropy')
54

6-
const random = new Random()
5+
const entropy = new Entropy()
76
const bits = entropyBits(1e6, 1e9)
87

9-
const string = random.string(bits)
8+
const string = entropy.string(bits)
109

1110
console.log(`\n Potential 1 million random strings with 1 in a billion chance of repeat: ${string}\n`)

Diff for: examples/tldr_2.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
// Generate a potential of _1 million_ random strings with _1 in a billion_ chance of repeat using
22
// hexadecimal strings.
33

4-
const { Random } = require('./entropy-string')
5-
const { entropyBits, charset16 } = require('./entropy')
4+
const { default: Entropy, entropyBits, charset16 } = require('./entropy')
65

7-
const random = new Random(charset16)
6+
const entropy = new Entropy(charset16)
87
const bits = entropyBits(1e6, 1e9)
98

10-
const string = random.string(bits)
9+
const string = entropy.string(bits)
1110

1211
console.log(`\n Potential 1 million random strings with 1 in a billion chance of repeat: ${string}\n`)

Diff for: examples/tldr_3.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
// Custom uppercase hexadecimal characters
22

3-
const { Random } = require('./entropy-string')
4-
const { entropyBits } = require('./entropy')
3+
const { default: Entropy, entropyBits } = require('./entropy')
54

6-
const random = new Random('0123456789ABCDEF')
5+
const entropy = new Entropy('0123456789ABCDEF')
76
const bits = entropyBits(1e6, 1e9)
87

9-
const string = random.string(bits)
8+
const string = entropy.string(bits)
109

1110
console.log(`\n Custom uppercase hexadecimal characters: ${string}\n`)

Diff for: examples/tldr_4.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// Small ID with 1 in a million chance of repeat for 30 strings
22

3-
const { Random } = require('./entropy-string')
3+
const { default: Entropy } = require('./entropy')
44

5-
const random = new Random()
6-
const string = random.smallID()
5+
const entropy = new Entropy()
6+
const string = entropy.smallID()
77

88
console.log(`\n Small ID has 1 in a million chance of repeat for 30 strings: ${string}\n`)

Diff for: examples/tldr_5.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// OWASP session ID using base32 characters
22

3-
const { Random } = require('./entropy-string')
3+
const { default: Entropy } = require('./entropy')
44

5-
const random = new Random()
6-
const string = random.sessionID()
5+
const entropy = new Entropy()
6+
const string = entropy.sessionID()
77

88
console.log(`\n OWASP session ID using base32 characters: ${string}\n`)

Diff for: examples/tldr_6.js

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
// Base 64 character 256 bit token
22

3-
const { Random } = require('./entropy-string')
4-
const { charset64 } = require('./entropy')
3+
const { default: Entropy, charset64 } = require('./entropy')
54

6-
const random = new Random(charset64)
7-
const string = random.token()
5+
const entropy = new Entropy(charset64)
6+
const string = entropy.token()
87

98
console.log(`\n 256 bit token using RFC 4648 URL and file system safe characters: ${string}\n`)

Diff for: lib/charset.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const WeakMap = require('weak-map')
22

3-
const lcm = require('./lcm').default
3+
const { default: lcm } = require('./lcm')
44

55
const propMap = new WeakMap()
66

@@ -102,3 +102,4 @@ export default class CharSet {
102102
ndxFn() { return this.getNdxFn() }
103103
bitsPerChar() { return this.getBitsPerChar() }
104104
}
105+

0 commit comments

Comments
 (0)