diff --git a/examples/example.css b/examples/example.css
new file mode 100644
index 0000000..e69de29
diff --git a/examples/example.js b/examples/example.js
new file mode 100644
index 0000000..383f829
--- /dev/null
+++ b/examples/example.js
@@ -0,0 +1,78 @@
+
+function init() {
+ console.log("INIT");
+
+ MochiKit.Signal.connect("doEncrypt", 'onclick', doEncrypt);
+ MochiKit.Signal.connect("doDecrypt", 'onclick', doDecrypt);
+
+ Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
+}
+
+
+function doEncrypt() {
+ var key;
+ var value;
+
+ key = MochiKit.DOM.getElement('password').value;
+ value = MochiKit.DOM.getElement('plaintext').value;
+
+ encrypt(key, value, MochiKit.DOM.getElement('encryptedtext'));
+}
+
+function doDecrypt() {
+ var key;
+ var value;
+
+ key = MochiKit.DOM.getElement('password').value;
+ value = MochiKit.DOM.getElement('encryptedtext').value;
+
+ decrypt(key, value, MochiKit.DOM.getElement('plaintext'));
+}
+
+function encrypt(aKey, aValue, aTextArea) {
+ var key, value;
+ var prng;
+ var deferredResult;
+
+ key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey));
+ value = new Clipperz.ByteArray(aValue);
+ prng = Clipperz.Crypto.PRNG.defaultRandomGenerator();
+
+ deferredResult = new Clipperz.Async.Deferred("encrypt", {trace: true});
+ deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection'));
+ deferredResult.addCallback(Clipperz.Crypto.AES.deferredEncrypt, key, value);
+ deferredResult.addCallback(MochiKit.Async.wait, 0.1);
+ deferredResult.addCallback(function(aResult) {
+ aTextArea.value = aResult.toBase64String();
+ });
+ deferredResult.addErrback(function(anError) {
+ aTextArea.value = "ERROR";
+ })
+
+ deferredResult.callback();
+}
+
+function decrypt(aKey, aValue, aTextArea) {
+ var key, value;
+ var prng;
+ var deferredResult;
+
+ key = Clipperz.Crypto.SHA.sha_d256(new Clipperz.ByteArray(aKey));
+ value = new Clipperz.ByteArray().appendBase64String(aValue);
+ prng = Clipperz.Crypto.PRNG.defaultRandomGenerator();
+
+ deferredResult = new Clipperz.Async.Deferred("encrypt", {trace: true});
+ deferredResult.addCallback(MochiKit.Base.method(prng, 'deferredEntropyCollection'));
+ deferredResult.addCallback(Clipperz.Crypto.AES.deferredDecrypt, key, value);
+ deferredResult.addCallback(MochiKit.Async.wait, 0.1);
+ deferredResult.addCallback(function(aResult) {
+ aTextArea.value = aResult.asString();
+ });
+ deferredResult.addErrback(function(anError) {
+ aTextArea.value = "ERROR";
+ })
+
+ deferredResult.callback();
+}
+
+MochiKit.DOM.addLoadEvent(init);
diff --git a/examples/index.html b/examples/index.html
new file mode 100644
index 0000000..cb4462a
--- /dev/null
+++ b/examples/index.html
@@ -0,0 +1,237 @@
+
+
+ Clipperz Javascript Crypto Library - Examples
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/js/Clipperz/Async.js b/js/Clipperz/Async.js
index bf62ebc..ea9a38f 100644
--- a/js/Clipperz/Async.js
+++ b/js/Clipperz/Async.js
@@ -1,6 +1,6 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2012 Clipperz Srl
This file is part of Clipperz's Javascript Crypto Library.
diff --git a/js/Clipperz/Base.js b/js/Clipperz/Base.js
index 429c988..e369384 100644
--- a/js/Clipperz/Base.js
+++ b/js/Clipperz/Base.js
@@ -1,6 +1,6 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2012 Clipperz Srl
This file is part of Clipperz's Javascript Crypto Library.
diff --git a/js/Clipperz/ByteArray.js b/js/Clipperz/ByteArray.js
index b7d33b3..cfc4ab1 100644
--- a/js/Clipperz/ByteArray.js
+++ b/js/Clipperz/ByteArray.js
@@ -1,6 +1,6 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2012 Clipperz Srl
This file is part of Clipperz's Javascript Crypto Library.
@@ -131,7 +131,6 @@ Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, {
var ii, cc;
var padding;
-// padding = new Clipperz.ByteArray();
padding = this.newInstance();
cc = aLength - bLength;
for (ii=0; ii> 4);
if (value3 != -1) {
byte2 = ((value2 & 0x0f) << 4) | ((value3 & 0x3c) >> 2);
@@ -791,7 +793,7 @@ Clipperz.ByteArray_hex.prototype = MochiKit.Base.update(new Clipperz.ByteArray_a
//-------------------------------------------------------------------------
- 'appendBlock': function(aBlock) {
+ 'appendByteArray': function(aBlock) {
this._value = this._value += aBlock.toHexString().substring(2);
return this;
@@ -1006,7 +1008,7 @@ Clipperz.ByteArray_array.prototype = MochiKit.Base.update(new Clipperz.ByteArray
//-------------------------------------------------------------------------
- 'appendBlock': function(aBlock) {
+ 'appendByteArray': function(aBlock) {
MochiKit.Base.extend(this._value, aBlock._value);
return this;
@@ -1089,6 +1091,332 @@ Clipperz.ByteArray_array.prototype = MochiKit.Base.update(new Clipperz.ByteArray
});
+//=============================================================================
+//
+// Clipperz.ByteArray_typedArray
+//
+//=============================================================================
+
+Clipperz.ByteArray_typedArray = function (args) {
+ this._usedBytes = 0;
+
+ if (typeof(args) != 'undefined') {
+ if (args.constructor == Array) {
+ var i, c;
+ c = args.length;
+ result_value = this._allocateBuffer(c);
+
+ for (i=0; i>> HEX String", args);
+ value = args.substring(2).toLowerCase();
+ if (/[0123456789abcdef]*/.test(value)) {
+ if ((value.length % 2) != 0) {
+ value = "0" + value;
+ }
+ } else {
+MochiKit.Logging.logError("Clipperz.ByteArray should be inizialized with an hex string.");
+ throw Clipperz.ByteArray.exception.InvalidValue;
+ }
+
+ c = value.length / 2
+// result_value = this._allocateBuffer(c);
+ this._allocateBuffer(c);
+
+ for (i=0; i 0xxxxxxx
+ byteLength += 1;
+ } else if (unicode <= 0x7ff) { // 0x00000080 - 0x000007ff -> 110xxxxx 10xxxxxx
+ byteLength += 2;
+ } else if (unicode <= 0xffff) { // 0x00000800 - 0x0000ffff -> 1110xxxx 10xxxxxx 10xxxxxx
+ byteLength += 3;
+ } else { // 0x00010000 - 0x001fffff -> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+ byteLength += 4;
+ }
+ }
+
+// result_value = this._allocateBuffer(byteLength);
+// bufferIndex = 0;
+ this._allocateBuffer(byteLength);
+ for (i=0; i 0xxxxxxx
+// result_value[bufferIndex] = unicode; bufferIndex += 1;
+ this.appendByte(unicode);
+ } else if (unicode <= 0x7ff) { // 0x00000080 - 0x000007ff -> 110xxxxx 10xxxxxx
+// result_value[bufferIndex] = ((unicode >> 6) | 0xc0); bufferIndex += 1;
+// result_value[bufferIndex] = ((unicode & 0x3F) | 0x80); bufferIndex += 1;
+ this.appendByte((unicode >> 6) | 0xc0);
+ this.appendByte((unicode & 0x3F) | 0x80);
+ } else if (unicode <= 0xffff) { // 0x00000800 - 0x0000ffff -> 1110xxxx 10xxxxxx 10xxxxxx
+// result_value[bufferIndex] = ((unicode >> 12) | 0xe0); bufferIndex += 1;
+// result_value[bufferIndex] = (((unicode >> 6) & 0x3f) | 0x80); bufferIndex += 1;
+// result_value[bufferIndex] = ((unicode & 0x3f) | 0x80); bufferIndex += 1;
+ this.appendByte(((unicode >> 12) | 0xe0));
+ this.appendByte(((unicode >> 6) & 0x3f) | 0x80);
+ this.appendByte((unicode & 0x3f) | 0x80);
+ } else { // 0x00010000 - 0x001fffff -> 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+// result_value[bufferIndex] = ((unicode >> 18) | 0xf0); bufferIndex += 1;
+// result_value[bufferIndex] = (((unicode >> 12) & 0x3f) | 0x80); bufferIndex += 1;
+// result_value[bufferIndex] = (((unicode >> 6) & 0x3f) | 0x80); bufferIndex += 1;
+// result_value[bufferIndex] = ((unicode & 0x3f) | 0x80); bufferIndex += 1;
+ this.appendByte((unicode >> 18) | 0xf0);
+ this.appendByte(((unicode >> 12) & 0x3f) | 0x80);
+ this.appendByte(((unicode >> 6) & 0x3f) | 0x80);
+ this.appendByte((unicode & 0x3f) | 0x80);
+ }
+ }
+// this._usedBytes = bufferIndex;
+ }
+
+// this._value = result_value;
+ } else if ((args.constructor == Object) && (args.length == 0)) {
+ this._allocateBuffer(0)
+ } else if ((args.constructor == Object) && (args[0].toString() == 'Clipperz.ByteArray_typedArray')) {
+ var byteArray;
+
+ byteArray = args[0];
+// this._buffer = byteArray._buffer.slice(0);
+// this._value = new Uint8Array(this._buffer);
+ this._value = new Uint8Array(byteArray._value); // NEW
+ this._usedBytes = byteArray._usedBytes;
+
+ } else if ((args.constructor == Object) && (args[0].toString() == '[object ArrayBuffer]')) {
+// this._buffer = args[0];
+// this._value = new Uint8Array(this._buffer);
+// this._usedBytes = this._buffer.byteLength;
+ this._value = new Uint8Array(args[0]); // NEW
+ this._usedBytes = this._value.length; // NEW
+ } else if ((args.constructor == Object) && (args[0].toString() == '[object Uint8Array]')) {
+ } else if (args.toString() == '[object Uint8Array]') {
+//console.log("~~~>>> Uint8Array");
+// this._buffer = args.buffer;
+// this._value = args;
+// this._usedBytes = this._buffer.byteLength;
+ this._value = new Uint8Array(args); // NEW
+ this._usedBytes = args.length; // NEW
+ } else if (args.toString() == '[object ArrayBuffer]') {
+//console.log("~~~>>> ArrayBuffer");
+ } else {
+ var bytes;
+
+ bytes = MochiKit.Base.extend(null, arguments);
+ this._allocateBuffer(bytes.length)
+ this.appendBytes(bytes);
+ }
+ } else {
+ this._allocateBuffer(0)
+ }
+
+ return this;
+}
+
+Clipperz.ByteArray_typedArray.prototype = MochiKit.Base.update(new Clipperz.ByteArray_abstract(), {
+
+ //-------------------------------------------------------------------------
+
+ '_allocateBuffer': function (byteLength) {
+ this._usedBytes = 0;
+
+// this._buffer = new ArrayBuffer(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(byteLength));
+// this._value = new Uint8Array(this._buffer);
+ this._value = new Uint8Array(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(byteLength));
+
+ return this._value;
+ },
+
+ //.........................................................................
+
+ '_extendAllocatedBuffer': function (aValue) {
+// var newBuffer;
+ var newValue;
+ var extension;
+ var i, c;
+
+ extension = aValue;
+ if (extension == null) {
+ extension = 1;
+ }
+
+// newBuffer = new ArrayBuffer(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(this._buffer.byteLength + extension));
+// newValue = new Uint8Array(newBuffer);
+ newValue = new Uint8Array(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(this._value.length + extension)); // NEW
+
+ c = this._usedBytes;
+ for (i=0; i>> ByteArray.appendByte", aValue);
+ if (aValue != null) {
+ this.checkByteValue(aValue);
+
+// if (this._usedBytes == this._buffer.byteLength) {
+ if (this._usedBytes == this._value.length) { // NEW
+ this._extendAllocatedBuffer();
+ }
+
+ this._value[this._usedBytes] = aValue;
+ this._usedBytes ++;
+ }
+
+ return this;
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'byteAtIndex': function(anIndex) {
+ return this._value[anIndex];
+ },
+
+ 'setByteAtIndex': function(aValue, anIndex) {
+ var missingBytes;
+
+ this.checkByteValue(aValue);
+
+ missingBytes = anIndex - this.length();
+
+ if (missingBytes < 0) {
+ this._value[anIndex] = aValue;
+ } else if (missingBytes == 0) {
+ this.appendByte(aValue);
+ } else {
+ var i,c;
+
+ c = missingBytes;
+ this._extendAllocatedBuffer(c);
+ for (i=0; i>> (32 - c);
for (i=0; i>> (c - i))) == 0)) {
- newKeySeed.appendBlock(this.accumulators()[i].stack());
+ newKeySeed.appendByteArray(this.accumulators()[i].stack());
this.accumulators()[i].resetStack();
}
}
@@ -552,14 +499,14 @@ Clipperz.log("### PRNG.readyToGenerateRandomBytes");
c = Math.ceil(aSize / (128 / 8));
for (i=0; i> 24) & 0xff);
+ message[message.length - 4] = ((messageLengthInBits >> 24) & 0xff);
+// message.push((messageLengthInBits >> 16) & 0xff);
+ message[message.length - 3] = ((messageLengthInBits >> 16) & 0xff);
+// message.push((messageLengthInBits >> 8) & 0xff);
+ message[message.length - 2] = ((messageLengthInBits >> 8) & 0xff);
+// message.push( messageLengthInBits & 0xff);
+ message[message.length - 1] = ( messageLengthInBits & 0xff);
+
+ currentMessageIndex = 0;
+ while(currentMessageIndex < message.length) {
+ var w;
+ var a, b, c, d, e, f, g, h;
+
+ w = Array(64);
+
+ _c = 16;
+ for (_i=0; _i<_c; _i++) {
+ var _j;
+
+ _j = currentMessageIndex + _i*4;
+ w[_i] = (message[_j] << 24) | (message[_j + 1] << 16) | (message[_j + 2] << 8) | (message[_j + 3] << 0);
+ }
+
+ _c = 64;
+ for (_i=16; _i<_c; _i++) {
+ var s0, s1;
+
+ s0 = (rotateRight(w[_i-15], 7)) ^ (rotateRight(w[_i-15], 18)) ^ (shiftRight(w[_i-15], 3));
+ s1 = (rotateRight(w[_i-2], 17)) ^ (rotateRight(w[_i-2], 19)) ^ (shiftRight(w[_i-2], 10));
+ w[_i] = safeAdd(w[_i-16], s0, w[_i-7], s1);
+ }
+
+ a=h0; b=h1; c=h2; d=h3; e=h4; f=h5; g=h6; h=h7;
+
+ _c = 64;
+ for (_i=0; _i<_c; _i++) {
+ var s0, s1, ch, maj, t1, t2;
+
+ s0 = (rotateRight(a, 2)) ^ (rotateRight(a, 13)) ^ (rotateRight(a, 22));
+ maj = (a & b) ^ (a & c) ^ (b & c);
+ t2 = safeAdd(s0, maj);
+ s1 = (rotateRight(e, 6)) ^ (rotateRight(e, 11)) ^ (rotateRight(e, 25));
+ ch = (e & f) ^ ((~e) & g);
+ t1 = safeAdd(h, s1, ch, k[_i], w[_i]);
+
+ h = g;
+ g = f;
+ f = e;
+ e = safeAdd(d, t1);
+ d = c;
+ c = b;
+ b = a;
+ a = safeAdd(t1, t2);
+ }
+
+ h0 = safeAdd(h0, a);
+ h1 = safeAdd(h1, b);
+ h2 = safeAdd(h2, c);
+ h3 = safeAdd(h3, d);
+ h4 = safeAdd(h4, e);
+ h5 = safeAdd(h5, f);
+ h6 = safeAdd(h6, g);
+ h7 = safeAdd(h7, h);
+
+ currentMessageIndex += bytesPerBlock;
+ }
+
+// result = new Array(256/8);
+ result = new Uint8Array(256/8);
+ result[0] = (h0 >> 24) & 0xff;
+ result[1] = (h0 >> 16) & 0xff;
+ result[2] = (h0 >> 8) & 0xff;
+ result[3] = h0 & 0xff;
+
+ result[4] = (h1 >> 24) & 0xff;
+ result[5] = (h1 >> 16) & 0xff;
+ result[6] = (h1 >> 8) & 0xff;
+ result[7] = h1 & 0xff;
+
+ result[8] = (h2 >> 24) & 0xff;
+ result[9] = (h2 >> 16) & 0xff;
+ result[10] = (h2 >> 8) & 0xff;
+ result[11] = h2 & 0xff;
+
+ result[12] = (h3 >> 24) & 0xff;
+ result[13] = (h3 >> 16) & 0xff;
+ result[14] = (h3 >> 8) & 0xff;
+ result[15] = h3 & 0xff;
+
+ result[16] = (h4 >> 24) & 0xff;
+ result[17] = (h4 >> 16) & 0xff;
+ result[18] = (h4 >> 8) & 0xff;
+ result[19] = h4 & 0xff;
+
+ result[20] = (h5 >> 24) & 0xff;
+ result[21] = (h5 >> 16) & 0xff;
+ result[22] = (h5 >> 8) & 0xff;
+ result[23] = h5 & 0xff;
+
+ result[24] = (h6 >> 24) & 0xff;
+ result[25] = (h6 >> 16) & 0xff;
+ result[26] = (h6 >> 8) & 0xff;
+ result[27] = h6 & 0xff;
+
+ result[28] = (h7 >> 24) & 0xff;
+ result[29] = (h7 >> 16) & 0xff;
+ result[30] = (h7 >> 8) & 0xff;
+ result[31] = h7 & 0xff;
+
+//Clipperz.Profile.stop("Clipperz.Crypto.SHA.sha256_arrayBuffer");
+ return result;
+ },
+
//-----------------------------------------------------------------------------
'sha256': function(aValue) {
@@ -268,7 +453,8 @@ MochiKit.Base.update(Clipperz.Crypto.SHA, {
var valueArray;
valueArray = aValue.arrayValues();
- resultArray = Clipperz.Crypto.SHA.sha256_array(valueArray);
+// resultArray = Clipperz.Crypto.SHA.sha256_array(valueArray);
+ resultArray = Clipperz.Crypto.SHA.sha256_arrayBuffer(valueArray);
result = new Clipperz.ByteArray(resultArray);
@@ -285,8 +471,10 @@ MochiKit.Base.update(Clipperz.Crypto.SHA, {
var valueArray;
valueArray = aValue.arrayValues();
- resultArray = Clipperz.Crypto.SHA.sha256_array(valueArray);
- resultArray = Clipperz.Crypto.SHA.sha256_array(resultArray);
+// resultArray = Clipperz.Crypto.SHA.sha256_array(valueArray);
+ resultArray = Clipperz.Crypto.SHA.sha256_arrayBuffer(valueArray);
+// resultArray = Clipperz.Crypto.SHA.sha256_array(resultArray);
+ resultArray = Clipperz.Crypto.SHA.sha256_arrayBuffer(resultArray);
result = new Clipperz.ByteArray(resultArray);
diff --git a/js/Clipperz/Crypto/SRP.js b/js/Clipperz/Crypto/SRP.js
index 9101b13..49a31af 100644
--- a/js/Clipperz/Crypto/SRP.js
+++ b/js/Clipperz/Crypto/SRP.js
@@ -1,6 +1,6 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2012 Clipperz Srl
This file is part of Clipperz's Javascript Crypto Library.
diff --git a/js/Clipperz/Logging.js b/js/Clipperz/Logging.js
index de6b776..7103106 100644
--- a/js/Clipperz/Logging.js
+++ b/js/Clipperz/Logging.js
@@ -1,6 +1,6 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2012 Clipperz Srl
This file is part of Clipperz's Javascript Crypto Library.
diff --git a/js/Clipperz/YUI/Utils.js b/js/Clipperz/YUI/Utils.js
index d12b9c1..cf7198c 100644
--- a/js/Clipperz/YUI/Utils.js
+++ b/js/Clipperz/YUI/Utils.js
@@ -1,6 +1,6 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2012 Clipperz Srl
This file is part of Clipperz's Javascript Crypto Library.
diff --git a/tests/SimpleTest/SimpleTest.Async.js b/tests/SimpleTest/SimpleTest.Async.js
index 2c44b60..6376382 100644
--- a/tests/SimpleTest/SimpleTest.Async.js
+++ b/tests/SimpleTest/SimpleTest.Async.js
@@ -1,6 +1,6 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2012 Clipperz Srl
This file is part of Clipperz's Javascript Crypto Library.
diff --git a/tests/index.html b/tests/index.html
index 125e7d3..d75e4d4 100644
--- a/tests/index.html
+++ b/tests/index.html
@@ -1,6 +1,6 @@
-
+
+-->
diff --git a/tests/tests/Clipperz/ByteArray.test.js b/tests/tests/Clipperz/ByteArray.test.js
index 6243585..e793cfe 100644
--- a/tests/tests/Clipperz/ByteArray.test.js
+++ b/tests/tests/Clipperz/ByteArray.test.js
@@ -1,6 +1,6 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2012 Clipperz Srl
This file is part of Clipperz's Javascript Crypto Library.
@@ -25,17 +25,17 @@ refer to http://www.clipperz.com
*/
-Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
+//Clipperz.Crypto.PRNG.defaultRandomGenerator().fastEntropyAccumulationForTestingPurpose();
var tests = {
//-------------------------------------------------------------------------
'core_tests': function (someTestArgs) {
-// var deferredResult;
+ var deferredResult;
-// deferredResult = new Clipperz.Async.Deferred("core_tests", someTestArgs);
-// deferredResult.addCallback(function() {
+ deferredResult = new Clipperz.Async.Deferred("core_tests", someTestArgs);
+ deferredResult.addCallback(function() {
var byteArray;
byteArray = new Clipperz.ByteArray();
@@ -44,32 +44,47 @@ var tests = {
byteArray.checkByteValue(512);
is(false, true, "a value greater that a byte (0x200) should have raised an exception - NO Exception");
} catch(e) {
-// is( e.name,
-// "Clipperz.ByteArray.exception.InvalidValue",
-// "appending a value greater that a byte (0x200) should have raised an exception - EXCEPTION HANDLER")
ok( /Clipperz\.ByteArray\.exception\.InvalidValue.*/.test(e.name),
"appending a value greater that a byte (0x200) should have raised an exception - EXCEPTION HANDLER")
};
-
-// });
-// deferredResult.callback();
+ });
+ deferredResult.callback();
-// return deferredResult;
+ return deferredResult;
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'typedArray_core_tests': function (someTestArgs) {
+ var deferredResult;
+
+ deferredResult = new Clipperz.Async.Deferred("typedArray_core_tests", someTestArgs);
+ deferredResult.addCallback(function() {
+ is(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(0), 256, "Allocated bytes for given size");
+ is(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(100), 256, "Allocated bytes for given size");
+ is(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(256), 256, "Allocated bytes for given size");
+ is(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(257), 256 * 2, "Allocated bytes for given size");
+ is(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(500), 256 * 2, "Allocated bytes for given size");
+ is(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(512), 256 * 2, "Allocated bytes for given size");
+ is(Clipperz.ByteArray_typedArray.bytesToAllocateForByteCount(513), 256 * 3, "Allocated bytes for given size");
+ });
+ deferredResult.callback();
+ return deferredResult;
},
-
+
//-------------------------------------------------------------------------
'basic_tests': function (someTestArgs) {
var deferredResult;
- deferredResult = new Clipperz.Async.Deferred("simple_tests", someTestArgs);
+ deferredResult = new Clipperz.Async.Deferred("basic_tests", someTestArgs);
deferredResult.addCallback(function() {
var byteArray;
var byteArray2;
var byteArrayIterator;
var nextBlock;
-
+
byteArray = new Clipperz.ByteArray();
is(byteArray.length(), 0, "before adding any element the length is 0");
byteArray.appendByte(10);
@@ -169,9 +184,6 @@ var tests = {
byteArray.appendByte(512);
is(false, true, "appending a value greater that a byte (0x200) should have raised an exception - NO Exception");
} catch(e) {
-// is( e.name,
-// "Clipperz.ByteArray.exception.InvalidValue",
-// "appending a value greater that a byte (0x200) should have raised an exception - EXCEPTION HANDLER")
ok( /Clipperz\.ByteArray\.exception\.InvalidValue.*/.test(e.name),
"appending a value greater that a byte (0x200) should have raised an exception - EXCEPTION HANDLER")
};
@@ -180,9 +192,6 @@ var tests = {
byteArray.appendByte(256);
is(false, true, "appending a value greater that a byte (0x100) should have raised an exception - NO Exception");
} catch(e) {
-// is( e.name,
-// "Clipperz.ByteArray.exception.InvalidValue",
-// "appending a value greater that a byte (0x100) should have raised an exception - EXCEPTION HANDLER")
ok( /Clipperz\.ByteArray\.exception\.InvalidValue.*/.test(e.name),
"appending a value greater that a byte (0x100) should have raised an exception - EXCEPTION HANDLER")
};
@@ -353,17 +362,17 @@ var tests = {
//-------------------------------------------------------------------------
- 'appendBlock_tests': function (someTestArgs) {
+ 'appendByteArray_tests': function (someTestArgs) {
var deferredResult;
- deferredResult = new Clipperz.Async.Deferred("appendBlock_tests", someTestArgs);
+ deferredResult = new Clipperz.Async.Deferred("appendByteArray_tests", someTestArgs);
deferredResult.addCallback(function() {
var byteArray;
var byteArray2;
byteArray = new Clipperz.ByteArray("0xa1b2c3d4");
byteArray2 = new Clipperz.ByteArray("0x1a2b3c4d");
- is(byteArray.appendBlock(byteArray2).toHexString(), "0xa1b2c3d41a2b3c4d", "the appendBlock method works fine");
+ is(byteArray.appendByteArray(byteArray2).toHexString(), "0xa1b2c3d41a2b3c4d", "the appendByteArray method works fine");
});
deferredResult.callback();
@@ -472,16 +481,15 @@ var tests = {
is(new Clipperz.ByteArray("0xe4b899").asString().charCodeAt(0), 19993, "String decoding - Three bytes char: CJK ideograph - 丙");
is(new Clipperz.ByteArray("0xefbfbf").asString().charCodeAt(0), 65535, "String decoding - Three bytes character - top");
-/*
- is(new Clipperz.ByteArray("0xf0908080").asString().charCodeAt(0), 65536, "String decoding - Four bytes character - bottom");
- is(new Clipperz.ByteArray("0xf0a08294").asString().charCodeAt(0), 131220, "String decoding - Four bytes char: CJK extended ideograph - ");
- is(new Clipperz.ByteArray("0xf3b48980").asString().charCodeAt(0), 1000000, "String decoding - Four bytes character - middle");
- is(new Clipperz.ByteArray("0xf7bfbfbf").asString().charCodeAt(0), 2097151, "String decoding - Four bytes character - top");
-
- is(String.fromCharCode(65535).charCodeAt(0), 65535, "test fromCharCode - charCodeAt (65535)");
- is(String.fromCharCode(65536).charCodeAt(0), 65536, "test fromCharCode - charCodeAt (65536)");
- is(String.fromCharCode(1000000).charCodeAt(0), 1000000, "test fromCharCode - charCodeAt (1000000)");
-*/
+// is(new Clipperz.ByteArray("0xf0908080").asString().charCodeAt(0), 65536, "String decoding - Four bytes character - bottom");
+// is(new Clipperz.ByteArray("0xf0a08294").asString().charCodeAt(0), 131220, "String decoding - Four bytes char: CJK extended ideograph - ");
+// is(new Clipperz.ByteArray("0xf3b48980").asString().charCodeAt(0), 1000000, "String decoding - Four bytes character - middle");
+// is(new Clipperz.ByteArray("0xf7bfbfbf").asString().charCodeAt(0), 2097151, "String decoding - Four bytes character - top");
+//
+// is(String.fromCharCode(65535).charCodeAt(0), 65535, "test fromCharCode - charCodeAt (65535)");
+// is(String.fromCharCode(65536).charCodeAt(0), 65536, "test fromCharCode - charCodeAt (65536)");
+// is(String.fromCharCode(1000000).charCodeAt(0), 1000000, "test fromCharCode - charCodeAt (1000000)");
+
//----------------------------------------------------------
byteArray = new Clipperz.ByteArray("ABCD");
diff --git a/tests/tests/Clipperz/Crypto/AES.html b/tests/tests/Clipperz/Crypto/AES.html
index e1d84a2..50299b6 100644
--- a/tests/tests/Clipperz/Crypto/AES.html
+++ b/tests/tests/Clipperz/Crypto/AES.html
@@ -1,6 +1,6 @@
diff --git a/tests/tests/Clipperz/Crypto/ECC.B283.deferred.html b/tests/tests/Clipperz/Crypto/ECC.B283.deferred.html
index 8b5f8de..d80a4ec 100644
--- a/tests/tests/Clipperz/Crypto/ECC.B283.deferred.html
+++ b/tests/tests/Clipperz/Crypto/ECC.B283.deferred.html
@@ -1,6 +1,6 @@
diff --git a/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html b/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html
index d4ee899..040828d 100644
--- a/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html
+++ b/tests/tests/Clipperz/Crypto/ECC.BinaryField.FiniteField.html
@@ -1,6 +1,6 @@
diff --git a/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html b/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
index 708a81d..003b7d5 100644
--- a/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
+++ b/tests/tests/Clipperz/Crypto/ECC.BinaryField.Value.html
@@ -1,6 +1,6 @@
diff --git a/tests/tests/Clipperz/Crypto/ECC.K283.deferred.html b/tests/tests/Clipperz/Crypto/ECC.K283.deferred.html
index 1e8c2e3..359d223 100644
--- a/tests/tests/Clipperz/Crypto/ECC.K283.deferred.html
+++ b/tests/tests/Clipperz/Crypto/ECC.K283.deferred.html
@@ -1,6 +1,6 @@
diff --git a/tests/tests/Clipperz/Crypto/RSA.html b/tests/tests/Clipperz/Crypto/RSA.html
index 599b3e0..cd1c48f 100644
--- a/tests/tests/Clipperz/Crypto/RSA.html
+++ b/tests/tests/Clipperz/Crypto/RSA.html
@@ -1,6 +1,6 @@