UNPKG

sk-crypto

Version:

ShaneKing's Crypto for JavaScript

56 lines (43 loc) 7.19 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _cryptoJs = require('crypto-js'); var _cryptoJs2 = _interopRequireDefault(_cryptoJs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var SKCrypto = function () { function SKCrypto() { _classCallCheck(this, SKCrypto); } _createClass(SKCrypto, null, [{ key: 'aesDecrypt', value: function aesDecrypt(cipherText) { var salt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SKCrypto.DEFAULT_SALT; var iv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : salt.substr(0, salt.length / 2); var passPhrase = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : salt; var iterations = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : salt.length; var keySize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : salt.length * 2 / 32; return _cryptoJs2.default.AES.decrypt(_cryptoJs2.default.lib.CipherParams.create({ ciphertext: _cryptoJs2.default.enc.Base64.parse(cipherText) }), _cryptoJs2.default.PBKDF2(passPhrase, _cryptoJs2.default.enc.Hex.parse(salt), { iterations: iterations, keySize: keySize }), { iv: _cryptoJs2.default.enc.Hex.parse(iv) }).toString(_cryptoJs2.default.enc.Utf8); } //ThisIsSixFourBitSaltForShaneKing }, { key: 'aesEncrypt', value: function aesEncrypt(plainText) { var salt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SKCrypto.DEFAULT_SALT; var iv = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : salt.substr(0, salt.length / 2); var passPhrase = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : salt; var iterations = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : salt.length; var keySize = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : salt.length * 2 / 32; return _cryptoJs2.default.AES.encrypt(plainText, _cryptoJs2.default.PBKDF2(passPhrase, _cryptoJs2.default.enc.Hex.parse(salt), { iterations: iterations, keySize: keySize }), { iv: _cryptoJs2.default.enc.Hex.parse(iv) }).ciphertext.toString(_cryptoJs2.default.enc.Base64); } }]); return SKCrypto; }(); SKCrypto.DEFAULT_SALT = '546869734973536978466F757242697453616C74466F725368616E654B696E67'; exports.default = SKCrypto; module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNLQ3J5cHRvLmpzIl0sIm5hbWVzIjpbIlNLQ3J5cHRvIiwiY2lwaGVyVGV4dCIsInNhbHQiLCJERUZBVUxUX1NBTFQiLCJpdiIsInN1YnN0ciIsImxlbmd0aCIsInBhc3NQaHJhc2UiLCJpdGVyYXRpb25zIiwia2V5U2l6ZSIsIkFFUyIsImRlY3J5cHQiLCJsaWIiLCJDaXBoZXJQYXJhbXMiLCJjcmVhdGUiLCJjaXBoZXJ0ZXh0IiwiZW5jIiwiQmFzZTY0IiwicGFyc2UiLCJQQktERjIiLCJIZXgiLCJ0b1N0cmluZyIsIlV0ZjgiLCJwbGFpblRleHQiLCJlbmNyeXB0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7Ozs7OztJQUVxQkEsUTs7Ozs7OzsrQkFJREMsVSxFQUE2SjtBQUFBLFVBQWpKQyxJQUFpSix1RUFBMUlGLFNBQVNHLFlBQWlJO0FBQUEsVUFBbkhDLEVBQW1ILHVFQUE5R0YsS0FBS0csTUFBTCxDQUFZLENBQVosRUFBZUgsS0FBS0ksTUFBTCxHQUFjLENBQTdCLENBQThHO0FBQUEsVUFBN0VDLFVBQTZFLHVFQUFoRUwsSUFBZ0U7QUFBQSxVQUExRE0sVUFBMEQsdUVBQTdDTixLQUFLSSxNQUF3QztBQUFBLFVBQWhDRyxPQUFnQyx1RUFBdEJQLEtBQUtJLE1BQUwsR0FBYyxDQUFkLEdBQWtCLEVBQUk7O0FBQzdLLGFBQU8sbUJBQVNJLEdBQVQsQ0FBYUMsT0FBYixDQUNMLG1CQUFTQyxHQUFULENBQWFDLFlBQWIsQ0FBMEJDLE1BQTFCLENBQWlDO0FBQy9CQyxvQkFBWSxtQkFBU0MsR0FBVCxDQUFhQyxNQUFiLENBQW9CQyxLQUFwQixDQUEwQmpCLFVBQTFCO0FBRG1CLE9BQWpDLENBREssRUFJTCxtQkFBU2tCLE1BQVQsQ0FDRVosVUFERixFQUVFLG1CQUFTUyxHQUFULENBQWFJLEdBQWIsQ0FBaUJGLEtBQWpCLENBQXVCaEIsSUFBdkIsQ0FGRixFQUdFLEVBQUNNLFlBQVlBLFVBQWIsRUFBeUJDLFNBQVNBLE9BQWxDLEVBSEYsQ0FKSyxFQVFMLEVBQUNMLElBQUksbUJBQVNZLEdBQVQsQ0FBYUksR0FBYixDQUFpQkYsS0FBakIsQ0FBdUJkLEVBQXZCLENBQUwsRUFSSyxFQVE2QmlCLFFBUjdCLENBUXNDLG1CQUFTTCxHQUFULENBQWFNLElBUm5ELENBQVA7QUFTRDtBQWJEOzs7OytCQWVrQkMsUyxFQUE0SjtBQUFBLFVBQWpKckIsSUFBaUosdUVBQTFJRixTQUFTRyxZQUFpSTtBQUFBLFVBQW5IQyxFQUFtSCx1RUFBOUdGLEtBQUtHLE1BQUwsQ0FBWSxDQUFaLEVBQWVILEtBQUtJLE1BQUwsR0FBYyxDQUE3QixDQUE4RztBQUFBLFVBQTdFQyxVQUE2RSx1RUFBaEVMLElBQWdFO0FBQUEsVUFBMURNLFVBQTBELHVFQUE3Q04sS0FBS0ksTUFBd0M7QUFBQSxVQUFoQ0csT0FBZ0MsdUVBQXRCUCxLQUFLSSxNQUFMLEdBQWMsQ0FBZCxHQUFrQixFQUFJOztBQUM1SyxhQUFPLG1CQUFTSSxHQUFULENBQWFjLE9BQWIsQ0FDTEQsU0FESyxFQUVMLG1CQUFTSixNQUFULENBQ0VaLFVBREYsRUFFRSxtQkFBU1MsR0FBVCxDQUFhSSxHQUFiLENBQWlCRixLQUFqQixDQUF1QmhCLElBQXZCLENBRkYsRUFHRSxFQUFDTSxZQUFZQSxVQUFiLEVBQXlCQyxTQUFTQSxPQUFsQyxFQUhGLENBRkssRUFNTCxFQUFDTCxJQUFJLG1CQUFTWSxHQUFULENBQWFJLEdBQWIsQ0FBaUJGLEtBQWpCLENBQXVCZCxFQUF2QixDQUFMLEVBTkssRUFNNkJXLFVBTjdCLENBTXdDTSxRQU54QyxDQU1pRCxtQkFBU0wsR0FBVCxDQUFhQyxNQU45RCxDQUFQO0FBT0Q7Ozs7OztBQXhCa0JqQixRLENBRVpHLFksR0FBZSxrRTtrQkFGSEgsUSIsImZpbGUiOiJTS0NyeXB0by5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDcnlwdG9KUyBmcm9tICdjcnlwdG8tanMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBTS0NyeXB0byB7XG4gIC8vVGhpc0lzU2l4Rm91ckJpdFNhbHRGb3JTaGFuZUtpbmdcbiAgc3RhdGljIERFRkFVTFRfU0FMVCA9ICc1NDY4Njk3MzQ5NzM1MzY5Nzg0NjZGNzU3MjQyNjk3NDUzNjE2Qzc0NDY2RjcyNTM2ODYxNkU2NTRCNjk2RTY3JztcblxuICBzdGF0aWMgYWVzRGVjcnlwdChjaXBoZXJUZXh0LCBzYWx0ID0gU0tDcnlwdG8uREVGQVVMVF9TQUxULCBpdiA9IHNhbHQuc3Vic3RyKDAsIHNhbHQubGVuZ3RoIC8gMiksIHBhc3NQaHJhc2UgPSBzYWx0LCBpdGVyYXRpb25zID0gc2FsdC5sZW5ndGgsIGtleVNpemUgPSBzYWx0Lmxlbmd0aCAqIDIgLyAzMikge1xuICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZGVjcnlwdChcbiAgICAgIENyeXB0b0pTLmxpYi5DaXBoZXJQYXJhbXMuY3JlYXRlKHtcbiAgICAgICAgY2lwaGVydGV4dDogQ3J5cHRvSlMuZW5jLkJhc2U2NC5wYXJzZShjaXBoZXJUZXh0KVxuICAgICAgfSksXG4gICAgICBDcnlwdG9KUy5QQktERjIoXG4gICAgICAgIHBhc3NQaHJhc2UsXG4gICAgICAgIENyeXB0b0pTLmVuYy5IZXgucGFyc2Uoc2FsdCksXG4gICAgICAgIHtpdGVyYXRpb25zOiBpdGVyYXRpb25zLCBrZXlTaXplOiBrZXlTaXplfSksXG4gICAgICB7aXY6IENyeXB0b0pTLmVuYy5IZXgucGFyc2UoaXYpfSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xuICB9XG5cbiAgc3RhdGljIGFlc0VuY3J5cHQocGxhaW5UZXh0LCBzYWx0ID0gU0tDcnlwdG8uREVGQVVMVF9TQUxULCBpdiA9IHNhbHQuc3Vic3RyKDAsIHNhbHQubGVuZ3RoIC8gMiksIHBhc3NQaHJhc2UgPSBzYWx0LCBpdGVyYXRpb25zID0gc2FsdC5sZW5ndGgsIGtleVNpemUgPSBzYWx0Lmxlbmd0aCAqIDIgLyAzMikge1xuICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZW5jcnlwdChcbiAgICAgIHBsYWluVGV4dCxcbiAgICAgIENyeXB0b0pTLlBCS0RGMihcbiAgICAgICAgcGFzc1BocmFzZSxcbiAgICAgICAgQ3J5cHRvSlMuZW5jLkhleC5wYXJzZShzYWx0KSxcbiAgICAgICAge2l0ZXJhdGlvbnM6IGl0ZXJhdGlvbnMsIGtleVNpemU6IGtleVNpemV9KSxcbiAgICAgIHtpdjogQ3J5cHRvSlMuZW5jLkhleC5wYXJzZShpdil9KS5jaXBoZXJ0ZXh0LnRvU3RyaW5nKENyeXB0b0pTLmVuYy5CYXNlNjQpO1xuICB9XG59XG4iXX0=