index.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. 'use strict'
  2. exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')
  3. exports.createHash = exports.Hash = require('create-hash')
  4. exports.createHmac = exports.Hmac = require('create-hmac')
  5. var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(Object.keys(require('browserify-sign/algos')))
  6. exports.getHashes = function () {
  7. return hashes
  8. }
  9. var p = require('pbkdf2')
  10. exports.pbkdf2 = p.pbkdf2
  11. exports.pbkdf2Sync = p.pbkdf2Sync
  12. var aes = require('browserify-cipher')
  13. ;[
  14. 'Cipher',
  15. 'createCipher',
  16. 'Cipheriv',
  17. 'createCipheriv',
  18. 'Decipher',
  19. 'createDecipher',
  20. 'Decipheriv',
  21. 'createDecipheriv',
  22. 'getCiphers',
  23. 'listCiphers'
  24. ].forEach(function (key) {
  25. exports[key] = aes[key]
  26. })
  27. var dh = require('diffie-hellman')
  28. ;[
  29. 'DiffieHellmanGroup',
  30. 'createDiffieHellmanGroup',
  31. 'getDiffieHellman',
  32. 'createDiffieHellman',
  33. 'DiffieHellman'
  34. ].forEach(function (key) {
  35. exports[key] = dh[key]
  36. })
  37. var sign = require('browserify-sign')
  38. ;[
  39. 'createSign',
  40. 'Sign',
  41. 'createVerify',
  42. 'Verify'
  43. ].forEach(function (key) {
  44. exports[key] = sign[key]
  45. })
  46. exports.createECDH = require('create-ecdh')
  47. var publicEncrypt = require('public-encrypt')
  48. ;[
  49. 'publicEncrypt',
  50. 'privateEncrypt',
  51. 'publicDecrypt',
  52. 'privateDecrypt'
  53. ].forEach(function (key) {
  54. exports[key] = publicEncrypt[key]
  55. })
  56. // the least I can do is make error messages for the rest of the node.js/crypto api.
  57. ;[
  58. 'createCredentials'
  59. ].forEach(function (name) {
  60. exports[name] = function () {
  61. throw new Error([
  62. 'sorry, ' + name + ' is not implemented yet',
  63. 'we accept pull requests',
  64. 'https://github.com/crypto-browserify/crypto-browserify'
  65. ].join('\n'))
  66. }
  67. })