spring-jekyll-theme 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +49 -0
- data/_includes/disqus.html +17 -0
- data/_includes/disqus_comments.html +20 -0
- data/_includes/footer.html +23 -0
- data/_includes/google-analytics.html +9 -0
- data/_includes/head.html +21 -0
- data/_includes/header.html +31 -0
- data/_includes/profile.html +21 -0
- data/_includes/social.html +19 -0
- data/_layouts/default.html +20 -0
- data/_layouts/home.html +34 -0
- data/_layouts/page.html +14 -0
- data/_layouts/post.html +43 -0
- data/_sass/spring/_base.scss +272 -0
- data/_sass/spring/_layout.scss +290 -0
- data/_sass/spring/_syntax-highlighting.scss +71 -0
- data/_sass/spring.scss +56 -0
- data/assets/3rd-party/crypto-js/CONTRIBUTING.md +28 -0
- data/assets/3rd-party/crypto-js/LICENSE +24 -0
- data/assets/3rd-party/crypto-js/README.md +249 -0
- data/assets/3rd-party/crypto-js/aes.js +234 -0
- data/assets/3rd-party/crypto-js/bower.json +35 -0
- data/assets/3rd-party/crypto-js/cipher-core.js +890 -0
- data/assets/3rd-party/crypto-js/core.js +797 -0
- data/assets/3rd-party/crypto-js/crypto-js.js +6059 -0
- data/assets/3rd-party/crypto-js/docs/QuickStartGuide.wiki +470 -0
- data/assets/3rd-party/crypto-js/enc-base64.js +136 -0
- data/assets/3rd-party/crypto-js/enc-hex.js +18 -0
- data/assets/3rd-party/crypto-js/enc-latin1.js +18 -0
- data/assets/3rd-party/crypto-js/enc-utf16.js +149 -0
- data/assets/3rd-party/crypto-js/enc-utf8.js +18 -0
- data/assets/3rd-party/crypto-js/evpkdf.js +134 -0
- data/assets/3rd-party/crypto-js/format-hex.js +66 -0
- data/assets/3rd-party/crypto-js/format-openssl.js +18 -0
- data/assets/3rd-party/crypto-js/hmac-md5.js +18 -0
- data/assets/3rd-party/crypto-js/hmac-ripemd160.js +18 -0
- data/assets/3rd-party/crypto-js/hmac-sha1.js +18 -0
- data/assets/3rd-party/crypto-js/hmac-sha224.js +18 -0
- data/assets/3rd-party/crypto-js/hmac-sha256.js +18 -0
- data/assets/3rd-party/crypto-js/hmac-sha3.js +18 -0
- data/assets/3rd-party/crypto-js/hmac-sha384.js +18 -0
- data/assets/3rd-party/crypto-js/hmac-sha512.js +18 -0
- data/assets/3rd-party/crypto-js/hmac.js +143 -0
- data/assets/3rd-party/crypto-js/index.js +18 -0
- data/assets/3rd-party/crypto-js/lib-typedarrays.js +76 -0
- data/assets/3rd-party/crypto-js/md5.js +268 -0
- data/assets/3rd-party/crypto-js/mode-cfb.js +80 -0
- data/assets/3rd-party/crypto-js/mode-ctr-gladman.js +116 -0
- data/assets/3rd-party/crypto-js/mode-ctr.js +58 -0
- data/assets/3rd-party/crypto-js/mode-ecb.js +40 -0
- data/assets/3rd-party/crypto-js/mode-ofb.js +54 -0
- data/assets/3rd-party/crypto-js/package.json +66 -0
- data/assets/3rd-party/crypto-js/pad-ansix923.js +49 -0
- data/assets/3rd-party/crypto-js/pad-iso10126.js +44 -0
- data/assets/3rd-party/crypto-js/pad-iso97971.js +40 -0
- data/assets/3rd-party/crypto-js/pad-nopadding.js +30 -0
- data/assets/3rd-party/crypto-js/pad-pkcs7.js +18 -0
- data/assets/3rd-party/crypto-js/pad-zeropadding.js +47 -0
- data/assets/3rd-party/crypto-js/pbkdf2.js +145 -0
- data/assets/3rd-party/crypto-js/rabbit-legacy.js +190 -0
- data/assets/3rd-party/crypto-js/rabbit.js +192 -0
- data/assets/3rd-party/crypto-js/rc4.js +139 -0
- data/assets/3rd-party/crypto-js/ripemd160.js +267 -0
- data/assets/3rd-party/crypto-js/sha1.js +150 -0
- data/assets/3rd-party/crypto-js/sha224.js +80 -0
- data/assets/3rd-party/crypto-js/sha256.js +199 -0
- data/assets/3rd-party/crypto-js/sha3.js +326 -0
- data/assets/3rd-party/crypto-js/sha384.js +83 -0
- data/assets/3rd-party/crypto-js/sha512.js +326 -0
- data/assets/3rd-party/crypto-js/tripledes.js +779 -0
- data/assets/3rd-party/crypto-js/x64-core.js +304 -0
- data/assets/css/style.scss +5 -0
- data/assets/ecmascripts/index.js +25 -0
- data/assets/images/avatar.png +0 -0
- data/assets/images/background.jpg +0 -0
- data/assets/social-icons.svg +28 -0
- metadata +176 -0
@@ -0,0 +1,326 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./x64-core"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./x64-core"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
(function (Math) {
|
17
|
+
// Shortcuts
|
18
|
+
var C = CryptoJS;
|
19
|
+
var C_lib = C.lib;
|
20
|
+
var WordArray = C_lib.WordArray;
|
21
|
+
var Hasher = C_lib.Hasher;
|
22
|
+
var C_x64 = C.x64;
|
23
|
+
var X64Word = C_x64.Word;
|
24
|
+
var C_algo = C.algo;
|
25
|
+
|
26
|
+
// Constants tables
|
27
|
+
var RHO_OFFSETS = [];
|
28
|
+
var PI_INDEXES = [];
|
29
|
+
var ROUND_CONSTANTS = [];
|
30
|
+
|
31
|
+
// Compute Constants
|
32
|
+
(function () {
|
33
|
+
// Compute rho offset constants
|
34
|
+
var x = 1, y = 0;
|
35
|
+
for (var t = 0; t < 24; t++) {
|
36
|
+
RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;
|
37
|
+
|
38
|
+
var newX = y % 5;
|
39
|
+
var newY = (2 * x + 3 * y) % 5;
|
40
|
+
x = newX;
|
41
|
+
y = newY;
|
42
|
+
}
|
43
|
+
|
44
|
+
// Compute pi index constants
|
45
|
+
for (var x = 0; x < 5; x++) {
|
46
|
+
for (var y = 0; y < 5; y++) {
|
47
|
+
PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
// Compute round constants
|
52
|
+
var LFSR = 0x01;
|
53
|
+
for (var i = 0; i < 24; i++) {
|
54
|
+
var roundConstantMsw = 0;
|
55
|
+
var roundConstantLsw = 0;
|
56
|
+
|
57
|
+
for (var j = 0; j < 7; j++) {
|
58
|
+
if (LFSR & 0x01) {
|
59
|
+
var bitPosition = (1 << j) - 1;
|
60
|
+
if (bitPosition < 32) {
|
61
|
+
roundConstantLsw ^= 1 << bitPosition;
|
62
|
+
} else /* if (bitPosition >= 32) */ {
|
63
|
+
roundConstantMsw ^= 1 << (bitPosition - 32);
|
64
|
+
}
|
65
|
+
}
|
66
|
+
|
67
|
+
// Compute next LFSR
|
68
|
+
if (LFSR & 0x80) {
|
69
|
+
// Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1
|
70
|
+
LFSR = (LFSR << 1) ^ 0x71;
|
71
|
+
} else {
|
72
|
+
LFSR <<= 1;
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);
|
77
|
+
}
|
78
|
+
}());
|
79
|
+
|
80
|
+
// Reusable objects for temporary values
|
81
|
+
var T = [];
|
82
|
+
(function () {
|
83
|
+
for (var i = 0; i < 25; i++) {
|
84
|
+
T[i] = X64Word.create();
|
85
|
+
}
|
86
|
+
}());
|
87
|
+
|
88
|
+
/**
|
89
|
+
* SHA-3 hash algorithm.
|
90
|
+
*/
|
91
|
+
var SHA3 = C_algo.SHA3 = Hasher.extend({
|
92
|
+
/**
|
93
|
+
* Configuration options.
|
94
|
+
*
|
95
|
+
* @property {number} outputLength
|
96
|
+
* The desired number of bits in the output hash.
|
97
|
+
* Only values permitted are: 224, 256, 384, 512.
|
98
|
+
* Default: 512
|
99
|
+
*/
|
100
|
+
cfg: Hasher.cfg.extend({
|
101
|
+
outputLength: 512
|
102
|
+
}),
|
103
|
+
|
104
|
+
_doReset: function () {
|
105
|
+
var state = this._state = []
|
106
|
+
for (var i = 0; i < 25; i++) {
|
107
|
+
state[i] = new X64Word.init();
|
108
|
+
}
|
109
|
+
|
110
|
+
this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;
|
111
|
+
},
|
112
|
+
|
113
|
+
_doProcessBlock: function (M, offset) {
|
114
|
+
// Shortcuts
|
115
|
+
var state = this._state;
|
116
|
+
var nBlockSizeLanes = this.blockSize / 2;
|
117
|
+
|
118
|
+
// Absorb
|
119
|
+
for (var i = 0; i < nBlockSizeLanes; i++) {
|
120
|
+
// Shortcuts
|
121
|
+
var M2i = M[offset + 2 * i];
|
122
|
+
var M2i1 = M[offset + 2 * i + 1];
|
123
|
+
|
124
|
+
// Swap endian
|
125
|
+
M2i = (
|
126
|
+
(((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |
|
127
|
+
(((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)
|
128
|
+
);
|
129
|
+
M2i1 = (
|
130
|
+
(((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |
|
131
|
+
(((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)
|
132
|
+
);
|
133
|
+
|
134
|
+
// Absorb message into state
|
135
|
+
var lane = state[i];
|
136
|
+
lane.high ^= M2i1;
|
137
|
+
lane.low ^= M2i;
|
138
|
+
}
|
139
|
+
|
140
|
+
// Rounds
|
141
|
+
for (var round = 0; round < 24; round++) {
|
142
|
+
// Theta
|
143
|
+
for (var x = 0; x < 5; x++) {
|
144
|
+
// Mix column lanes
|
145
|
+
var tMsw = 0, tLsw = 0;
|
146
|
+
for (var y = 0; y < 5; y++) {
|
147
|
+
var lane = state[x + 5 * y];
|
148
|
+
tMsw ^= lane.high;
|
149
|
+
tLsw ^= lane.low;
|
150
|
+
}
|
151
|
+
|
152
|
+
// Temporary values
|
153
|
+
var Tx = T[x];
|
154
|
+
Tx.high = tMsw;
|
155
|
+
Tx.low = tLsw;
|
156
|
+
}
|
157
|
+
for (var x = 0; x < 5; x++) {
|
158
|
+
// Shortcuts
|
159
|
+
var Tx4 = T[(x + 4) % 5];
|
160
|
+
var Tx1 = T[(x + 1) % 5];
|
161
|
+
var Tx1Msw = Tx1.high;
|
162
|
+
var Tx1Lsw = Tx1.low;
|
163
|
+
|
164
|
+
// Mix surrounding columns
|
165
|
+
var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));
|
166
|
+
var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));
|
167
|
+
for (var y = 0; y < 5; y++) {
|
168
|
+
var lane = state[x + 5 * y];
|
169
|
+
lane.high ^= tMsw;
|
170
|
+
lane.low ^= tLsw;
|
171
|
+
}
|
172
|
+
}
|
173
|
+
|
174
|
+
// Rho Pi
|
175
|
+
for (var laneIndex = 1; laneIndex < 25; laneIndex++) {
|
176
|
+
var tMsw;
|
177
|
+
var tLsw;
|
178
|
+
|
179
|
+
// Shortcuts
|
180
|
+
var lane = state[laneIndex];
|
181
|
+
var laneMsw = lane.high;
|
182
|
+
var laneLsw = lane.low;
|
183
|
+
var rhoOffset = RHO_OFFSETS[laneIndex];
|
184
|
+
|
185
|
+
// Rotate lanes
|
186
|
+
if (rhoOffset < 32) {
|
187
|
+
tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));
|
188
|
+
tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));
|
189
|
+
} else /* if (rhoOffset >= 32) */ {
|
190
|
+
tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));
|
191
|
+
tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));
|
192
|
+
}
|
193
|
+
|
194
|
+
// Transpose lanes
|
195
|
+
var TPiLane = T[PI_INDEXES[laneIndex]];
|
196
|
+
TPiLane.high = tMsw;
|
197
|
+
TPiLane.low = tLsw;
|
198
|
+
}
|
199
|
+
|
200
|
+
// Rho pi at x = y = 0
|
201
|
+
var T0 = T[0];
|
202
|
+
var state0 = state[0];
|
203
|
+
T0.high = state0.high;
|
204
|
+
T0.low = state0.low;
|
205
|
+
|
206
|
+
// Chi
|
207
|
+
for (var x = 0; x < 5; x++) {
|
208
|
+
for (var y = 0; y < 5; y++) {
|
209
|
+
// Shortcuts
|
210
|
+
var laneIndex = x + 5 * y;
|
211
|
+
var lane = state[laneIndex];
|
212
|
+
var TLane = T[laneIndex];
|
213
|
+
var Tx1Lane = T[((x + 1) % 5) + 5 * y];
|
214
|
+
var Tx2Lane = T[((x + 2) % 5) + 5 * y];
|
215
|
+
|
216
|
+
// Mix rows
|
217
|
+
lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);
|
218
|
+
lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);
|
219
|
+
}
|
220
|
+
}
|
221
|
+
|
222
|
+
// Iota
|
223
|
+
var lane = state[0];
|
224
|
+
var roundConstant = ROUND_CONSTANTS[round];
|
225
|
+
lane.high ^= roundConstant.high;
|
226
|
+
lane.low ^= roundConstant.low;
|
227
|
+
}
|
228
|
+
},
|
229
|
+
|
230
|
+
_doFinalize: function () {
|
231
|
+
// Shortcuts
|
232
|
+
var data = this._data;
|
233
|
+
var dataWords = data.words;
|
234
|
+
var nBitsTotal = this._nDataBytes * 8;
|
235
|
+
var nBitsLeft = data.sigBytes * 8;
|
236
|
+
var blockSizeBits = this.blockSize * 32;
|
237
|
+
|
238
|
+
// Add padding
|
239
|
+
dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);
|
240
|
+
dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;
|
241
|
+
data.sigBytes = dataWords.length * 4;
|
242
|
+
|
243
|
+
// Hash final blocks
|
244
|
+
this._process();
|
245
|
+
|
246
|
+
// Shortcuts
|
247
|
+
var state = this._state;
|
248
|
+
var outputLengthBytes = this.cfg.outputLength / 8;
|
249
|
+
var outputLengthLanes = outputLengthBytes / 8;
|
250
|
+
|
251
|
+
// Squeeze
|
252
|
+
var hashWords = [];
|
253
|
+
for (var i = 0; i < outputLengthLanes; i++) {
|
254
|
+
// Shortcuts
|
255
|
+
var lane = state[i];
|
256
|
+
var laneMsw = lane.high;
|
257
|
+
var laneLsw = lane.low;
|
258
|
+
|
259
|
+
// Swap endian
|
260
|
+
laneMsw = (
|
261
|
+
(((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |
|
262
|
+
(((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)
|
263
|
+
);
|
264
|
+
laneLsw = (
|
265
|
+
(((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |
|
266
|
+
(((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)
|
267
|
+
);
|
268
|
+
|
269
|
+
// Squeeze state to retrieve hash
|
270
|
+
hashWords.push(laneLsw);
|
271
|
+
hashWords.push(laneMsw);
|
272
|
+
}
|
273
|
+
|
274
|
+
// Return final computed hash
|
275
|
+
return new WordArray.init(hashWords, outputLengthBytes);
|
276
|
+
},
|
277
|
+
|
278
|
+
clone: function () {
|
279
|
+
var clone = Hasher.clone.call(this);
|
280
|
+
|
281
|
+
var state = clone._state = this._state.slice(0);
|
282
|
+
for (var i = 0; i < 25; i++) {
|
283
|
+
state[i] = state[i].clone();
|
284
|
+
}
|
285
|
+
|
286
|
+
return clone;
|
287
|
+
}
|
288
|
+
});
|
289
|
+
|
290
|
+
/**
|
291
|
+
* Shortcut function to the hasher's object interface.
|
292
|
+
*
|
293
|
+
* @param {WordArray|string} message The message to hash.
|
294
|
+
*
|
295
|
+
* @return {WordArray} The hash.
|
296
|
+
*
|
297
|
+
* @static
|
298
|
+
*
|
299
|
+
* @example
|
300
|
+
*
|
301
|
+
* var hash = CryptoJS.SHA3('message');
|
302
|
+
* var hash = CryptoJS.SHA3(wordArray);
|
303
|
+
*/
|
304
|
+
C.SHA3 = Hasher._createHelper(SHA3);
|
305
|
+
|
306
|
+
/**
|
307
|
+
* Shortcut function to the HMAC's object interface.
|
308
|
+
*
|
309
|
+
* @param {WordArray|string} message The message to hash.
|
310
|
+
* @param {WordArray|string} key The secret key.
|
311
|
+
*
|
312
|
+
* @return {WordArray} The HMAC.
|
313
|
+
*
|
314
|
+
* @static
|
315
|
+
*
|
316
|
+
* @example
|
317
|
+
*
|
318
|
+
* var hmac = CryptoJS.HmacSHA3(message, key);
|
319
|
+
*/
|
320
|
+
C.HmacSHA3 = Hasher._createHmacHelper(SHA3);
|
321
|
+
}(Math));
|
322
|
+
|
323
|
+
|
324
|
+
return CryptoJS.SHA3;
|
325
|
+
|
326
|
+
}));
|
@@ -0,0 +1,83 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./x64-core", "./sha512"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
(function () {
|
17
|
+
// Shortcuts
|
18
|
+
var C = CryptoJS;
|
19
|
+
var C_x64 = C.x64;
|
20
|
+
var X64Word = C_x64.Word;
|
21
|
+
var X64WordArray = C_x64.WordArray;
|
22
|
+
var C_algo = C.algo;
|
23
|
+
var SHA512 = C_algo.SHA512;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* SHA-384 hash algorithm.
|
27
|
+
*/
|
28
|
+
var SHA384 = C_algo.SHA384 = SHA512.extend({
|
29
|
+
_doReset: function () {
|
30
|
+
this._hash = new X64WordArray.init([
|
31
|
+
new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),
|
32
|
+
new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),
|
33
|
+
new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),
|
34
|
+
new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)
|
35
|
+
]);
|
36
|
+
},
|
37
|
+
|
38
|
+
_doFinalize: function () {
|
39
|
+
var hash = SHA512._doFinalize.call(this);
|
40
|
+
|
41
|
+
hash.sigBytes -= 16;
|
42
|
+
|
43
|
+
return hash;
|
44
|
+
}
|
45
|
+
});
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Shortcut function to the hasher's object interface.
|
49
|
+
*
|
50
|
+
* @param {WordArray|string} message The message to hash.
|
51
|
+
*
|
52
|
+
* @return {WordArray} The hash.
|
53
|
+
*
|
54
|
+
* @static
|
55
|
+
*
|
56
|
+
* @example
|
57
|
+
*
|
58
|
+
* var hash = CryptoJS.SHA384('message');
|
59
|
+
* var hash = CryptoJS.SHA384(wordArray);
|
60
|
+
*/
|
61
|
+
C.SHA384 = SHA512._createHelper(SHA384);
|
62
|
+
|
63
|
+
/**
|
64
|
+
* Shortcut function to the HMAC's object interface.
|
65
|
+
*
|
66
|
+
* @param {WordArray|string} message The message to hash.
|
67
|
+
* @param {WordArray|string} key The secret key.
|
68
|
+
*
|
69
|
+
* @return {WordArray} The HMAC.
|
70
|
+
*
|
71
|
+
* @static
|
72
|
+
*
|
73
|
+
* @example
|
74
|
+
*
|
75
|
+
* var hmac = CryptoJS.HmacSHA384(message, key);
|
76
|
+
*/
|
77
|
+
C.HmacSHA384 = SHA512._createHmacHelper(SHA384);
|
78
|
+
}());
|
79
|
+
|
80
|
+
|
81
|
+
return CryptoJS.SHA384;
|
82
|
+
|
83
|
+
}));
|