summaryrefslogtreecommitdiff
path: root/frontend/gamma/js/Clipperz/PM/Crypto.js
Unidiff
Diffstat (limited to 'frontend/gamma/js/Clipperz/PM/Crypto.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/gamma/js/Clipperz/PM/Crypto.js106
1 files changed, 72 insertions, 34 deletions
diff --git a/frontend/gamma/js/Clipperz/PM/Crypto.js b/frontend/gamma/js/Clipperz/PM/Crypto.js
index cd10e33..7edf17f 100644
--- a/frontend/gamma/js/Clipperz/PM/Crypto.js
+++ b/frontend/gamma/js/Clipperz/PM/Crypto.js
@@ -57,13 +57,13 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
57 } 57 }
58 }, 58 },
59*/ 59*/
60 //------------------------------------------------------------------------- 60 //-------------------------------------------------------------------------
61 61
62 'encryptingFunctions': { 62 'encryptingFunctions': {
63 'currentVersion': '0.3', 63 'currentVersion': '0.4',
64 'versions': { 64 'versions': {
65 65
66 //##################################################################### 66 //#####################################################################
67 67
68 '0.1': { 68 '0.1': {
69 'encrypt': function(aKey, aValue) { 69 'encrypt': function(aKey, aValue) {
@@ -317,12 +317,13 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
317 deferredResult.addCallback(function(aResult) { 317 deferredResult.addCallback(function(aResult) {
318 return aResult.asString(); 318 return aResult.asString();
319 }); 319 });
320 deferredResult.addCallback(MochiKit.Async.wait, 0.1); 320 deferredResult.addCallback(MochiKit.Async.wait, 0.1);
321 deferredResult.addCallback(Clipperz.Base.evalJSON); 321 deferredResult.addCallback(Clipperz.Base.evalJSON);
322 deferredResult.addErrback(function(anError) { 322 deferredResult.addErrback(function(anError) {
323console.log("PIPPO_1", anError)
323 Clipperz.logError("Error while decrypting data [4]"); 324 Clipperz.logError("Error while decrypting data [4]");
324 throw Clipperz.Crypto.Base.exception.CorruptedMessage; 325 throw Clipperz.Crypto.Base.exception.CorruptedMessage;
325 }) 326 })
326 } else { 327 } else {
327 deferredResult.addCallback(function() { 328 deferredResult.addCallback(function() {
328 return null; 329 return null;
@@ -341,89 +342,126 @@ MochiKit.Base.update(Clipperz.PM.Crypto, {
341 342
342 byteData = new Clipperz.ByteArray(aStringValue); 343 byteData = new Clipperz.ByteArray(aStringValue);
343 result = Clipperz.Crypto.SHA.sha_d256(byteData); 344 result = Clipperz.Crypto.SHA.sha_d256(byteData);
344 345
345 return result; 346 return result;
346 } 347 }
347
348 }, 348 },
349 349
350 //##################################################################### 350 //#####################################################################
351/* 351
352 '0.4': { 352 '0.4': {
353 'encrypt': function(aKey, aValue, aNonce) { 353 'encrypt': function(aKey, aValue, aNonce) {
354 var result; 354 var result;
355 varkey, value; 355 varkey, value;
356 var data; 356 var data;
357 var dataToEncrypt; 357 var dataToEncrypt;
358 var encryptedData; 358 var encryptedData;
359 359
360//Clipperz.logDebug(">>> [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt");
361 key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey)); 360 key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey));
362//Clipperz.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 1");
363 value = Clipperz.Base.serializeJSON(aValue); 361 value = Clipperz.Base.serializeJSON(aValue);
364//Clipperz.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 2");
365/ *
366//Clipperz.logDebug("--> encrypt.fullSize: " + value.length);
367 value = value.replace(/":{"label":"/g, '":{l:"');
368 value = value.replace(/":{"key":"/g, '":{k:"');
369 value = value.replace(/":{"notes":"/g, '":{n:"');
370 value = value.replace(/":{"record":"/g, '":{r:"');
371 value = value.replace(/", "label":"/g, '",l:"');
372 value = value.replace(/", "favicon":"/g,'",f:"');
373//Clipperz.logDebug("<-- encrypt.compressed: " + value.length);
374* /
375 data = new Clipperz.ByteArray(value); 362 data = new Clipperz.ByteArray(value);
376//Clipperz.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 3"); 363 encryptedData = Clipperz.Crypto.AES_2.encrypt(key, data, aNonce);
377 encryptedData = Clipperz.Crypto.AES.encrypt(key, data, aNonce);
378//Clipperz.logDebug("--- [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt - 4");
379 result = encryptedData.toBase64String(); 364 result = encryptedData.toBase64String();
380//Clipperz.logDebug("<<< [" + (new Date()).valueOf() + "] Clipperz.PM.Crypto.versions[0.3].encrypt");
381 365
382 return result; 366 return result;
383 }, 367 },
368
369 'deferredEncrypt': function(aKey, aValue, aNonce) {
370 var deferredResult;
371 varkey, value;
372 var data;
373 var dataToEncrypt;
374 var encryptedData;
375
376 key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey));
377 value = Clipperz.Base.serializeJSON(aValue);
378 data = new Clipperz.ByteArray(value);
379
380 deferredResult = new Clipperz.Async.Deferred("Crypto[0.4].deferredEncrypt")
381 deferredResult.addCallback(Clipperz.Crypto.AES_2.deferredEncrypt, key, data, aNonce);
382 deferredResult.addCallback(function(aResult) {
383 return aResult.toBase64String();
384 })
385 deferredResult.callback();
386
387 return deferredResult;
388 },
384 389
385 'decrypt': function(aKey, aValue) { 390 'decrypt': function(aKey, aValue) {
386 var result; 391 var result;
387 392
388 if (aValue != null) { 393 if (aValue != null) {
389 var key, value; 394 var key, value;
390 var decryptedData; 395 var decryptedData;
391 396
392 key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey)); 397 key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey));
393 value = new Clipperz.ByteArray().appendBase64String(aValue); 398 value = new Clipperz.ByteArray().appendBase64String(aValue);
394 399
395 decryptedData = Clipperz.Crypto.AES.decrypt(key, value); 400 decryptedData = Clipperz.Crypto.AES_2.decrypt(key, value);
396 401
397 value = decryptedData.asString(); 402 value = decryptedData.asString();
398/ *
399 value = value.replace(/":{l:"/g,'":{"label":"');
400 value = value.replace(/":{k:"/g,'":{"key":"');
401 value = value.replace(/":{n:"/g,'":{"notes":"');
402 value = value.replace(/":{r:"/g,'":{"record":"');
403 value = value.replace(/",l:"/g, '", "label":"');
404 value = value.replace(/",f:"/g, '", "favicon":"');
405* /
406 try { 403 try {
407 result = Clipperz.Base.evalJSON(value); 404 result = Clipperz.Base.evalJSON(value);
408 } catch (exception) { 405 } catch (exception) {
409 Clipperz.logError("Error while decrypting data"); 406 console.log("PIPPO_2", anError)
407 Clipperz.logError("Error while decrypting data [4]");
410 throw Clipperz.Crypto.Base.exception.CorruptedMessage; 408 throw Clipperz.Crypto.Base.exception.CorruptedMessage;
411 } 409 }
412
413
414 } else { 410 } else {
415 result = null; 411 result = null;
416 } 412 }
417 413
418 return result; 414 return result;
419 }, 415 },
420 416
421 'hash': Clipperz.Crypto.SHA.sha_d256 417 'deferredDecrypt': function(aKey, aValue) {
418 var deferredResult;
419
420 deferredResult = new Clipperz.Async.Deferred("Crypto[0.4].deferredDecrypt", {trace: false});
421
422 if (aValue != null) {
423 var key, value;
424
425 key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey));
426 value = new Clipperz.ByteArray().appendBase64String(aValue);
427
428 deferredResult.addCallback(Clipperz.Crypto.AES_2.deferredDecrypt, key, value);
429 deferredResult.addCallback(MochiKit.Async.wait, 0.1);
430 deferredResult.addCallback(function(aResult) {
431 return aResult.asString();
432 });
433 deferredResult.addCallback(MochiKit.Async.wait, 0.1);
434 deferredResult.addCallback(Clipperz.Base.evalJSON);
435 deferredResult.addErrback(function(anError) {
436 Clipperz.logError("Error while decrypting data [4]");
437 throw Clipperz.Crypto.Base.exception.CorruptedMessage;
438 })
439 } else {
440 deferredResult.addCallback(function() {
441 return null;
442 });
443 }
444 deferredResult.callback();
445
446 return deferredResult;
447 },
448
449 'hash': Clipperz.Crypto.SHA.sha_d256,
450
451 'deriveKey': function(aStringValue) {
452 varbyteData;
453 var result;
454
455 byteData = new Clipperz.ByteArray(aStringValue);
456 result = Clipperz.Crypto.SHA.sha_d256(byteData);
457
458 return result;
459 }
422 }, 460 },
423*/ 461
424 //##################################################################### 462 //#####################################################################
425 __syntaxFix__: "syntax fix" 463 __syntaxFix__: "syntax fix"
426 } 464 }
427 }, 465 },
428 466
429 //------------------------------------------------------------------------- 467 //-------------------------------------------------------------------------