Diffstat (limited to 'frontend/beta/js/Clipperz/Crypto/ECC.js') (more/less context) (ignore whitespace changes)
-rw-r--r-- | frontend/beta/js/Clipperz/Crypto/ECC.js | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/frontend/beta/js/Clipperz/Crypto/ECC.js b/frontend/beta/js/Clipperz/Crypto/ECC.js index bdfd9be..74eb02f 100644 --- a/frontend/beta/js/Clipperz/Crypto/ECC.js +++ b/frontend/beta/js/Clipperz/Crypto/ECC.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/. */ /* try { if (typeof(Clipperz.ByteArray) == 'undefined') { throw ""; }} catch (e) { throw "Clipperz.Crypto.ECC depends on Clipperz.ByteArray!"; } if (typeof(Clipperz.Crypto.ECC) == 'undefined') { Clipperz.Crypto.ECC = {}; } //############################################################################# Clipperz.Crypto.ECC.BinaryField = {}; //############################################################################# Clipperz.Crypto.ECC.BinaryField.AbstractValue = function(aValue, aBase) { return this; } Clipperz.Crypto.ECC.BinaryField.AbstractValue.prototype = MochiKit.Base.update(null, { 'asString': function(aBase) { throw Clipperz.Base.exception.AbstractMethod; }, 'isZero': function() { throw Clipperz.Base.exception.AbstractMethod; }, 'shiftLeft': function(aNumberOfBitsToShift) { throw Clipperz.Base.exception.AbstractMethod; }, 'bitSize': function() { throw Clipperz.Base.exception.AbstractMethod; }, 'isBitSet': function(aBitPosition) { throw Clipperz.Base.exception.AbstractMethod; }, 'xor': function(aValue) { throw Clipperz.Base.exception.AbstractMethod; }, 'compare': function(aValue) { throw Clipperz.Base.exception.AbstractMethod; }, //----------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); //***************************************************************************** / * Clipperz.Crypto.ECC.BinaryField.BigIntValue = function(aValue, aBase) { this._value = new Clipperz.Crypto.BigInt(aValue, aBase); return this; } Clipperz.Crypto.ECC.BinaryField.BigIntValue.prototype = MochiKit.Base.update(new Clipperz.Crypto.ECC.BinaryField.AbstractValue(), { 'value': function() { return this._value; }, //----------------------------------------------------------------------------- 'isZero': function() { return (this.value().compare(Clipperz.Crypto.ECC.BinaryField.BigIntValue.O) == 0); }, //----------------------------------------------------------------------------- 'asString': function(aBase) { return this.value().asString(aBase); }, //----------------------------------------------------------------------------- 'shiftLeft': function(aNumberOfBitsToShift) { return new Clipperz.Crypto.ECC.BinaryField.BigIntValue(this.value().shiftLeft(aNumberOfBitsToShift)); }, //----------------------------------------------------------------------------- 'bitSize': function() { return this.value().bitSize(); }, //----------------------------------------------------------------------------- 'isBitSet': function(aBitPosition) { return this.value().isBitSet(aBitPosition); }, //----------------------------------------------------------------------------- 'xor': function(aValue) { return new Clipperz.Crypto.ECC.BinaryField.BigIntValue(this.value().xor(aValue.value())); }, //----------------------------------------------------------------------------- 'compare': function(aValue) { return this.value().compare(aValue.value()); }, //----------------------------------------------------------------------------- __syntaxFix__: "syntax fix" }); Clipperz.Crypto.ECC.BinaryField.BigIntValue.O = new Clipperz.Crypto.BigInt(0); Clipperz.Crypto.ECC.BinaryField.BigIntValue.I = new Clipperz.Crypto.BigInt(1); * / //***************************************************************************** Clipperz.Crypto.ECC.BinaryField.WordArrayValue = function(aValue, aBase) { if (aValue.constructor == String) { var value; var stringLength; var numberOfWords; var i,c; if (aBase != 16) { throw Clipperz.Crypto.ECC.BinaryField.WordArrayValue.exception.UnsupportedBase; } value = aValue.replace(/ /g, ''); stringLength = value.length; numberOfWords = Math.ceil(stringLength / 8); this._value = new Array(numberOfWords); c = numberOfWords; for (i=0; i<c; i++) { var word; if (i < (c-1)) { word = parseInt(value.substr(stringLength-((i+1)*8), 8), 16); } else { word = parseInt(value.substr(0, stringLength-(i*8)), 16); } this._value[i] = word; } } else if (aValue.constructor == Array) { var itemsToCopy; itemsToCopy = aValue.length; while (aValue[itemsToCopy - 1] == 0) { itemsToCopy --; } this._value = aValue.slice(0, itemsToCopy); } else if (aValue.constructor == Number) { this._value = [aValue]; } else { // throw Clipperz.Crypto.ECC.BinaryField.WordArrayValue.exception.UnsupportedConstructorValueType; } return this; } Clipperz.Crypto.ECC.BinaryField.WordArrayValue.prototype = MochiKit.Base.update(new Clipperz.Crypto.ECC.BinaryField.AbstractValue(), { 'value': function() { return this._value; }, //----------------------------------------------------------------------------- 'wordSize': function() { return this._value.length }, //----------------------------------------------------------------------------- 'clone': function() { return new Clipperz.Crypto.ECC.BinaryField.WordArrayValue(this._value.slice(0)); }, //----------------------------------------------------------------------------- 'isZero': function() { return (this.compare(Clipperz.Crypto.ECC.BinaryField.WordArrayValue.O) == 0); }, //----------------------------------------------------------------------------- 'asString': function(aBase) { |