diff options
author | Nils Kenneweg <github@ovt.me> | 2016-05-25 23:32:28 +0200 |
---|---|---|
committer | Nils Kenneweg <github@ovt.me> | 2016-05-25 23:32:28 +0200 |
commit | 5cb04d280d238c8c49d243de7e00bd37a4444d0f (patch) | |
tree | 25cbb0745b5afe7f50fb559b3dffa22c8f8cfd25 | |
parent | ade8ea33449a91406a9af3e133c9374e0133b891 (diff) | |
parent | adb635a2cec36452c4211af0b3f16128323de143 (diff) | |
download | sjcl-5cb04d280d238c8c49d243de7e00bd37a4444d0f.zip sjcl-5cb04d280d238c8c49d243de7e00bd37a4444d0f.tar.gz sjcl-5cb04d280d238c8c49d243de7e00bd37a4444d0f.tar.bz2 |
Merge pull request #277 from nuald/master
Fixes for different compatibility issues.
-rwxr-xr-x | configure | 7 | ||||
-rw-r--r-- | core/exports.js | 8 | ||||
-rw-r--r-- | core/sha256.js | 20 | ||||
-rw-r--r-- | core/sha512.js | 24 | ||||
-rw-r--r-- | core/sjcl.js | 9 |
5 files changed, 39 insertions, 29 deletions
@@ -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; - }); -} |