summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNils Kenneweg <github@ovt.me>2016-05-25 23:32:28 +0200
committerNils Kenneweg <github@ovt.me>2016-05-25 23:32:28 +0200
commit5cb04d280d238c8c49d243de7e00bd37a4444d0f (patch)
tree25cbb0745b5afe7f50fb559b3dffa22c8f8cfd25
parentade8ea33449a91406a9af3e133c9374e0133b891 (diff)
parentadb635a2cec36452c4211af0b3f16128323de143 (diff)
downloadsjcl-5cb04d280d238c8c49d243de7e00bd37a4444d0f.zip
sjcl-5cb04d280d238c8c49d243de7e00bd37a4444d0f.tar.gz
sjcl-5cb04d280d238c8c49d243de7e00bd37a4444d0f.tar.bz2
Merge pull request #277 from nuald/master
Fixes for different compatibility issues.
-rwxr-xr-xconfigure7
-rw-r--r--core/exports.js8
-rw-r--r--core/sha256.js20
-rw-r--r--core/sha512.js24
-rw-r--r--core/sjcl.js9
5 files changed, 39 insertions, 29 deletions
diff --git a/configure b/configure
index be855ab..821d201 100755
--- a/configure
+++ b/configure
@@ -34,6 +34,7 @@ my %deps = ('aes'=>'sjcl',
'codecArrayBuffer'=>'bitArray');
my $compress = "closure";
+my $exported = 1;
my %enabled = ();
$enabled{$_} = 0 foreach (@targets);
@@ -73,6 +74,8 @@ while (my $arg = shift @ARGV) {
$enabled{$targ} = -1;
} elsif ($arg =~ /^--?compress(?:or|ion)?=(none|closure|yui)$/) {
$compress = $1;
+ } elsif ($arg =~ /^--?no-export$/) {
+ $exported = 0;
} else {
my $targets = join " ", @targets;
$targets =~ s/sjcl //;
@@ -89,6 +92,8 @@ Valid arguments are:
--with-TARGET: require TARGET
--without-TARGET: forbid TARGET
+ --no-export: do not export sjcl
+
--help: show this message
Valid targets are:
@@ -120,6 +125,8 @@ foreach my $i (@targets) {
}
}
+$config = "exports $config" if $exported;
+
# reverse
foreach my $i (reverse @targets) {
if ($enabled{$i} > 0) {
diff --git a/core/exports.js b/core/exports.js
new file mode 100644
index 0000000..84ddfe4
--- /dev/null
+++ b/core/exports.js
@@ -0,0 +1,8 @@
+if(typeof module !== 'undefined' && module.exports){
+ module.exports = sjcl;
+}
+if (typeof define === "function") {
+ define([], function () {
+ return sjcl;
+ });
+}
diff --git a/core/sha256.js b/core/sha256.js
index 7702595..01b8a8d 100644
--- a/core/sha256.js
+++ b/core/sha256.js
@@ -145,23 +145,25 @@ sjcl.hash.sha256.prototype = {
* @private
*/
_precompute: function () {
- var i = 0, prime = 2, factor;
+ var i = 0, prime = 2, factor, isPrime;
function frac(x) { return (x-Math.floor(x)) * 0x100000000 | 0; }
- outer: for (; i<64; prime++) {
+ for (; i<64; prime++) {
+ isPrime = true;
for (factor=2; factor*factor <= prime; factor++) {
if (prime % factor === 0) {
- // not a prime
- continue outer;
+ isPrime = false;
+ break;
}
}
-
- if (i<8) {
- this._init[i] = frac(Math.pow(prime, 1/2));
+ if (isPrime) {
+ if (i<8) {
+ this._init[i] = frac(Math.pow(prime, 1/2));
+ }
+ this._key[i] = frac(Math.pow(prime, 1/3));
+ i++;
}
- this._key[i] = frac(Math.pow(prime, 1/3));
- i++;
}
},
diff --git a/core/sha512.js b/core/sha512.js
index f85f515..2f9193d 100644
--- a/core/sha512.js
+++ b/core/sha512.js
@@ -189,26 +189,28 @@ sjcl.hash.sha512.prototype = {
_precompute: function () {
// XXX: This code is for precomputing the SHA256 constants, change for
// SHA512 and re-enable.
- var i = 0, prime = 2, factor;
+ var i = 0, prime = 2, factor , isPrime;
function frac(x) { return (x-Math.floor(x)) * 0x100000000 | 0; }
function frac2(x) { return (x-Math.floor(x)) * 0x10000000000 & 0xff; }
- outer: for (; i<80; prime++) {
+ for (; i<80; prime++) {
+ isPrime = true;
for (factor=2; factor*factor <= prime; factor++) {
if (prime % factor === 0) {
- // not a prime
- continue outer;
+ isPrime = false;
+ break;
}
}
-
- if (i<8) {
- this._init[i*2] = frac(Math.pow(prime, 1/2));
- this._init[i*2+1] = (frac2(Math.pow(prime, 1/2)) << 24) | this._initr[i];
+ if (isPrime) {
+ if (i<8) {
+ this._init[i*2] = frac(Math.pow(prime, 1/2));
+ this._init[i*2+1] = (frac2(Math.pow(prime, 1/2)) << 24) | this._initr[i];
+ }
+ this._key[i*2] = frac(Math.pow(prime, 1/3));
+ this._key[i*2+1] = (frac2(Math.pow(prime, 1/3)) << 24) | this._keyr[i];
+ i++;
}
- this._key[i*2] = frac(Math.pow(prime, 1/3));
- this._key[i*2+1] = (frac2(Math.pow(prime, 1/3)) << 24) | this._keyr[i];
- i++;
}
},
diff --git a/core/sjcl.js b/core/sjcl.js
index 8c9425d..4e75ab6 100644
--- a/core/sjcl.js
+++ b/core/sjcl.js
@@ -67,12 +67,3 @@ var sjcl = {
}
}
};
-
-if(typeof module !== 'undefined' && module.exports){
- module.exports = sjcl;
-}
-if (typeof define === "function") {
- define([], function () {
- return sjcl;
- });
-}