summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/ByteArray.js
Side-by-side diff
Diffstat (limited to 'frontend/beta/js/Clipperz/ByteArray.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/ByteArray.js22
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/ByteArray.js b/frontend/beta/js/Clipperz/ByteArray.js
index a69aa43..540563f 100644
--- a/frontend/beta/js/Clipperz/ByteArray.js
+++ b/frontend/beta/js/Clipperz/ByteArray.js
@@ -1,214 +1,212 @@
/*
-Copyright 2008-2011 Clipperz Srl
+Copyright 2008-2013 Clipperz Srl
-This file is part of Clipperz Community Edition.
-Clipperz Community Edition is an online password manager.
+This file is part of Clipperz, the online password manager.
For further information about its features and functionalities please
refer to http://www.clipperz.com.
-* Clipperz Community Edition is free software: you can redistribute
- it and/or modify it under the terms of the GNU Affero General Public
- License as published by the Free Software Foundation, either version
- 3 of the License, or (at your option) any later version.
+* Clipperz is free software: you can redistribute it and/or modify it
+ under the terms of the GNU Affero General Public License as published
+ by the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
-* Clipperz Community Edition is distributed in the hope that it will
- be useful, but WITHOUT ANY WARRANTY; without even the implied
- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+* Clipperz is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Affero General Public License for more details.
* You should have received a copy of the GNU Affero General Public
- License along with Clipperz Community Edition. If not, see
- <http://www.gnu.org/licenses/>.
+ License along with Clipperz. If not, see http://www.gnu.org/licenses/.
*/
if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
//=============================================================================
Clipperz.ByteArray_abstract = function(args) {
return this;
}
Clipperz.ByteArray_abstract.prototype = MochiKit.Base.update(null, {
//-------------------------------------------------------------------------
'toString': function() {
return "Clipperz.ByteArray_abstract";
},
//-------------------------------------------------------------------------
'equals': function(aValue) {
return (this.compare(aValue) == 0);
},
//-------------------------------------------------------------------------
'compare': function(aValue) {
var result;
var i;
result = MochiKit.Base.compare(this.length(), aValue.length());
i = this.length();
while ((result == 0) && (i>0)) {
i--;
result = MochiKit.Base.compare(this.byteAtIndex(i), aValue.byteAtIndex(i));
}
return result;
},
//-------------------------------------------------------------------------
'clone': function() {
throw Clipperz.Base.exception.AbstractMethod;
},
//-------------------------------------------------------------------------
'newInstance': function() {
throw Clipperz.Base.exception.AbstractMethod;
},
//-------------------------------------------------------------------------
'reset': function() {
throw Clipperz.Base.exception.AbstractMethod;
},
//-------------------------------------------------------------------------
'length': function() {
throw Clipperz.Base.exception.AbstractMethod;
},
//-------------------------------------------------------------------------
'checkValue': function(aValue) {
if ((aValue & 0xff) != aValue) {
MochiKit.Logging.logError("Clipperz.ByteArray.appendByte: the provided value (0x" + aValue.toString(16) + ") is not a byte value.");
throw Clipperz.ByteArray.exception.InvalidValue;
}
},
//-------------------------------------------------------------------------
'xorMergeWithBlock': function(aBlock, anAllignment, paddingMode) {
var result;
var a, b;
var aLength;
var bLength;
var i, c;
if (this.length() > aBlock.length()) {
a = this;
b = aBlock;
} else {
a = aBlock;
b = this;
}
aLength = a.length();
bLength = b.length();
if (aLength != bLength) {
if (paddingMode == 'truncate') {
if (anAllignment == 'left') {
a = a.split(0, bLength);
} else {
a = a.split(aLength - bLength);
}
} else {
var ii, cc;
var padding;
// padding = new Clipperz.ByteArray();
padding = this.newInstance();
cc = aLength - bLength;
for (ii=0; ii<cc; ii++) {
padding.appendByte(0);
}
if (anAllignment == 'left') {
b = b.appendBlock(padding);
} else {
b = padding.appendBlock(b);
}
}
}
// result = new Clipperz.ByteArray();
result = this.newInstance();
c = a.length();
for (i=0; i<c; i++) {
result.appendByte(a.byteAtIndex(i) ^ b.byteAtIndex(i));
}
return result;
},
//-------------------------------------------------------------------------
/*
'shiftLeft': function(aNumberOfBitsToShift) {
var result;
result = this.clone(); // ???????????
return result;
},
*/
//-------------------------------------------------------------------------
'appendBlock': function(aBlock) {
throw Clipperz.Base.exception.AbstractMethod;
},
//-------------------------------------------------------------------------
'appendByte': function(aValue) {
throw Clipperz.Base.exception.AbstractMethod;
},
'appendBytes': function(args) {
var values;
var i,c;
if (args.constructor == Array) {
values = args;
} else {
values = arguments;
}
c = values.length;
for (i=0; i<c; i++) {
this.appendByte(values[i]);
}
return this;
},
//-------------------------------------------------------------------------
'appendWord': function(aValue, isLittleEndian) {
var result;
var processAsLittleEndian;
processAsLittleEndian = isLittleEndian === true ? true : false;
if (processAsLittleEndian) {
result = this.appendBytes( (aValue) & 0xff, (aValue >> 8) & 0xff, (aValue >> 16) & 0xff, (aValue >> 24) & 0xff ); // little endian
} else {
result = this.appendBytes( (aValue >> 24) & 0xff, (aValue >> 16) & 0xff, (aValue >> 8) & 0xff, (aValue) & 0xff ); // big endian - DEFAULT
}
return result;
},
'appendWords': function(args) {
var values;
var i,c;