blob: fa0bdfddc27b6098909e6d08f74123ae365d1fa6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
seeder = {
// number of mouse movements to wait for
seedLimit: (function () {
var num = Crypto.util.randomBytes(12)[11];
return 200 + Math.floor(num);
})(),
seedCount: 0, // counter
lastInputTime: new Date().getTime(),
seedPoints: [],
// seed function exists to wait for mouse movement to add more entropy before generating an address
seed: function (evt) {
if (!evt) var evt = window.event;
var timeStamp = new Date().getTime();
// seeding is over now we generate and display the address
if (seeder.seedCount == seeder.seedLimit) {
seeder.seedCount++;
seeder.removePoints();
$('body').trigger('seeded')
}
// seed mouse position X and Y when mouse movements are greater than 40ms apart.
else if ((seeder.seedCount < seeder.seedLimit) && evt && (timeStamp - seeder.lastInputTime) > 10) {
SecureRandom.seedTime();
SecureRandom.seedInt16((evt.clientX * evt.clientY));
seeder.seedCount++;
seeder.lastInputTime = new Date().getTime();
}
},
removePoints: function () {
for (var i = 0; i < seeder.seedPoints.length; i++) {
document.body.removeChild(seeder.seedPoints[i]);
}
seeder.seedPoints = [];
}
};
|