You now own your data. Backup/Restore use cleartext json.
This commit is contained in:
@@ -3,6 +3,10 @@
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
#backupText {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#title {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -209,21 +209,31 @@
|
||||
}
|
||||
|
||||
function restoreKVS() {
|
||||
var data = prompt("Please enter backup blob");
|
||||
var data = prompt("Please enter backup blob (any already existing pads will be overwritten!)");
|
||||
var d = JSON.parse(data)
|
||||
for (var k in d) {
|
||||
setKVSItem(k, d[k]);
|
||||
}
|
||||
key = $("#password").val();
|
||||
getKVSItem(hashSomething("pads"),padsLoaded);
|
||||
for (var k in d) {
|
||||
|
||||
setKVSItem(hashTitle(k), sjcl.encrypt(key, d[k], {iter: 2000, ks: 256}));
|
||||
if ($.inArray(k, pads) == -1) {
|
||||
pads.push(k);
|
||||
addPadList(k);
|
||||
}
|
||||
}
|
||||
savePads();
|
||||
}
|
||||
|
||||
function doBackup() {
|
||||
backup = new Object();
|
||||
backupWaiting = 1 + pads.length;
|
||||
backupKVS(hashSomething("pads"));
|
||||
backupWaiting = pads.length;
|
||||
for (var pad in pads) {
|
||||
backupKVS(hashTitle(pads[pad]));
|
||||
getKVSItem(hashTitle(pads[pad]), function(data) {
|
||||
backup[pads[pad]] = sjcl.decrypt(key, data);
|
||||
backupWaiting--;
|
||||
if (backupWaiting == 0) {
|
||||
$("#backupDlg").modal();
|
||||
$("#backupText").val(JSON.stringify(backup))
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -295,6 +305,9 @@
|
||||
|
||||
|
||||
// set up buttons
|
||||
$("#backupCloseBtn").click(function () {
|
||||
$("#backupDlg").modal("hide")
|
||||
})
|
||||
$("#backuper").click(doBackup);
|
||||
$("#restorer").click(restoreKVS);
|
||||
$("#submitter").click(saveNote);
|
||||
@@ -310,7 +323,20 @@
|
||||
$(document).ready(init);
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<body>
|
||||
<div class="modal hide" id="backupDlg">
|
||||
<div class="modal-header">
|
||||
<h3>Backup</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<textarea rows="10" id="backupText">
|
||||
|
||||
</textarea>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button id="backupCloseBtn" class="btn btn-primary">Done</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal" id="myModal">
|
||||
<div class="modal-header">
|
||||
<h3>Login to CryptoPad</h3>
|
||||
|
||||
Reference in New Issue
Block a user