diff options
| author | Adam Soltys <[email protected]> | 2014-09-01 15:12:27 -0700 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2014-09-01 15:12:27 -0700 |
| commit | 40083923ed74eb026135d78600ebf55ff0a9e32c (patch) | |
| tree | af2e75cebeac31ff507615d6608b0c7a84022849 /public/js/seeder.js | |
| parent | 8fe5b97004189845ee98a02ab197ca080ff0a002 (diff) | |
| download | coinos-server-40083923ed74eb026135d78600ebf55ff0a9e32c.tar.gz coinos-server-40083923ed74eb026135d78600ebf55ff0a9e32c.zip | |
Support BIP32 HD Wallets
Diffstat (limited to 'public/js/seeder.js')
| -rw-r--r-- | public/js/seeder.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/public/js/seeder.js b/public/js/seeder.js new file mode 100644 index 00000000..fa0bdfdd --- /dev/null +++ b/public/js/seeder.js @@ -0,0 +1,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 = []; + } +}; |
