mirror of
https://github.com/YunoHost-Apps/rocketchat_ynh.git
synced 2024-09-03 20:16:25 +02:00
293 lines
24 KiB
JavaScript
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
|