corrade-nucleus-nucleons – Blame information for rev 20

Subversion Repositories:
Rev:
Rev Author Line No. Line
20 office 1 (function(){
2  
3 var C = (typeof window === 'undefined') ? require('./Crypto').Crypto : window.Crypto;
4  
5 // Shortcuts
6 var util = C.util,
7 charenc = C.charenc,
8 UTF8 = charenc.UTF8,
9 Binary = charenc.Binary;
10  
11 // Public API
12 var MD5 = C.MD5 = function (message, options) {
13 var digestbytes = util.wordsToBytes(MD5._md5(message));
14 return options && options.asBytes ? digestbytes :
15 options && options.asString ? Binary.bytesToString(digestbytes) :
16 util.bytesToHex(digestbytes);
17 };
18  
19 // The core
20 MD5._md5 = function (message) {
21  
22 // Convert to byte array
23 if (message.constructor == String) message = UTF8.stringToBytes(message);
24 /* else, assume byte array already */
25  
26 var m = util.bytesToWords(message),
27 l = message.length * 8,
28 a = 1732584193,
29 b = -271733879,
30 c = -1732584194,
31 d = 271733878;
32  
33 // Swap endian
34 for (var i = 0; i < m.length; i++) {
35 m[i] = ((m[i] << 8) | (m[i] >>> 24)) & 0x00FF00FF |
36 ((m[i] << 24) | (m[i] >>> 8)) & 0xFF00FF00;
37 }
38  
39 // Padding
40 m[l >>> 5] |= 0x80 << (l % 32);
41 m[(((l + 64) >>> 9) << 4) + 14] = l;
42  
43 // Method shortcuts
44 var FF = MD5._ff,
45 GG = MD5._gg,
46 HH = MD5._hh,
47 II = MD5._ii;
48  
49 for (var i = 0; i < m.length; i += 16) {
50  
51 var aa = a,
52 bb = b,
53 cc = c,
54 dd = d;
55  
56 a = FF(a, b, c, d, m[i+ 0], 7, -680876936);
57 d = FF(d, a, b, c, m[i+ 1], 12, -389564586);
58 c = FF(c, d, a, b, m[i+ 2], 17, 606105819);
59 b = FF(b, c, d, a, m[i+ 3], 22, -1044525330);
60 a = FF(a, b, c, d, m[i+ 4], 7, -176418897);
61 d = FF(d, a, b, c, m[i+ 5], 12, 1200080426);
62 c = FF(c, d, a, b, m[i+ 6], 17, -1473231341);
63 b = FF(b, c, d, a, m[i+ 7], 22, -45705983);
64 a = FF(a, b, c, d, m[i+ 8], 7, 1770035416);
65 d = FF(d, a, b, c, m[i+ 9], 12, -1958414417);
66 c = FF(c, d, a, b, m[i+10], 17, -42063);
67 b = FF(b, c, d, a, m[i+11], 22, -1990404162);
68 a = FF(a, b, c, d, m[i+12], 7, 1804603682);
69 d = FF(d, a, b, c, m[i+13], 12, -40341101);
70 c = FF(c, d, a, b, m[i+14], 17, -1502002290);
71 b = FF(b, c, d, a, m[i+15], 22, 1236535329);
72  
73 a = GG(a, b, c, d, m[i+ 1], 5, -165796510);
74 d = GG(d, a, b, c, m[i+ 6], 9, -1069501632);
75 c = GG(c, d, a, b, m[i+11], 14, 643717713);
76 b = GG(b, c, d, a, m[i+ 0], 20, -373897302);
77 a = GG(a, b, c, d, m[i+ 5], 5, -701558691);
78 d = GG(d, a, b, c, m[i+10], 9, 38016083);
79 c = GG(c, d, a, b, m[i+15], 14, -660478335);
80 b = GG(b, c, d, a, m[i+ 4], 20, -405537848);
81 a = GG(a, b, c, d, m[i+ 9], 5, 568446438);
82 d = GG(d, a, b, c, m[i+14], 9, -1019803690);
83 c = GG(c, d, a, b, m[i+ 3], 14, -187363961);
84 b = GG(b, c, d, a, m[i+ 8], 20, 1163531501);
85 a = GG(a, b, c, d, m[i+13], 5, -1444681467);
86 d = GG(d, a, b, c, m[i+ 2], 9, -51403784);
87 c = GG(c, d, a, b, m[i+ 7], 14, 1735328473);
88 b = GG(b, c, d, a, m[i+12], 20, -1926607734);
89  
90 a = HH(a, b, c, d, m[i+ 5], 4, -378558);
91 d = HH(d, a, b, c, m[i+ 8], 11, -2022574463);
92 c = HH(c, d, a, b, m[i+11], 16, 1839030562);
93 b = HH(b, c, d, a, m[i+14], 23, -35309556);
94 a = HH(a, b, c, d, m[i+ 1], 4, -1530992060);
95 d = HH(d, a, b, c, m[i+ 4], 11, 1272893353);
96 c = HH(c, d, a, b, m[i+ 7], 16, -155497632);
97 b = HH(b, c, d, a, m[i+10], 23, -1094730640);
98 a = HH(a, b, c, d, m[i+13], 4, 681279174);
99 d = HH(d, a, b, c, m[i+ 0], 11, -358537222);
100 c = HH(c, d, a, b, m[i+ 3], 16, -722521979);
101 b = HH(b, c, d, a, m[i+ 6], 23, 76029189);
102 a = HH(a, b, c, d, m[i+ 9], 4, -640364487);
103 d = HH(d, a, b, c, m[i+12], 11, -421815835);
104 c = HH(c, d, a, b, m[i+15], 16, 530742520);
105 b = HH(b, c, d, a, m[i+ 2], 23, -995338651);
106  
107 a = II(a, b, c, d, m[i+ 0], 6, -198630844);
108 d = II(d, a, b, c, m[i+ 7], 10, 1126891415);
109 c = II(c, d, a, b, m[i+14], 15, -1416354905);
110 b = II(b, c, d, a, m[i+ 5], 21, -57434055);
111 a = II(a, b, c, d, m[i+12], 6, 1700485571);
112 d = II(d, a, b, c, m[i+ 3], 10, -1894986606);
113 c = II(c, d, a, b, m[i+10], 15, -1051523);
114 b = II(b, c, d, a, m[i+ 1], 21, -2054922799);
115 a = II(a, b, c, d, m[i+ 8], 6, 1873313359);
116 d = II(d, a, b, c, m[i+15], 10, -30611744);
117 c = II(c, d, a, b, m[i+ 6], 15, -1560198380);
118 b = II(b, c, d, a, m[i+13], 21, 1309151649);
119 a = II(a, b, c, d, m[i+ 4], 6, -145523070);
120 d = II(d, a, b, c, m[i+11], 10, -1120210379);
121 c = II(c, d, a, b, m[i+ 2], 15, 718787259);
122 b = II(b, c, d, a, m[i+ 9], 21, -343485551);
123  
124 a = (a + aa) >>> 0;
125 b = (b + bb) >>> 0;
126 c = (c + cc) >>> 0;
127 d = (d + dd) >>> 0;
128  
129 }
130  
131 return util.endian([a, b, c, d]);
132  
133 };
134  
135 // Auxiliary functions
136 MD5._ff = function (a, b, c, d, x, s, t) {
137 var n = a + (b & c | ~b & d) + (x >>> 0) + t;
138 return ((n << s) | (n >>> (32 - s))) + b;
139 };
140 MD5._gg = function (a, b, c, d, x, s, t) {
141 var n = a + (b & d | c & ~d) + (x >>> 0) + t;
142 return ((n << s) | (n >>> (32 - s))) + b;
143 };
144 MD5._hh = function (a, b, c, d, x, s, t) {
145 var n = a + (b ^ c ^ d) + (x >>> 0) + t;
146 return ((n << s) | (n >>> (32 - s))) + b;
147 };
148 MD5._ii = function (a, b, c, d, x, s, t) {
149 var n = a + (c ^ (b | ~d)) + (x >>> 0) + t;
150 return ((n << s) | (n >>> (32 - s))) + b;
151 };
152  
153 // Package private blocksize
154 MD5._blocksize = 16;
155  
156 MD5._digestsize = 16;
157  
158 })();