From f0ff77ca47c2bfad626529197126edaaeffbbc98 Mon Sep 17 00:00:00 2001 From: "Chen, Yi-Cyuan" Date: Thu, 8 Sep 2016 10:47:31 +0800 Subject: [PATCH] Added some files to npm package. --- .npmignore | 2 -- .travis.yml | 8 +++--- CHANGELOG.md | 4 +++ README.md | 67 ----------------------------------------------- bower.json | 2 +- build/sha3.min.js | 16 +++++------ package.json | 2 +- src/sha3.js | 12 ++++----- 8 files changed, 23 insertions(+), 90 deletions(-) diff --git a/.npmignore b/.npmignore index d69ed3a..4c8bdf9 100644 --- a/.npmignore +++ b/.npmignore @@ -1,4 +1,2 @@ my_test covreporter -build -tests diff --git a/.travis.yml b/.travis.yml index 6d44cb9..4036a6f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,10 +1,8 @@ language: node_js node_js: - - "4.1" - - "4.0" - - "0.12" - - "0.11" - - "0.10" + - "0.12.15" + - "4.5" + - "6.5.0" before_install: - npm install coveralls - npm install mocha-lcov-reporter diff --git a/CHANGELOG.md b/CHANGELOG.md index a039f16..c52a655 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +# v0.5.3 / 2016-09-08 + +* Added some files to npm package. + # v0.5.2 / 2016-06-06 * Fixed shake output incorrect in the special length. diff --git a/README.md b/README.md index 26afe51..fd99ed7 100644 --- a/README.md +++ b/README.md @@ -209,73 +209,6 @@ sha3_512(new Uint8Array([])); [UTF8](http://jsperf.com/sha3/5) [ASCII](http://jsperf.com/sha3/4) -## Extensions -### jQuery -If you prefer jQuery style, you can add following code to add a jQuery extension. - -Code -```JavaScript -jQuery.sha3_512 = sha3_512; -jQuery.sha3_384 = sha3_384; -jQuery.sha3_256 = sha3_256; -jQuery.sha3_224 = sha3_224; -jQuery.keccak_512 = keccak_512; -jQuery.keccak_384 = keccak_384; -jQuery.keccak_256 = keccak_256; -jQuery.keccak_224 = keccak_224; -``` -And then you could use like this: -```JavaScript -$.sha3_512('message'); -$.sha3_384('message'); -$.sha3_256('message'); -$.sha3_224('message'); -$.keccak_512('message'); -$.keccak_384('message'); -$.keccak_256('message'); -$.keccak_224('message'); -``` -### Prototype -If you prefer prototype style, you can add following code to add a prototype extension. - -Code -```JavaScript -String.prototype.sha3_512 = function() { - return sha3_512(this); -}; -String.prototype.sha3_384 = function() { - return sha3_384(this); -}; -String.prototype.sha3_256 = function() { - return sha3_256(this); -}; -String.prototype.sha3_224 = function() { - return sha3_224(this); -}; -String.prototype.keccak_512 = function() { - return keccak_512(this); -}; -String.prototype.keccak_384 = function() { - return keccak_384(this); -}; -String.prototype.keccak_256 = function() { - return keccak_256(this); -}; -String.prototype.keccak_224 = function() { - return keccak_224(this); -}; -``` -And then you could use like this: -```JavaScript -'message'.sha3_512(); -'message'.sha3_384(); -'message'.sha3_256(); -'message'.sha3_224(); -'message'.keccak_512(); -'message'.keccak_384(); -'message'.keccak_256(); -'message'.keccak_224(); -``` ## License The project is released under the [MIT license](http://www.opensource.org/licenses/MIT). diff --git a/bower.json b/bower.json index 03d9db3..1df544c 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "js-sha3", - "version": "0.5.2", + "version": "0.5.3", "main": ["src/sha3.js"], "ignore": [ "samples", diff --git a/build/sha3.min.js b/build/sha3.min.js index d2b7a6d..a79cce2 100644 --- a/build/sha3.min.js +++ b/build/sha3.min.js @@ -1,18 +1,18 @@ /** * [js-sha3]{@link https://github.com/emn178/js-sha3} * - * @version 0.5.2 + * @version 0.5.3 * @author Chen, Yi-Cyuan [emn178@gmail.com] * @copyright Chen, Yi-Cyuan 2015-2016 * @license MIT */ -(function(r){function n(a,b,c){this.blocks=[];this.s=[];this.padding=b;this.outputBits=c;this.reset=!0;this.start=this.block=0;this.blockCount=1600-(a<<1)>>5;this.byteCount=this.blockCount<<2;this.outputBlocks=c>>5;this.extraBytes=(c&31)>>3;for(a=0;50>a;++a)this.s[a]=0}var ga="undefined"!=typeof module;ga&&(r=global);for(var l="0123456789abcdef".split(""),p=[0,8,16,24],ha=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425, -0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],t=[224,256,384,512],w=["hex","buffer","array"],ia=function(a,b,c){return function(e){return(new n(a,b,a)).update(e)[c]()}},ja=function(a,b,c){return function(e,g){return(new n(a,b,g)).update(e)[c]()}},q=function(a,b){var c=ia(a,b,"hex");c.create=function(){return new n(a,b,a)};c.update= -function(a){return c.create().update(a)};for(var e=0;e>2]|=a[h]<m?e[d>>2]|=m<m?e[d>>2]|=(192|m>>6)<m||57344<=m?e[d>>2]|=(224|m>>12)<>2]|=(240|m>>18)<>2]|=(128|m>>12&63)<>2]|=(128|m>>6&63)<>2]|=(128|m&63)<=g){this.start=d-g;this.block=e[k];for(d=0;d>2]|=this.padding[b&3];if(this.lastByteIndex==this.byteCount)for(a[0]=a[c],b=1;b>4&15]+l[f&15]+l[f>>12&15]+l[f>>8&15]+l[f>>20&15]+l[f>>16&15]+l[f>>28&15]+l[f>>24&15];0==k%a&& -(v(b),g=0)}e&&(f=b[g],0>4&15]+l[f&15]),1>12&15]+l[f>>8&15]),2>20&15]+l[f>>16&15]));return h};n.prototype.buffer=function(){this.finalize();var a=this.blockCount,b=this.s,c=this.outputBlocks,e=this.extraBytes,g=0,k=0,h=this.outputBits>>3,f;f=e?new ArrayBuffer(c+1<<2):new ArrayBuffer(h);for(var d=new Uint32Array(f);k>5;this.byteCount=this.blockCount<<2;this.outputBlocks=c>>5;this.extraBytes=(c&31)>>3;for(a=0;50>a;++a)this.s[a]=0}var ga="object"==typeof process&&process.versions&&process.versions.node;ga&&(r=global);for(var l="0123456789abcdef".split(""),p=[0,8,16,24],ha=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648, +32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],t=[224,256,384,512],w=["hex","buffer","array"],ia=function(a,b,c){return function(e){return(new n(a,b,a)).update(e)[c]()}},ja=function(a,b,c){return function(e,g){return(new n(a,b,g)).update(e)[c]()}},q=function(a,b){var c=ia(a,b,"hex");c.create=function(){return new n(a, +b,a)};c.update=function(a){return c.create().update(a)};for(var e=0;e>2]|=a[h]<< +p[d++&3];else for(d=this.start;hm?e[d>>2]|=m<m?e[d>>2]|=(192|m>>6)<m||57344<=m?e[d>>2]|=(224|m>>12)<>2]|=(240|m>>18)<>2]|=(128|m>>12&63)<>2]|=(128|m>>6&63)<>2]|=(128|m&63)<=g){this.start=d-g;this.block=e[k];for(d=0;d>2]|=this.padding[b&3];if(this.lastByteIndex==this.byteCount)for(a[0]=a[c],b=1;b>4&15]+l[f&15]+l[f>>12&15]+l[f>>8&15]+l[f>>20&15]+l[f>>16&15]+l[f>>28&15]+l[f>> +24&15];0==k%a&&(v(b),g=0)}e&&(f=b[g],0>4&15]+l[f&15]),1>12&15]+l[f>>8&15]),2>20&15]+l[f>>16&15]));return h};n.prototype.buffer=function(){this.finalize();var a=this.blockCount,b=this.s,c=this.outputBlocks,e=this.extraBytes,g=0,k=0,h=this.outputBits>>3,f;f=e?new ArrayBuffer(c+1<<2):new ArrayBuffer(h);for(var d=new Uint32Array(f);k>8&255,h[f+2]=d>>16&255,h[f+3]=d>>24&255;0==k%a&&v(b)}e&&(f=k<<2,d=b[g],0>8&255),2>16&255));return h};var v=function(a){var b,c,e,g,k,h,f,d,m,l,n,p,q,r,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,aa,ba,ca,da;for(e=0;48>e;e+=2)g=a[0]^a[10]^a[20]^a[30]^a[40],k=a[1]^a[11]^a[21]^a[31]^ a[41],h=a[2]^a[12]^a[22]^a[32]^a[42],f=a[3]^a[13]^a[23]^a[33]^a[43],d=a[4]^a[14]^a[24]^a[34]^a[44],m=a[5]^a[15]^a[25]^a[35]^a[45],l=a[6]^a[16]^a[26]^a[36]^a[46],n=a[7]^a[17]^a[27]^a[37]^a[47],p=a[8]^a[18]^a[28]^a[38]^a[48],q=a[9]^a[19]^a[29]^a[39]^a[49],b=p^(h<<1|f>>>31),c=q^(f<<1|h>>>31),a[0]^=b,a[1]^=c,a[10]^=b,a[11]^=c,a[20]^=b,a[21]^=c,a[30]^=b,a[31]^=c,a[40]^=b,a[41]^=c,b=g^(d<<1|m>>>31),c=k^(m<<1|d>>>31),a[2]^=b,a[3]^=c,a[12]^=b,a[13]^=c,a[22]^=b,a[23]^=c,a[32]^=b,a[33]^=c,a[42]^=b,a[43]^=c, b=h^(l<<1|n>>>31),c=f^(n<<1|l>>>31),a[4]^=b,a[5]^=c,a[14]^=b,a[15]^=c,a[24]^=b,a[25]^=c,a[34]^=b,a[35]^=c,a[44]^=b,a[45]^=c,b=d^(p<<1|q>>>31),c=m^(q<<1|p>>>31),a[6]^=b,a[7]^=c,a[16]^=b,a[17]^=c,a[26]^=b,a[27]^=c,a[36]^=b,a[37]^=c,a[46]^=b,a[47]^=c,b=l^(g<<1|k>>>31),c=n^(k<<1|g>>>31),a[8]^=b,a[9]^=c,a[18]^=b,a[19]^=c,a[28]^=b,a[29]^=c,a[38]^=b,a[39]^=c,a[48]^=b,a[49]^=c,b=a[0],c=a[1],M=a[11]<<4|a[10]>>>28,N=a[10]<<4|a[11]>>>28,u=a[20]<<3|a[21]>>>29,v=a[21]<<3|a[20]>>>29,aa=a[31]<<9|a[30]>>>23,ba=a[30]<< diff --git a/package.json b/package.json index fa8ce9c..a1024d2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "js-sha3", - "version": "0.5.2", + "version": "0.5.3", "description": "A simple SHA-3 / Keccak / Shake hash function for JavaScript supports UTF-8 encoding.", "main": "src/sha3.js", "devDependencies": { diff --git a/src/sha3.js b/src/sha3.js index daa6f46..a3f7a8b 100644 --- a/src/sha3.js +++ b/src/sha3.js @@ -1,7 +1,7 @@ /** * [js-sha3]{@link https://github.com/emn178/js-sha3} * - * @version 0.5.2 + * @version 0.5.3 * @author Chen, Yi-Cyuan [emn178@gmail.com] * @copyright Chen, Yi-Cyuan 2015-2016 * @license MIT @@ -9,7 +9,7 @@ (function (root) { 'use strict'; - var NODE_JS = typeof(module) != 'undefined'; + var NODE_JS = typeof process == 'object' && process.versions && process.versions.node; if (NODE_JS) { root = global; } @@ -106,7 +106,7 @@ }; Keccak.prototype.update = function (message) { - var notString = typeof(message) != 'string'; + var notString = typeof message != 'string'; if (notString && message.constructor == root.ArrayBuffer) { message = new Uint8Array(message); } @@ -122,11 +122,11 @@ } } if (notString) { - for (i = this.start;index < length && i < byteCount; ++index) { + for (i = this.start;index < length && i < byteCount;++index) { blocks[i >> 2] |= message[index] << SHIFT[i++ & 3]; } } else { - for (i = this.start;index < length && i < byteCount; ++index) { + for (i = this.start;index < length && i < byteCount;++index) { code = message.charCodeAt(index); if (code < 0x80) { blocks[i >> 2] |= code << SHIFT[i++ & 3]; @@ -280,7 +280,7 @@ b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33, b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49; - for (n = 0; n < 48; n += 2) { + for (n = 0;n < 48;n += 2) { c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]; c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]; c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];