Files
zoff/server/node_modules/node-cryptojs-aes/examples/browser/js/main.js
Kasper Rynning-Tønnesen abf77a27d6 major security update
2015-11-23 20:27:55 +01:00

81 lines
2.4 KiB
JavaScript

// browser side implementation
jQuery(document).ready(function($){
// retrieve encrypted json string when loading page
// define server cipherParams JSONP path
var encrypted_url = "http://localhost:3000/crypto/encrypted?callback=?";
// JSONP AJAX call to node.js server running on localhost:3000
$.getJSON(encrypted_url, function(data){
// retrieve encrypted json string
var encrypted_json_str = data.encrypted;
console.log("encrypted json string: ");
console.log(encrypted_json_str);
// store masked data into a div tag
$("#data_store").text(encrypted_json_str);
// for demostration, display masked data explicitly
$("#example_heading").text("Masked data");
$("#example_data").text(encrypted_json_str);
}).done(function(){
$("#decipher").removeAttr("disabled");
});
// decipher button listener
$("#decipher").click(function(){
// define server passphrase JSONP path
var passphrase_url = "http://localhost:3000/crypto/passphrase?callback=?";
// JSONP AJAX call to node.js server running on localhost:3000
$.getJSON(passphrase_url, function(data){
// retrieve passphrase string
var r_pass_base64 = data.passphrase;
console.log("passphrase: ");
console.log(r_pass_base64);
// for demostration, display passphrase explicitly
$("#passphrase_heading").text("Passphrase").removeClass("display_none");
$("#passphrase_data").text(r_pass_base64).removeClass("display_none");
// take out masked data from div tag
var encrypted_json_str = $("#data_store").text();
// decrypt data with encrypted json string, passphrase string and custom JsonFormatter
var decrypted = CryptoJS.AES.decrypt(encrypted_json_str, r_pass_base64, { format: JsonFormatter });
// convert to Utf8 format unmasked data
var decrypted_str = CryptoJS.enc.Utf8.stringify(decrypted);
console.log("decrypted string: " + decrypted_str);
// convert into unmasked data and store in the div tag
$("#data_store").text(decrypted_str);
// for demostration, display unmasked data explicitly
$("#example_heading").text("Unmasked data");
$("#example_data").text(decrypted_str);
}).done(function(){
$("#decipher").attr("disabled","disabled");
});
});
// menu bar animation
$(".menu_item").click(function(){
$(".menu_item").removeClass("active");
$(this).addClass("active");
});
});