randomBytes.js 674 B

1234567891011121314151617181920212223242526
  1. var random = require('./random');
  2. var isBrowser = require('./isBrowser');
  3. var isNode = require('./isNode');
  4. exports = function(size) {
  5. var ret = new Uint8Array(size);
  6. for (var i = 0; i < size; i++) ret[i] = random(0, 255);
  7. return ret;
  8. };
  9. var crypto;
  10. if (isBrowser) {
  11. crypto = window.crypto || window.msCrypto;
  12. if (crypto) {
  13. exports = function(size) {
  14. var ret = new Uint8Array(size);
  15. crypto.getRandomValues(ret);
  16. return ret;
  17. };
  18. }
  19. } else if (isNode) {
  20. crypto = eval('require')('crypto');
  21. exports = function(size) {
  22. return crypto.randomBytes(size);
  23. };
  24. }
  25. module.exports = exports;