Skip to content

Commit

Permalink
Updated webpacks
Browse files Browse the repository at this point in the history
  • Loading branch information
juhoen committed Jan 22, 2018
1 parent fc448be commit ff8d7ec
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 5 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "hybrid-crypto-js",
"version": "0.1.2",
"version": "0.1.3",
"description": "Hybrid (RSA+AES) encryption and decryption toolkit for JavaScript",
"main": "lib/index.js",
"scripts": {
Expand Down
6 changes: 3 additions & 3 deletions web/hybrid-crypto.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var helpers=require('./helpers');var forge=require('node-forge');var pki=forge.pki;var rsa=pki.rsa;var AES_STANDARD='AES-CBC';var crypt={fingerprint:function fingerprint(publicKey){return pki.getPublicKeyFingerprint(publicKey,{encoding:'hex',delimiter:':'});},signature:function signature(privateKey,message){var csum=forge.md.sha1.create();csum.update(message,'utf8');if(typeof privateKey==='string')privateKey=pki.privateKeyFromPem(privateKey);var signature=privateKey.sign(csum);return forge.util.encode64(signature);},verify:function verify(publicKey,signature,decrypted){if(!signature)return false;var csum=forge.md.sha1.create();csum.update(decrypted,'utf8');signature=forge.util.decode64(signature);if(typeof publicKey==='string')publicKey=pki.publicKeyFromPem(publicKey);var verified=publicKey.verify(csum.digest().getBytes(),signature);return verified;},encrypt:function encrypt(publicKeys,message,signature){var payload={};publicKeys=helpers.toArray(publicKeys);publicKeys=publicKeys.map(function(key){if(typeof key==='string')return pki.publicKeyFromPem(key);return key;});var iv=forge.random.getBytesSync(32);var key=forge.random.getBytesSync(32);var encryptedKeys={};publicKeys.forEach(function(publicKey){var encryptedKey=publicKey.encrypt(key,'RSA-OAEP');var fingerprint=crypt.fingerprint(publicKey);encryptedKeys[fingerprint]=forge.util.encode64(encryptedKey);});var buffer=forge.util.createBuffer(message,'utf8');var cipher=forge.cipher.createCipher(AES_STANDARD,key);cipher.start({iv:iv});cipher.update(buffer);cipher.finish();payload.v=helpers.version();payload.iv=forge.util.encode64(iv);payload.keys=encryptedKeys;payload.cipher=forge.util.encode64(cipher.output.data);payload.signature=signature;var output=JSON.stringify(payload);return output;},decrypt:function decrypt(privateKey,encrypted){var payload=JSON.parse(encrypted);if(typeof privateKey==='string')privateKey=pki.privateKeyFromPem(privateKey);var fingerprint=crypt.fingerprint(privateKey);var encryptedKey=payload.keys[fingerprint];if(!encryptedKey)return{};var keyBytes=forge.util.decode64(encryptedKey);var iv=forge.util.decode64(payload.iv);var cipher=forge.util.decode64(payload.cipher);var key=privateKey.decrypt(keyBytes,'RSA-OAEP');var buffer=forge.util.createBuffer(cipher);var decipher=forge.cipher.createDecipher(AES_STANDARD,key);decipher.start({iv:iv});decipher.update(buffer);decipher.finish();var bytes=decipher.output.getBytes();var decrypted=forge.util.decodeUtf8(bytes);var output={};output.message=decrypted;output.signature=payload.signature;return output;}};module.exports=crypt;
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;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var helpers=require('./helpers');var forge=require('node-forge');var pki=forge.pki;var rsa=pki.rsa;var AES_STANDARD='AES-CBC';var Crypt=function(){function Crypt(options){_classCallCheck(this,Crypt);options=options||{};this._entropy(options.entropy);}_createClass(Crypt,[{key:'fingerprint',value:function fingerprint(publicKey){return pki.getPublicKeyFingerprint(publicKey,{encoding:'hex',delimiter:':'});}},{key:'signature',value:function signature(privateKey,message){var csum=forge.md.sha1.create();csum.update(message,'utf8');if(typeof privateKey==='string')privateKey=pki.privateKeyFromPem(privateKey);var signature=privateKey.sign(csum);return forge.util.encode64(signature);}},{key:'verify',value:function verify(publicKey,signature,decrypted){if(!signature)return false;var csum=forge.md.sha1.create();csum.update(decrypted,'utf8');signature=forge.util.decode64(signature);if(typeof publicKey==='string')publicKey=pki.publicKeyFromPem(publicKey);var verified=publicKey.verify(csum.digest().getBytes(),signature);return verified;}},{key:'encrypt',value:function encrypt(publicKeys,message,signature){var self=this;var payload={};publicKeys=helpers.toArray(publicKeys);publicKeys=publicKeys.map(function(key){if(typeof key==='string')return pki.publicKeyFromPem(key);return key;});var iv=forge.random.getBytesSync(32);var key=forge.random.getBytesSync(32);var encryptedKeys={};publicKeys.forEach(function(publicKey){var encryptedKey=publicKey.encrypt(key,'RSA-OAEP');var fingerprint=self.fingerprint(publicKey);encryptedKeys[fingerprint]=forge.util.encode64(encryptedKey);});var buffer=forge.util.createBuffer(message,'utf8');var cipher=forge.cipher.createCipher(AES_STANDARD,key);cipher.start({iv:iv});cipher.update(buffer);cipher.finish();payload.v=helpers.version();payload.iv=forge.util.encode64(iv);payload.keys=encryptedKeys;payload.cipher=forge.util.encode64(cipher.output.data);payload.signature=signature;var output=JSON.stringify(payload);return output;}},{key:'decrypt',value:function decrypt(privateKey,encrypted){if(!this._validate(encrypted))return;var payload=JSON.parse(encrypted);if(typeof privateKey==='string')privateKey=pki.privateKeyFromPem(privateKey);var fingerprint=this.fingerprint(privateKey);var encryptedKey=payload.keys[fingerprint];if(!encryptedKey){console.warn('RSA fingerprint doesn\'t match with any of the encrypted message\'s fingerprints');return;}var keyBytes=forge.util.decode64(encryptedKey);var iv=forge.util.decode64(payload.iv);var cipher=forge.util.decode64(payload.cipher);var key=privateKey.decrypt(keyBytes,'RSA-OAEP');var buffer=forge.util.createBuffer(cipher);var decipher=forge.cipher.createDecipher(AES_STANDARD,key);decipher.start({iv:iv});decipher.update(buffer);decipher.finish();var bytes=decipher.output.getBytes();var decrypted=forge.util.decodeUtf8(bytes);var output={};output.message=decrypted;output.signature=payload.signature;return output;}},{key:'_validate',value:function _validate(encrypted){try{var p=JSON.parse(encrypted);return p.hasOwnProperty('v')&&p.hasOwnProperty('iv')&&p.hasOwnProperty('keys')&&p.hasOwnProperty('cipher');}catch(e){console.warn(e);return false;}}},{key:'_entropy',value:function _entropy(input){bytes=forge.util.encodeUtf8(String(input));forge.random.collect(bytes);}}]);return Crypt;}();module.exports=Crypt;

},{"./helpers":2,"node-forge":14}],2:[function(require,module,exports){
var pkg=require('../package.json');var helpers={version:function version(){return pkg.name+'_'+pkg.version;},toArray:function toArray(obj){if(Array.isArray(obj))return obj;return[obj];}};module.exports=helpers;

},{"../package.json":46}],3:[function(require,module,exports){
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;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var forge=require('node-forge');var pki=forge.pki;var RSA=function(){function RSA(options){_classCallCheck(this,RSA);this.options=options||{};this.options.keySize=this.options.keySize||4096;this.options.rsaStandard=this.options.rsaStandard||'RSA-OAEP';}_createClass(RSA,[{key:'generateKeypair',value:function generateKeypair(callback,keySize){var done=function done(err,keypair){keypair.publicKey=pki.publicKeyToPem(keypair.publicKey);keypair.privateKey=pki.privateKeyToPem(keypair.privateKey);callback(keypair);};pki.rsa.generateKeyPair({bits:keySize||this.options.keySize,workers:-1},done);}}]);return RSA;}();module.exports=RSA;
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;};}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var forge=require('node-forge');var pki=forge.pki;var RSA=function(){function RSA(options){_classCallCheck(this,RSA);this.options=options||{};this.options.keySize=this.options.keySize||4096;this.options.rsaStandard=this.options.rsaStandard||'RSA-OAEP';this._entropy(options.entropy);}_createClass(RSA,[{key:'generateKeypair',value:function generateKeypair(callback,keySize){var done=function done(err,keypair){keypair.publicKey=pki.publicKeyToPem(keypair.publicKey);keypair.privateKey=pki.privateKeyToPem(keypair.privateKey);callback(keypair);};pki.rsa.generateKeyPair({bits:keySize||this.options.keySize,workers:-1},done);}},{key:'_entropy',value:function _entropy(input){bytes=forge.util.encodeUtf8(String(input));forge.random.collect(bytes);}}]);return RSA;}();module.exports=RSA;

},{"node-forge":14}],4:[function(require,module,exports){
var _crypt=require('./crypt');var _crypt2=_interopRequireDefault(_crypt);var _rsa=require('./rsa');var _rsa2=_interopRequireDefault(_rsa);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}window.crypt=_crypt2.default;window.RSA=_rsa2.default;
Expand Down Expand Up @@ -27714,7 +27714,7 @@ pki.verifyCertificateChain = function(caStore, chain, verify) {
},{"./aes":5,"./asn1":7,"./des":11,"./forge":12,"./md":19,"./mgf":21,"./oids":23,"./pem":26,"./pss":34,"./rsa":37,"./util":44}],46:[function(require,module,exports){
module.exports={
"name": "hybrid-crypto-js",
"version": "0.1.1",
"version": "0.1.3",
"description": "Hybrid (RSA+AES) encryption and decryption toolkit for JavaScript",
"main": "lib/index.js",
"scripts": {
Expand Down
2 changes: 1 addition & 1 deletion web/hybrid-crypto.min.js

Large diffs are not rendered by default.

0 comments on commit ff8d7ec

Please sign in to comment.