encrypt/decrypt returns flattened array.
1.1 --- a/engrave.html Sat Feb 14 20:53:48 2009 +0900
1.2 +++ b/engrave.html Sat Feb 14 21:05:03 2009 +0900
1.3 @@ -16,7 +16,7 @@
1.4 var cipher = Engrave.encrypt(plain, key, iv);
1.5 document.write(plain+'<br/>');
1.6 document.write(cipher+'<br/>');
1.7 - document.write(Engrave.decrypt(Array.concat(cipher[0],(cipher[1]||[])), key, iv));
1.8 + document.write(Engrave.decrypt(cipher, key, iv));
1.9 </script>
1.10 </body>
1.11 </html>
2.1 --- a/engrave.js Sat Feb 14 20:53:48 2009 +0900
2.2 +++ b/engrave.js Sat Feb 14 21:05:03 2009 +0900
2.3 @@ -28,8 +28,14 @@
2.4 */
2.5
2.6 var Engrave = (function() {
2.7 - var //AES_NR = 14, AES_NK = 8,
2.8 - AES_NR = 10, AES_NK = 4,
2.9 + var
2.10 +
2.11 + flatten = function(arr) {
2.12 + return Array.prototype.concat.apply([], arr);
2.13 + },
2.14 +
2.15 + //AES_NR = 14, AES_NK = 8, // AES-256
2.16 + AES_NR = 10, AES_NK = 4, // AES-128
2.17 AES_SBOX = [99,124,119,123,242,107,111,197,48,1,103,43,254,215,
2.18 171,118,202,130,201,125,250,89,71,240,173,212,162,175,
2.19 156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,
2.20 @@ -288,7 +294,7 @@
2.21 res[nblocks] = aes_xor_partial_block(next,
2.22 plain.slice(nblocks*16, nblocks*16+16));
2.23 }
2.24 - return res;
2.25 + return flatten(res);
2.26 },
2.27
2.28 aes_decrypt_cfb = function(cipher, key, iv) {
2.29 @@ -307,7 +313,7 @@
2.30 res[nblocks] = aes_xor_partial_block(next,
2.31 cipher.slice(nblocks*16, nblocks*16+16));
2.32 }
2.33 - return res;
2.34 + return flatten(res);
2.35 };
2.36
2.37 return {