Blame view

node_modules/crypto-browserify/index.js 2.87 KB
aaac7fed   liuqimichale   add
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
  'use strict'
  
  exports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')
  exports.createHash = exports.Hash = require('create-hash')
  exports.createHmac = exports.Hmac = require('create-hmac')
  
  var algos = require('browserify-sign/algos')
  var algoKeys = Object.keys(algos)
  var hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)
  exports.getHashes = function () {
    return hashes
  }
  
  var p = require('pbkdf2')
  exports.pbkdf2 = p.pbkdf2
  exports.pbkdf2Sync = p.pbkdf2Sync
  
  var aes = require('browserify-cipher')
  
  exports.Cipher = aes.Cipher
  exports.createCipher = aes.createCipher
  exports.Cipheriv = aes.Cipheriv
  exports.createCipheriv = aes.createCipheriv
  exports.Decipher = aes.Decipher
  exports.createDecipher = aes.createDecipher
  exports.Decipheriv = aes.Decipheriv
  exports.createDecipheriv = aes.createDecipheriv
  exports.getCiphers = aes.getCiphers
  exports.listCiphers = aes.listCiphers
  
  var dh = require('diffie-hellman')
  
  exports.DiffieHellmanGroup = dh.DiffieHellmanGroup
  exports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup
  exports.getDiffieHellman = dh.getDiffieHellman
  exports.createDiffieHellman = dh.createDiffieHellman
  exports.DiffieHellman = dh.DiffieHellman
  
  var sign = require('browserify-sign')
  
  exports.createSign = sign.createSign
  exports.Sign = sign.Sign
  exports.createVerify = sign.createVerify
  exports.Verify = sign.Verify
  
  exports.createECDH = require('create-ecdh')
  
  var publicEncrypt = require('public-encrypt')
  
  exports.publicEncrypt = publicEncrypt.publicEncrypt
  exports.privateEncrypt = publicEncrypt.privateEncrypt
  exports.publicDecrypt = publicEncrypt.publicDecrypt
  exports.privateDecrypt = publicEncrypt.privateDecrypt
  
  // the least I can do is make error messages for the rest of the node.js/crypto api.
  // ;[
  //   'createCredentials'
  // ].forEach(function (name) {
  //   exports[name] = function () {
  //     throw new Error([
  //       'sorry, ' + name + ' is not implemented yet',
  //       'we accept pull requests',
  //       'https://github.com/crypto-browserify/crypto-browserify'
  //     ].join('\n'))
  //   }
  // })
  
  var rf = require('randomfill')
  
  exports.randomFill = rf.randomFill
  exports.randomFillSync = rf.randomFillSync
  
  exports.createCredentials = function () {
    throw new Error([
      'sorry, createCredentials is not implemented yet',
      'we accept pull requests',
      'https://github.com/crypto-browserify/crypto-browserify'
    ].join('\n'))
  }
  
  exports.constants = {
    'DH_CHECK_P_NOT_SAFE_PRIME': 2,
    'DH_CHECK_P_NOT_PRIME': 1,
    'DH_UNABLE_TO_CHECK_GENERATOR': 4,
    'DH_NOT_SUITABLE_GENERATOR': 8,
    'NPN_ENABLED': 1,
    'ALPN_ENABLED': 1,
    'RSA_PKCS1_PADDING': 1,
    'RSA_SSLV23_PADDING': 2,
    'RSA_NO_PADDING': 3,
    'RSA_PKCS1_OAEP_PADDING': 4,
    'RSA_X931_PADDING': 5,
    'RSA_PKCS1_PSS_PADDING': 6,
    'POINT_CONVERSION_COMPRESSED': 2,
    'POINT_CONVERSION_UNCOMPRESSED': 4,
    'POINT_CONVERSION_HYBRID': 6
  }