fixProc.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/__node_modules/parse-asn1/fixProc.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);}// adapted from https://github.com/apatil/pemstrip
  12. var findProc = /Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m
  13. var startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m
  14. var fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m
  15. var evp = require('evp_bytestokey')
  16. var ciphers = require('browserify-aes')
  17. var Buffer = require('safe-buffer').Buffer
  18. module.exports = function (okey, password) {
  19. var key = okey.toString()
  20. var match = key.match(findProc)
  21. var decrypted
  22. if (!match) {
  23. var match2 = key.match(fullRegex)
  24. decrypted = Buffer.from(match2[2].replace(/[\r\n]/g, ''), 'base64')
  25. } else {
  26. var suite = 'aes' + match[1]
  27. var iv = Buffer.from(match[2], 'hex')
  28. var cipherText = Buffer.from(match[3].replace(/[\r\n]/g, ''), 'base64')
  29. var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key
  30. var out = []
  31. var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)
  32. out.push(cipher.update(cipherText))
  33. out.push(cipher.final())
  34. decrypted = Buffer.concat(out)
  35. }
  36. var tag = key.match(startRegex)[1]
  37. return {
  38. tag: tag,
  39. data: decrypted
  40. }
  41. }
  42. }
  43. if (nodeEnv) {
  44. __define(__module.exports, __require, __module);
  45. }
  46. else {
  47. __quick_compile_project__.registerModuleFunc(__filename, function () {
  48. __define(__module.exports, __require, __module);
  49. });
  50. }
  51. })();