1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/rocketchat_ynh.git synced 2024-09-03 20:16:25 +02:00
rocketchat_ynh/sources/programs/server/packages/tmeasday_crypto-md5.js
2016-04-29 16:32:48 +02:00

293 lines
24 KiB
JavaScript

(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
var CryptoJS = Package['tmeasday:crypto-base'].CryptoJS;
(function(){
/////////////////////////////////////////////////////////////////////////////////////////
// //
// packages/tmeasday_crypto-md5/packages/tmeasday_crypto-md5.js //
// //
/////////////////////////////////////////////////////////////////////////////////////////
//
(function () { // 1
// 2
////////////////////////////////////////////////////////////////////////////////// // 3
// // // 4
// packages/tmeasday:crypto-md5/md5.js // // 5
// // // 6
////////////////////////////////////////////////////////////////////////////////// // 7
// // 8
/* // 1 // 9
CryptoJS v3.1.2 // 2 // 10
code.google.com/p/crypto-js // 3 // 11
(c) 2009-2013 by Jeff Mott. All rights reserved. // 4 // 12
code.google.com/p/crypto-js/wiki/License // 5 // 13
*/ // 6 // 14
(function (Math) { // 7 // 15
// Shortcuts // 8 // 16
var C = CryptoJS; // 9 // 17
var C_lib = C.lib; // 10 // 18
var WordArray = C_lib.WordArray; // 11 // 19
var Hasher = C_lib.Hasher; // 12 // 20
var C_algo = C.algo; // 13 // 21
// 14 // 22
// Constants table // 15 // 23
var T = []; // 16 // 24
// 17 // 25
// Compute constants // 18 // 26
(function () { // 19 // 27
for (var i = 0; i < 64; i++) { // 20 // 28
T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; // 21 // 29
} // 22 // 30
}()); // 23 // 31
// 24 // 32
/** // 25 // 33
* MD5 hash algorithm. // 26 // 34
*/ // 27 // 35
var MD5 = C_algo.MD5 = Hasher.extend({ // 28 // 36
_doReset: function () { // 29 // 37
this._hash = new WordArray.init([ // 30 // 38
0x67452301, 0xefcdab89, // 31 // 39
0x98badcfe, 0x10325476 // 32 // 40
]); // 33 // 41
}, // 34 // 42
// 35 // 43
_doProcessBlock: function (M, offset) { // 36 // 44
// Swap endian // 37 // 45
for (var i = 0; i < 16; i++) { // 38 // 46
// Shortcuts // 39 // 47
var offset_i = offset + i; // 40 // 48
var M_offset_i = M[offset_i]; // 41 // 49
// 42 // 50
M[offset_i] = ( // 43 // 51
(((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | // 44 // 52
(((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) // 45 // 53
); // 46 // 54
} // 47 // 55
// 48 // 56
// Shortcuts // 49 // 57
var H = this._hash.words; // 50 // 58
// 51 // 59
var M_offset_0 = M[offset + 0]; // 52 // 60
var M_offset_1 = M[offset + 1]; // 53 // 61
var M_offset_2 = M[offset + 2]; // 54 // 62
var M_offset_3 = M[offset + 3]; // 55 // 63
var M_offset_4 = M[offset + 4]; // 56 // 64
var M_offset_5 = M[offset + 5]; // 57 // 65
var M_offset_6 = M[offset + 6]; // 58 // 66
var M_offset_7 = M[offset + 7]; // 59 // 67
var M_offset_8 = M[offset + 8]; // 60 // 68
var M_offset_9 = M[offset + 9]; // 61 // 69
var M_offset_10 = M[offset + 10]; // 62 // 70
var M_offset_11 = M[offset + 11]; // 63 // 71
var M_offset_12 = M[offset + 12]; // 64 // 72
var M_offset_13 = M[offset + 13]; // 65 // 73
var M_offset_14 = M[offset + 14]; // 66 // 74
var M_offset_15 = M[offset + 15]; // 67 // 75
// 68 // 76
// Working varialbes // 69 // 77
var a = H[0]; // 70 // 78
var b = H[1]; // 71 // 79
var c = H[2]; // 72 // 80
var d = H[3]; // 73 // 81
// 74 // 82
// Computation // 75 // 83
a = FF(a, b, c, d, M_offset_0, 7, T[0]); // 76 // 84
d = FF(d, a, b, c, M_offset_1, 12, T[1]); // 77 // 85
c = FF(c, d, a, b, M_offset_2, 17, T[2]); // 78 // 86
b = FF(b, c, d, a, M_offset_3, 22, T[3]); // 79 // 87
a = FF(a, b, c, d, M_offset_4, 7, T[4]); // 80 // 88
d = FF(d, a, b, c, M_offset_5, 12, T[5]); // 81 // 89
c = FF(c, d, a, b, M_offset_6, 17, T[6]); // 82 // 90
b = FF(b, c, d, a, M_offset_7, 22, T[7]); // 83 // 91
a = FF(a, b, c, d, M_offset_8, 7, T[8]); // 84 // 92
d = FF(d, a, b, c, M_offset_9, 12, T[9]); // 85 // 93
c = FF(c, d, a, b, M_offset_10, 17, T[10]); // 86 // 94
b = FF(b, c, d, a, M_offset_11, 22, T[11]); // 87 // 95
a = FF(a, b, c, d, M_offset_12, 7, T[12]); // 88 // 96
d = FF(d, a, b, c, M_offset_13, 12, T[13]); // 89 // 97
c = FF(c, d, a, b, M_offset_14, 17, T[14]); // 90 // 98
b = FF(b, c, d, a, M_offset_15, 22, T[15]); // 91 // 99
// 92 // 100
a = GG(a, b, c, d, M_offset_1, 5, T[16]); // 93 // 101
d = GG(d, a, b, c, M_offset_6, 9, T[17]); // 94 // 102
c = GG(c, d, a, b, M_offset_11, 14, T[18]); // 95 // 103
b = GG(b, c, d, a, M_offset_0, 20, T[19]); // 96 // 104
a = GG(a, b, c, d, M_offset_5, 5, T[20]); // 97 // 105
d = GG(d, a, b, c, M_offset_10, 9, T[21]); // 98 // 106
c = GG(c, d, a, b, M_offset_15, 14, T[22]); // 99 // 107
b = GG(b, c, d, a, M_offset_4, 20, T[23]); // 100
a = GG(a, b, c, d, M_offset_9, 5, T[24]); // 101
d = GG(d, a, b, c, M_offset_14, 9, T[25]); // 102
c = GG(c, d, a, b, M_offset_3, 14, T[26]); // 103
b = GG(b, c, d, a, M_offset_8, 20, T[27]); // 104
a = GG(a, b, c, d, M_offset_13, 5, T[28]); // 105
d = GG(d, a, b, c, M_offset_2, 9, T[29]); // 106
c = GG(c, d, a, b, M_offset_7, 14, T[30]); // 107
b = GG(b, c, d, a, M_offset_12, 20, T[31]); // 108
// 109
a = HH(a, b, c, d, M_offset_5, 4, T[32]); // 110
d = HH(d, a, b, c, M_offset_8, 11, T[33]); // 111
c = HH(c, d, a, b, M_offset_11, 16, T[34]); // 112
b = HH(b, c, d, a, M_offset_14, 23, T[35]); // 113
a = HH(a, b, c, d, M_offset_1, 4, T[36]); // 114
d = HH(d, a, b, c, M_offset_4, 11, T[37]); // 115
c = HH(c, d, a, b, M_offset_7, 16, T[38]); // 116
b = HH(b, c, d, a, M_offset_10, 23, T[39]); // 117
a = HH(a, b, c, d, M_offset_13, 4, T[40]); // 118
d = HH(d, a, b, c, M_offset_0, 11, T[41]); // 119
c = HH(c, d, a, b, M_offset_3, 16, T[42]); // 120
b = HH(b, c, d, a, M_offset_6, 23, T[43]); // 121
a = HH(a, b, c, d, M_offset_9, 4, T[44]); // 122
d = HH(d, a, b, c, M_offset_12, 11, T[45]); // 123
c = HH(c, d, a, b, M_offset_15, 16, T[46]); // 124
b = HH(b, c, d, a, M_offset_2, 23, T[47]); // 125
// 126
a = II(a, b, c, d, M_offset_0, 6, T[48]); // 127
d = II(d, a, b, c, M_offset_7, 10, T[49]); // 128
c = II(c, d, a, b, M_offset_14, 15, T[50]); // 129
b = II(b, c, d, a, M_offset_5, 21, T[51]); // 130
a = II(a, b, c, d, M_offset_12, 6, T[52]); // 131
d = II(d, a, b, c, M_offset_3, 10, T[53]); // 132
c = II(c, d, a, b, M_offset_10, 15, T[54]); // 133
b = II(b, c, d, a, M_offset_1, 21, T[55]); // 134
a = II(a, b, c, d, M_offset_8, 6, T[56]); // 135
d = II(d, a, b, c, M_offset_15, 10, T[57]); // 136
c = II(c, d, a, b, M_offset_6, 15, T[58]); // 137
b = II(b, c, d, a, M_offset_13, 21, T[59]); // 138
a = II(a, b, c, d, M_offset_4, 6, T[60]); // 139
d = II(d, a, b, c, M_offset_11, 10, T[61]); // 140
c = II(c, d, a, b, M_offset_2, 15, T[62]); // 141
b = II(b, c, d, a, M_offset_9, 21, T[63]); // 142
// 143
// Intermediate hash value // 144
H[0] = (H[0] + a) | 0; // 145
H[1] = (H[1] + b) | 0; // 146
H[2] = (H[2] + c) | 0; // 147
H[3] = (H[3] + d) | 0; // 148
}, // 149
// 150
_doFinalize: function () { // 151
// Shortcuts // 152
var data = this._data; // 153
var dataWords = data.words; // 154
// 155
var nBitsTotal = this._nDataBytes * 8; // 156
var nBitsLeft = data.sigBytes * 8; // 157
// 158
// Add padding // 159
dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); // 160
// 161
var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); // 162
var nBitsTotalL = nBitsTotal; // 163
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( // 164
(((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | // 165
(((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) // 166
); // 167
dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( // 168
(((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | // 169
(((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) // 170
); // 171
// 172
data.sigBytes = (dataWords.length + 1) * 4; // 173
// 174
// Hash final blocks // 175
this._process(); // 176
// 177
// Shortcuts // 178
var hash = this._hash; // 179
var H = hash.words; // 180
// 181
// Swap endian // 182
for (var i = 0; i < 4; i++) { // 183
// Shortcut // 184
var H_i = H[i]; // 185
// 186
H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | // 187
(((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); // 188
} // 189
// 190
// Return final computed hash // 191
return hash; // 192
}, // 193
// 194
clone: function () { // 195
var clone = Hasher.clone.call(this); // 196
clone._hash = this._hash.clone(); // 197
// 198
return clone; // 199
} // 200
}); // 201
// 202
function FF(a, b, c, d, x, s, t) { // 203
var n = a + ((b & c) | (~b & d)) + x + t; // 204
return ((n << s) | (n >>> (32 - s))) + b; // 205
} // 206
// 207
function GG(a, b, c, d, x, s, t) { // 208
var n = a + ((b & d) | (c & ~d)) + x + t; // 209
return ((n << s) | (n >>> (32 - s))) + b; // 210
} // 211
// 212
function HH(a, b, c, d, x, s, t) { // 213
var n = a + (b ^ c ^ d) + x + t; // 214
return ((n << s) | (n >>> (32 - s))) + b; // 215
} // 216
// 217
function II(a, b, c, d, x, s, t) { // 218
var n = a + (c ^ (b | ~d)) + x + t; // 219
return ((n << s) | (n >>> (32 - s))) + b; // 220
} // 221
// 222
/** // 223
* Shortcut function to the hasher's object interface. // 224
* // 225
* @param {WordArray|string} message The message to hash. // 226
* // 227
* @return {WordArray} The hash. // 228
* // 229
* @static // 230
* // 231
* @example // 232
* // 233
* var hash = CryptoJS.MD5('message'); // 234
* var hash = CryptoJS.MD5(wordArray); // 235
*/ // 236
C.MD5 = Hasher._createHelper(MD5); // 237
// 238
/** // 239
* Shortcut function to the HMAC's object interface. // 240
* // 241
* @param {WordArray|string} message The message to hash. // 242
* @param {WordArray|string} key The secret key. // 243
* // 244
* @return {WordArray} The HMAC. // 245
* // 246
* @static // 247
* // 248
* @example // 249
* // 250
* var hmac = CryptoJS.HmacMD5(message, key); // 251
*/ // 252
C.HmacMD5 = Hasher._createHmacHelper(MD5); // 253
}(Math)); // 254
// 255
////////////////////////////////////////////////////////////////////////////////// // 264
// 265
}).call(this); // 266
// 267
/////////////////////////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
if (typeof Package === 'undefined') Package = {};
Package['tmeasday:crypto-md5'] = {};
})();
//# sourceMappingURL=tmeasday_crypto-md5.js.map