index.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/__node_modules/evp_bytestokey/index.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}var Buffer = require('safe-buffer').Buffer
  12. var MD5 = require('md5.js')
  13. /* eslint-disable camelcase */
  14. function EVP_BytesToKey (password, salt, keyBits, ivLen) {
  15. if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')
  16. if (salt) {
  17. if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')
  18. if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')
  19. }
  20. var keyLen = keyBits / 8
  21. var key = Buffer.alloc(keyLen)
  22. var iv = Buffer.alloc(ivLen || 0)
  23. var tmp = Buffer.alloc(0)
  24. while (keyLen > 0 || ivLen > 0) {
  25. var hash = new MD5()
  26. hash.update(tmp)
  27. hash.update(password)
  28. if (salt) hash.update(salt)
  29. tmp = hash.digest()
  30. var used = 0
  31. if (keyLen > 0) {
  32. var keyStart = key.length - keyLen
  33. used = Math.min(keyLen, tmp.length)
  34. tmp.copy(key, keyStart, 0, used)
  35. keyLen -= used
  36. }
  37. if (used < tmp.length && ivLen > 0) {
  38. var ivStart = iv.length - ivLen
  39. var length = Math.min(ivLen, tmp.length - used)
  40. tmp.copy(iv, ivStart, used, used + length)
  41. ivLen -= length
  42. }
  43. }
  44. tmp.fill(0)
  45. return { key: key, iv: iv }
  46. }
  47. module.exports = EVP_BytesToKey
  48. }
  49. if (nodeEnv) {
  50. __define(__module.exports, __require, __module);
  51. }
  52. else {
  53. __quick_compile_project__.registerModuleFunc(__filename, function () {
  54. __define(__module.exports, __require, __module);
  55. });
  56. }
  57. })();