mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
66 lines
2.1 KiB
JavaScript
66 lines
2.1 KiB
JavaScript
|
function run_test() {
|
||
|
var cryptoSvc = Cc["@labs.mozilla.com/Weave/Crypto;1"].
|
||
|
getService(Ci.IWeaveCrypto);
|
||
|
|
||
|
// Test salt generation.
|
||
|
var salt;
|
||
|
|
||
|
salt = cryptoSvc.generateRandomBytes(0);
|
||
|
do_check_eq(salt.length, 0);
|
||
|
salt = cryptoSvc.generateRandomBytes(1);
|
||
|
do_check_eq(salt.length, 4);
|
||
|
salt = cryptoSvc.generateRandomBytes(2);
|
||
|
do_check_eq(salt.length, 4);
|
||
|
salt = cryptoSvc.generateRandomBytes(3);
|
||
|
do_check_eq(salt.length, 4);
|
||
|
salt = cryptoSvc.generateRandomBytes(4);
|
||
|
do_check_eq(salt.length, 8);
|
||
|
salt = cryptoSvc.generateRandomBytes(8);
|
||
|
do_check_eq(salt.length, 12);
|
||
|
|
||
|
// sanity check to make sure salts seem random
|
||
|
var salt2 = cryptoSvc.generateRandomBytes(8);
|
||
|
do_check_eq(salt2.length, 12);
|
||
|
do_check_neq(salt, salt2);
|
||
|
|
||
|
salt = cryptoSvc.generateRandomBytes(16);
|
||
|
do_check_eq(salt.length, 24);
|
||
|
salt = cryptoSvc.generateRandomBytes(1024);
|
||
|
do_check_eq(salt.length, 1368);
|
||
|
|
||
|
|
||
|
// Test random key generation
|
||
|
var keydata, keydata2, iv;
|
||
|
|
||
|
keydata = cryptoSvc.generateRandomKey();
|
||
|
do_check_eq(keydata.length, 44);
|
||
|
keydata2 = cryptoSvc.generateRandomKey();
|
||
|
do_check_neq(keydata, keydata2); // sanity check for randomness
|
||
|
iv = cryptoSvc.generateRandomIV();
|
||
|
do_check_eq(iv.length, 24);
|
||
|
|
||
|
cryptoSvc.algorithm = Ci.IWeaveCrypto.AES_256_CBC;
|
||
|
keydata = cryptoSvc.generateRandomKey();
|
||
|
do_check_eq(keydata.length, 44);
|
||
|
keydata2 = cryptoSvc.generateRandomKey();
|
||
|
do_check_neq(keydata, keydata2); // sanity check for randomness
|
||
|
iv = cryptoSvc.generateRandomIV();
|
||
|
do_check_eq(iv.length, 24);
|
||
|
|
||
|
cryptoSvc.algorithm = Ci.IWeaveCrypto.AES_192_CBC;
|
||
|
keydata = cryptoSvc.generateRandomKey();
|
||
|
do_check_eq(keydata.length, 32);
|
||
|
keydata2 = cryptoSvc.generateRandomKey();
|
||
|
do_check_neq(keydata, keydata2); // sanity check for randomness
|
||
|
iv = cryptoSvc.generateRandomIV();
|
||
|
do_check_eq(iv.length, 24);
|
||
|
|
||
|
cryptoSvc.algorithm = Ci.IWeaveCrypto.AES_128_CBC;
|
||
|
keydata = cryptoSvc.generateRandomKey();
|
||
|
do_check_eq(keydata.length, 24);
|
||
|
keydata2 = cryptoSvc.generateRandomKey();
|
||
|
do_check_neq(keydata, keydata2); // sanity check for randomness
|
||
|
iv = cryptoSvc.generateRandomIV();
|
||
|
do_check_eq(iv.length, 24);
|
||
|
}
|