summaryrefslogtreecommitdiff
path: root/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js
Side-by-side diff
Diffstat (limited to 'frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js') (more/less context) (show whitespace changes)
-rw-r--r--frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js15
1 files changed, 6 insertions, 9 deletions
diff --git a/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js b/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js
index e9db091..9a0d5fa 100644
--- a/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js
+++ b/frontend/gamma/tests/tests/Clipperz/Crypto/jscrypto.js
@@ -1,120 +1,117 @@
/*
Copyright 2008-2011 Clipperz Srl
-This file is part of Clipperz's Javascript Crypto Library.
-Javascript Crypto Library provides web developers with an extensive
-and efficient set of cryptographic functions. The library aims to
-obtain maximum execution speed while preserving modularity and
-reusability.
+This file is part of Clipperz Community Edition.
+Clipperz Community Edition is an online password manager.
For further information about its features and functionalities please
-refer to http://www.clipperz.com
+refer to http://www.clipperz.com.
-* Javascript Crypto Library is free software: you can redistribute
+* 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.
-* Javascript Crypto Library is distributed in the hope that it will
+* 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.
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 Javascript Crypto Library. If not, see
+ License along with Clipperz Community Edition. If not, see
<http://www.gnu.org/licenses/>.
*/
/* jsCrypto
Core AES
Emily Stark (estark@stanford.edu)
Mike Hamburg (mhamburg@stanford.edu)
Dan Boneh (dabo@cs.stanford.edu)
Symmetric AES in Javascript using precomputed lookup tables for round transformations rather for speed improvements
and code size reduction. Provides authenticated encryption in OCB and CCM modes.
Parts of this code are based on the OpenSSL implementation of AES: http://www.openssl.org
Public domain, 2009.
*/
// CCM mode is the default
var CCM = 1, OCB = 2;
/* aes object constructor. Takes as arguments:
- 16-byte key, or an array of 4 32-bit words
- Optionally specify a mode (aes.OCB or aes.CCM). Defaults to CCM
- Optionally specify a MAC tag length for integrity. Defaults to 16 bytes
*/
function aes(key, mode, Tlen) {
// initialize objects for CCM and OCB modes
this._CCM = new cipherCCM(this);
this._OCB = new cipherOCB(this);
this._decryptScheduled = false;
if (mode) this._mode = mode;
else this._mode = OCB;
// AES round constants
this._RCON = [
[0x00, 0x00, 0x00, 0x00],
[0x01, 0x00, 0x00, 0x00],
[0x02, 0x00, 0x00, 0x00],
[0x04, 0x00, 0x00, 0x00],
[0x08, 0x00, 0x00, 0x00],
[0x10, 0x00, 0x00, 0x00],
[0x20, 0x00, 0x00, 0x00],
[0x40, 0x00, 0x00, 0x00],
[0x80, 0x00, 0x00, 0x00],
[0x1b, 0x00, 0x00, 0x00],
[0x36, 0x00, 0x00, 0x00]
];
this._key_len = 16;
if (key.length == 4) {
this._key = [];
aes.wordsToBytes(key, this._key);
}
else
this._key = key;
if (Tlen) this._Tlen = Tlen;
else this._Tlen = 16; // tag length in bytes
this._nr = 10;
// initialize tables that will be precomputed
this._SBOX = [];
this._INV_SBOX = [];
this._T = new Array(4);
this._Tin = new Array(4);
for (var i=0; i < 4; i++) {
this._T[i] = [];
this._Tin[i] = [];
}
this._precompute();
this.scheduleEncrypt();
// initialize encryption and decryption buffers
this._ctBuffer = [];
this._ptBuffer = [];
}
//////////////////
// KEY SCHEDULING
//////////////////
aes.prototype.scheduleEncrypt = function () {
this._decryptScheduled = false;
this._w = new Array(this._nr+1);
this._w[0] = new Array(4);
for (var i=0; i < 4; i++)
this._w[0][i] = this._key[i];