Skip to content
This repository has been archived by the owner on Nov 20, 2022. It is now read-only.

Commit

Permalink
Import 3.1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
sophiebremer committed Jul 7, 2022
1 parent 75c63d1 commit 3e88d07
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 0 deletions.
14 changes: 14 additions & 0 deletions build/components/mode-ctr-gladman-min.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
/*
Counter block mode compatible with Dr Brian Gladman fileenc.c
derived from CryptoJS.mode.CTR
Jan Hruby [email protected]
*/
CryptoJS.mode.CTRGladman=function(){function h(a){if(255===(a>>24&255)){var c=a>>16&255,b=a>>8&255,e=a&255;255===c?(c=0,255===b?(b=0,255===e?e=0:++e):++b):++c;a=0+(c<<16)+(b<<8);a+=e}else a+=16777216;return a}var g=CryptoJS.lib.BlockCipherMode.extend(),j=g.Encryptor=g.extend({processBlock:function(a,c){var b=this._cipher,e=b.blockSize,d=this._iv,f=this._counter;d&&(f=this._counter=d.slice(0),this._iv=void 0);d=f;if(0===(d[0]=h(d[0])))d[1]=h(d[1]);f=f.slice(0);b.encryptBlock(f,0);for(b=0;b<e;b++)a[c+
b]^=f[b]}});g.Decryptor=j;return g}();
102 changes: 102 additions & 0 deletions build/components/mode-ctr-gladman.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/*
CryptoJS v3.1.2
code.google.com/p/crypto-js
(c) 2009-2013 by Jeff Mott. All rights reserved.
code.google.com/p/crypto-js/wiki/License
*/
/** @preserve
* Counter block mode compatible with Dr Brian Gladman fileenc.c
* derived from CryptoJS.mode.CTR
* Jan Hruby [email protected]
*/
CryptoJS.mode.CTRGladman = (function () {
var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();

function incWord(word)
{
if (((word >> 24) & 0xff) === 0xff) { //overflow
var b1 = (word >> 16)&0xff;
var b2 = (word >> 8)&0xff;
var b3 = word & 0xff;

if (b1 === 0xff) // overflow b1
{
b1 = 0;
if (b2 === 0xff)
{
b2 = 0;
if (b3 === 0xff)
{
b3 = 0;
}
else
{
++b3;
}
}
else
{
++b2;
}
}
else
{
++b1;
}

word = 0;
word += (b1 << 16);
word += (b2 << 8);
word += b3;
}
else
{
word += (0x01 << 24);
}
return word;
}

function incCounter(counter)
{
if ((counter[0] = incWord(counter[0])) === 0)
{
// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8
counter[1] = incWord(counter[1]);
}
return counter;
}

var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({
processBlock: function (words, offset) {
// Shortcuts
var cipher = this._cipher
var blockSize = cipher.blockSize;
var iv = this._iv;
var counter = this._counter;

// Generate keystream
if (iv) {
counter = this._counter = iv.slice(0);

// Remove IV for subsequent blocks
this._iv = undefined;
}

incCounter(counter);

var keystream = counter.slice(0);
cipher.encryptBlock(keystream, 0);

// Encrypt
for (var i = 0; i < blockSize; i++) {
words[offset + i] ^= keystream[i];
}
}
});

CTRGladman.Decryptor = Encryptor;

return CTRGladman;
}());


1 change: 1 addition & 0 deletions builder/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ components:
- cipher-core
- mode-cfb
- mode-ctr
- mode-ctr-gladman
- mode-ofb
- mode-ecb
- pad-ansix923
Expand Down

0 comments on commit 3e88d07

Please sign in to comment.