/* * * This file is part of the digital testament management program * DigiProof. * * By accessing this software, DigiProof, you are duly informed * of and agree to be bound by the conditions described below in this * notice: * * This software product, DigiProof, is developed by T. Linden and * copyrighted (C) 2013 by T. Linden, with all rights reserved. * * There is no charge for DigiProof software. You can redistribute * it and/or modify it under the terms of the GNU General Public * License, which is incorporated by reference herein. * * DigiProof is distributed WITHOUT ANY WARRANTY, IMPLIED OR EXPRESS, * OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE or that * the use of it will not infringe on any third party's intellectual * property rights. * * You should have received a copy of the GNU General Public License * along with DigiProof. Copies can also be obtained from: * * http://www.gnu.org/licenses/gpl-2.0.html * * or by writing to: * * Free Software Foundation, Inc. * Inc., 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 * USA * * Or contact: * * "T. Linden" * * The sourcecode can be found on: * * https://codeberg.org/scip/digiproof * */ // tell if there have been anything done yet function CheckForEmptyDB() { var assets = App.Asset.find(); var notempty = true; notempty = assets.forEach(function(asset) { return false; }); return notempty; } // Convert hex string to ASCII. // See http://stackoverflow.com/questions/11889329/word-array-to-string function hex2a(hex) { var str = ''; for (var i = 0; i < hex.length; i += 2) str += String.fromCharCode(parseInt(hex.substr(i, 2), 16)); return str; } // decrypt data function decryptimport(hash, data) { var clear = CryptoJS.AES.decrypt(data, hash); return unescape(hex2a(clear.toString())); } // from: // http://ntt.cc/2008/01/19/base64-encoder-decoder-with-javascript.html function decode64(input) { var output = ""; var chr1, chr2, chr3 = ""; var enc1, enc2, enc3, enc4 = ""; var i = 0; var keyStr = "ABCDEFGHIJKLMNOP" + "QRSTUVWXYZabcdef" + "ghijklmnopqrstuv" + "wxyz0123456789+/" + "="; // remove all characters that are not A-Z, a-z, 0-9, +, /, or = var base64test = /[^A-Za-z0-9\+\/\=]/g; // if (base64test.exec(input)) { alert("There were invalid base64 characters in the input text.\n" + "Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='\n" + "Expect errors in decoding."); } input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); do { enc1 = keyStr.indexOf(input.charAt(i++)); enc2 = keyStr.indexOf(input.charAt(i++)); enc3 = keyStr.indexOf(input.charAt(i++)); enc4 = keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } chr1 = chr2 = chr3 = ""; enc1 = enc2 = enc3 = enc4 = ""; } while (i < input.length); return unescape(output); }