1
0
mirror of https://github.com/moparisthebest/mail synced 2024-11-11 11:45:02 -05:00
mail/test/unit/aes-test.js
2013-05-14 12:57:09 +02:00

43 lines
1.3 KiB
JavaScript

module("AES Crypto");
var aes_test = {
keySize: 128
};
test("Init", 1, function() {
// init dependencies
aes_test.util = new app.crypto.Util(window, uuid);
ok(aes_test.util, 'Util');
// generate test data
aes_test.test_message = new TestData().generateBigString(1000);
});
test("CBC mode with HMAC-SHA-256", 4, function() {
var aes = new app.crypto.AesCBC();
var plaintext = aes_test.test_message;
var key = aes_test.util.random(aes_test.keySize);
var iv = aes_test.util.random(aes_test.keySize);
ok(key, 'Key: ' + key);
equal(aes_test.util.base642Str(key).length * 8, aes_test.keySize, 'Keysize ' + aes_test.keySize);
var ct = aes.encrypt(plaintext, key, iv);
ok(ct.ciphertext, 'Ciphertext lenght: ' + ct.ciphertext.length);
var decrypted = aes.decrypt(ct.ciphertext, key, iv, ct.hmac);
equal(decrypted, plaintext, 'Decryption correct' + decrypted);
});
test("CCM mode", 2, function() {
var aes = new app.crypto.AesCCM(sjcl);
var plaintext = aes_test.test_message;
var key = aes_test.util.random(aes_test.keySize);
var iv = aes_test.util.random(104);
var ciphertext = aes.encrypt(plaintext, key, iv);
ok(ciphertext, 'Ciphertext length: ' + ciphertext.length);
var decrypted = aes.decrypt(ciphertext, key, iv);
equal(decrypted, plaintext, 'Decryption correct: ' + decrypted);
});