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,149 @@
|
|
1
|
+
;(function (root, factory) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core"], 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_lib = C.lib;
|
20
|
+
var WordArray = C_lib.WordArray;
|
21
|
+
var C_enc = C.enc;
|
22
|
+
|
23
|
+
/**
|
24
|
+
* UTF-16 BE encoding strategy.
|
25
|
+
*/
|
26
|
+
var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {
|
27
|
+
/**
|
28
|
+
* Converts a word array to a UTF-16 BE string.
|
29
|
+
*
|
30
|
+
* @param {WordArray} wordArray The word array.
|
31
|
+
*
|
32
|
+
* @return {string} The UTF-16 BE string.
|
33
|
+
*
|
34
|
+
* @static
|
35
|
+
*
|
36
|
+
* @example
|
37
|
+
*
|
38
|
+
* var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);
|
39
|
+
*/
|
40
|
+
stringify: function (wordArray) {
|
41
|
+
// Shortcuts
|
42
|
+
var words = wordArray.words;
|
43
|
+
var sigBytes = wordArray.sigBytes;
|
44
|
+
|
45
|
+
// Convert
|
46
|
+
var utf16Chars = [];
|
47
|
+
for (var i = 0; i < sigBytes; i += 2) {
|
48
|
+
var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;
|
49
|
+
utf16Chars.push(String.fromCharCode(codePoint));
|
50
|
+
}
|
51
|
+
|
52
|
+
return utf16Chars.join('');
|
53
|
+
},
|
54
|
+
|
55
|
+
/**
|
56
|
+
* Converts a UTF-16 BE string to a word array.
|
57
|
+
*
|
58
|
+
* @param {string} utf16Str The UTF-16 BE string.
|
59
|
+
*
|
60
|
+
* @return {WordArray} The word array.
|
61
|
+
*
|
62
|
+
* @static
|
63
|
+
*
|
64
|
+
* @example
|
65
|
+
*
|
66
|
+
* var wordArray = CryptoJS.enc.Utf16.parse(utf16String);
|
67
|
+
*/
|
68
|
+
parse: function (utf16Str) {
|
69
|
+
// Shortcut
|
70
|
+
var utf16StrLength = utf16Str.length;
|
71
|
+
|
72
|
+
// Convert
|
73
|
+
var words = [];
|
74
|
+
for (var i = 0; i < utf16StrLength; i++) {
|
75
|
+
words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);
|
76
|
+
}
|
77
|
+
|
78
|
+
return WordArray.create(words, utf16StrLength * 2);
|
79
|
+
}
|
80
|
+
};
|
81
|
+
|
82
|
+
/**
|
83
|
+
* UTF-16 LE encoding strategy.
|
84
|
+
*/
|
85
|
+
C_enc.Utf16LE = {
|
86
|
+
/**
|
87
|
+
* Converts a word array to a UTF-16 LE string.
|
88
|
+
*
|
89
|
+
* @param {WordArray} wordArray The word array.
|
90
|
+
*
|
91
|
+
* @return {string} The UTF-16 LE string.
|
92
|
+
*
|
93
|
+
* @static
|
94
|
+
*
|
95
|
+
* @example
|
96
|
+
*
|
97
|
+
* var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);
|
98
|
+
*/
|
99
|
+
stringify: function (wordArray) {
|
100
|
+
// Shortcuts
|
101
|
+
var words = wordArray.words;
|
102
|
+
var sigBytes = wordArray.sigBytes;
|
103
|
+
|
104
|
+
// Convert
|
105
|
+
var utf16Chars = [];
|
106
|
+
for (var i = 0; i < sigBytes; i += 2) {
|
107
|
+
var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);
|
108
|
+
utf16Chars.push(String.fromCharCode(codePoint));
|
109
|
+
}
|
110
|
+
|
111
|
+
return utf16Chars.join('');
|
112
|
+
},
|
113
|
+
|
114
|
+
/**
|
115
|
+
* Converts a UTF-16 LE string to a word array.
|
116
|
+
*
|
117
|
+
* @param {string} utf16Str The UTF-16 LE string.
|
118
|
+
*
|
119
|
+
* @return {WordArray} The word array.
|
120
|
+
*
|
121
|
+
* @static
|
122
|
+
*
|
123
|
+
* @example
|
124
|
+
*
|
125
|
+
* var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);
|
126
|
+
*/
|
127
|
+
parse: function (utf16Str) {
|
128
|
+
// Shortcut
|
129
|
+
var utf16StrLength = utf16Str.length;
|
130
|
+
|
131
|
+
// Convert
|
132
|
+
var words = [];
|
133
|
+
for (var i = 0; i < utf16StrLength; i++) {
|
134
|
+
words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));
|
135
|
+
}
|
136
|
+
|
137
|
+
return WordArray.create(words, utf16StrLength * 2);
|
138
|
+
}
|
139
|
+
};
|
140
|
+
|
141
|
+
function swapEndian(word) {
|
142
|
+
return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);
|
143
|
+
}
|
144
|
+
}());
|
145
|
+
|
146
|
+
|
147
|
+
return CryptoJS.enc.Utf16;
|
148
|
+
|
149
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.enc.Utf8;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,134 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./sha1", "./hmac"], 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_lib = C.lib;
|
20
|
+
var Base = C_lib.Base;
|
21
|
+
var WordArray = C_lib.WordArray;
|
22
|
+
var C_algo = C.algo;
|
23
|
+
var MD5 = C_algo.MD5;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* This key derivation function is meant to conform with EVP_BytesToKey.
|
27
|
+
* www.openssl.org/docs/crypto/EVP_BytesToKey.html
|
28
|
+
*/
|
29
|
+
var EvpKDF = C_algo.EvpKDF = Base.extend({
|
30
|
+
/**
|
31
|
+
* Configuration options.
|
32
|
+
*
|
33
|
+
* @property {number} keySize The key size in words to generate. Default: 4 (128 bits)
|
34
|
+
* @property {Hasher} hasher The hash algorithm to use. Default: MD5
|
35
|
+
* @property {number} iterations The number of iterations to perform. Default: 1
|
36
|
+
*/
|
37
|
+
cfg: Base.extend({
|
38
|
+
keySize: 128/32,
|
39
|
+
hasher: MD5,
|
40
|
+
iterations: 1
|
41
|
+
}),
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Initializes a newly created key derivation function.
|
45
|
+
*
|
46
|
+
* @param {Object} cfg (Optional) The configuration options to use for the derivation.
|
47
|
+
*
|
48
|
+
* @example
|
49
|
+
*
|
50
|
+
* var kdf = CryptoJS.algo.EvpKDF.create();
|
51
|
+
* var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });
|
52
|
+
* var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });
|
53
|
+
*/
|
54
|
+
init: function (cfg) {
|
55
|
+
this.cfg = this.cfg.extend(cfg);
|
56
|
+
},
|
57
|
+
|
58
|
+
/**
|
59
|
+
* Derives a key from a password.
|
60
|
+
*
|
61
|
+
* @param {WordArray|string} password The password.
|
62
|
+
* @param {WordArray|string} salt A salt.
|
63
|
+
*
|
64
|
+
* @return {WordArray} The derived key.
|
65
|
+
*
|
66
|
+
* @example
|
67
|
+
*
|
68
|
+
* var key = kdf.compute(password, salt);
|
69
|
+
*/
|
70
|
+
compute: function (password, salt) {
|
71
|
+
var block;
|
72
|
+
|
73
|
+
// Shortcut
|
74
|
+
var cfg = this.cfg;
|
75
|
+
|
76
|
+
// Init hasher
|
77
|
+
var hasher = cfg.hasher.create();
|
78
|
+
|
79
|
+
// Initial values
|
80
|
+
var derivedKey = WordArray.create();
|
81
|
+
|
82
|
+
// Shortcuts
|
83
|
+
var derivedKeyWords = derivedKey.words;
|
84
|
+
var keySize = cfg.keySize;
|
85
|
+
var iterations = cfg.iterations;
|
86
|
+
|
87
|
+
// Generate key
|
88
|
+
while (derivedKeyWords.length < keySize) {
|
89
|
+
if (block) {
|
90
|
+
hasher.update(block);
|
91
|
+
}
|
92
|
+
block = hasher.update(password).finalize(salt);
|
93
|
+
hasher.reset();
|
94
|
+
|
95
|
+
// Iterations
|
96
|
+
for (var i = 1; i < iterations; i++) {
|
97
|
+
block = hasher.finalize(block);
|
98
|
+
hasher.reset();
|
99
|
+
}
|
100
|
+
|
101
|
+
derivedKey.concat(block);
|
102
|
+
}
|
103
|
+
derivedKey.sigBytes = keySize * 4;
|
104
|
+
|
105
|
+
return derivedKey;
|
106
|
+
}
|
107
|
+
});
|
108
|
+
|
109
|
+
/**
|
110
|
+
* Derives a key from a password.
|
111
|
+
*
|
112
|
+
* @param {WordArray|string} password The password.
|
113
|
+
* @param {WordArray|string} salt A salt.
|
114
|
+
* @param {Object} cfg (Optional) The configuration options to use for this computation.
|
115
|
+
*
|
116
|
+
* @return {WordArray} The derived key.
|
117
|
+
*
|
118
|
+
* @static
|
119
|
+
*
|
120
|
+
* @example
|
121
|
+
*
|
122
|
+
* var key = CryptoJS.EvpKDF(password, salt);
|
123
|
+
* var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });
|
124
|
+
* var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });
|
125
|
+
*/
|
126
|
+
C.EvpKDF = function (password, salt, cfg) {
|
127
|
+
return EvpKDF.create(cfg).compute(password, salt);
|
128
|
+
};
|
129
|
+
}());
|
130
|
+
|
131
|
+
|
132
|
+
return CryptoJS.EvpKDF;
|
133
|
+
|
134
|
+
}));
|
@@ -0,0 +1,66 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./cipher-core"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./cipher-core"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
(function (undefined) {
|
17
|
+
// Shortcuts
|
18
|
+
var C = CryptoJS;
|
19
|
+
var C_lib = C.lib;
|
20
|
+
var CipherParams = C_lib.CipherParams;
|
21
|
+
var C_enc = C.enc;
|
22
|
+
var Hex = C_enc.Hex;
|
23
|
+
var C_format = C.format;
|
24
|
+
|
25
|
+
var HexFormatter = C_format.Hex = {
|
26
|
+
/**
|
27
|
+
* Converts the ciphertext of a cipher params object to a hexadecimally encoded string.
|
28
|
+
*
|
29
|
+
* @param {CipherParams} cipherParams The cipher params object.
|
30
|
+
*
|
31
|
+
* @return {string} The hexadecimally encoded string.
|
32
|
+
*
|
33
|
+
* @static
|
34
|
+
*
|
35
|
+
* @example
|
36
|
+
*
|
37
|
+
* var hexString = CryptoJS.format.Hex.stringify(cipherParams);
|
38
|
+
*/
|
39
|
+
stringify: function (cipherParams) {
|
40
|
+
return cipherParams.ciphertext.toString(Hex);
|
41
|
+
},
|
42
|
+
|
43
|
+
/**
|
44
|
+
* Converts a hexadecimally encoded ciphertext string to a cipher params object.
|
45
|
+
*
|
46
|
+
* @param {string} input The hexadecimally encoded string.
|
47
|
+
*
|
48
|
+
* @return {CipherParams} The cipher params object.
|
49
|
+
*
|
50
|
+
* @static
|
51
|
+
*
|
52
|
+
* @example
|
53
|
+
*
|
54
|
+
* var cipherParams = CryptoJS.format.Hex.parse(hexString);
|
55
|
+
*/
|
56
|
+
parse: function (input) {
|
57
|
+
var ciphertext = Hex.parse(input);
|
58
|
+
return CipherParams.create({ ciphertext: ciphertext });
|
59
|
+
}
|
60
|
+
};
|
61
|
+
}());
|
62
|
+
|
63
|
+
|
64
|
+
return CryptoJS.format.Hex;
|
65
|
+
|
66
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./cipher-core"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./cipher-core"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.format.OpenSSL;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./md5"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./md5", "./hmac"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.HmacMD5;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./ripemd160"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./ripemd160", "./hmac"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.HmacRIPEMD160;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./sha1"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./sha1", "./hmac"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.HmacSHA1;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./sha256"), require("./sha224"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./sha256", "./sha224", "./hmac"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.HmacSHA224;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./sha256"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./sha256", "./hmac"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.HmacSHA256;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha3"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./x64-core", "./sha3", "./hmac"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.HmacSHA3;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./sha384"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./x64-core", "./sha512", "./sha384", "./hmac"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.HmacSHA384;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,18 @@
|
|
1
|
+
;(function (root, factory, undef) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"), require("./x64-core"), require("./sha512"), require("./hmac"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core", "./x64-core", "./sha512", "./hmac"], factory);
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
// Global (browser)
|
12
|
+
factory(root.CryptoJS);
|
13
|
+
}
|
14
|
+
}(this, function (CryptoJS) {
|
15
|
+
|
16
|
+
return CryptoJS.HmacSHA512;
|
17
|
+
|
18
|
+
}));
|
@@ -0,0 +1,143 @@
|
|
1
|
+
;(function (root, factory) {
|
2
|
+
if (typeof exports === "object") {
|
3
|
+
// CommonJS
|
4
|
+
module.exports = exports = factory(require("./core"));
|
5
|
+
}
|
6
|
+
else if (typeof define === "function" && define.amd) {
|
7
|
+
// AMD
|
8
|
+
define(["./core"], 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_lib = C.lib;
|
20
|
+
var Base = C_lib.Base;
|
21
|
+
var C_enc = C.enc;
|
22
|
+
var Utf8 = C_enc.Utf8;
|
23
|
+
var C_algo = C.algo;
|
24
|
+
|
25
|
+
/**
|
26
|
+
* HMAC algorithm.
|
27
|
+
*/
|
28
|
+
var HMAC = C_algo.HMAC = Base.extend({
|
29
|
+
/**
|
30
|
+
* Initializes a newly created HMAC.
|
31
|
+
*
|
32
|
+
* @param {Hasher} hasher The hash algorithm to use.
|
33
|
+
* @param {WordArray|string} key The secret key.
|
34
|
+
*
|
35
|
+
* @example
|
36
|
+
*
|
37
|
+
* var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);
|
38
|
+
*/
|
39
|
+
init: function (hasher, key) {
|
40
|
+
// Init hasher
|
41
|
+
hasher = this._hasher = new hasher.init();
|
42
|
+
|
43
|
+
// Convert string to WordArray, else assume WordArray already
|
44
|
+
if (typeof key == 'string') {
|
45
|
+
key = Utf8.parse(key);
|
46
|
+
}
|
47
|
+
|
48
|
+
// Shortcuts
|
49
|
+
var hasherBlockSize = hasher.blockSize;
|
50
|
+
var hasherBlockSizeBytes = hasherBlockSize * 4;
|
51
|
+
|
52
|
+
// Allow arbitrary length keys
|
53
|
+
if (key.sigBytes > hasherBlockSizeBytes) {
|
54
|
+
key = hasher.finalize(key);
|
55
|
+
}
|
56
|
+
|
57
|
+
// Clamp excess bits
|
58
|
+
key.clamp();
|
59
|
+
|
60
|
+
// Clone key for inner and outer pads
|
61
|
+
var oKey = this._oKey = key.clone();
|
62
|
+
var iKey = this._iKey = key.clone();
|
63
|
+
|
64
|
+
// Shortcuts
|
65
|
+
var oKeyWords = oKey.words;
|
66
|
+
var iKeyWords = iKey.words;
|
67
|
+
|
68
|
+
// XOR keys with pad constants
|
69
|
+
for (var i = 0; i < hasherBlockSize; i++) {
|
70
|
+
oKeyWords[i] ^= 0x5c5c5c5c;
|
71
|
+
iKeyWords[i] ^= 0x36363636;
|
72
|
+
}
|
73
|
+
oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;
|
74
|
+
|
75
|
+
// Set initial values
|
76
|
+
this.reset();
|
77
|
+
},
|
78
|
+
|
79
|
+
/**
|
80
|
+
* Resets this HMAC to its initial state.
|
81
|
+
*
|
82
|
+
* @example
|
83
|
+
*
|
84
|
+
* hmacHasher.reset();
|
85
|
+
*/
|
86
|
+
reset: function () {
|
87
|
+
// Shortcut
|
88
|
+
var hasher = this._hasher;
|
89
|
+
|
90
|
+
// Reset
|
91
|
+
hasher.reset();
|
92
|
+
hasher.update(this._iKey);
|
93
|
+
},
|
94
|
+
|
95
|
+
/**
|
96
|
+
* Updates this HMAC with a message.
|
97
|
+
*
|
98
|
+
* @param {WordArray|string} messageUpdate The message to append.
|
99
|
+
*
|
100
|
+
* @return {HMAC} This HMAC instance.
|
101
|
+
*
|
102
|
+
* @example
|
103
|
+
*
|
104
|
+
* hmacHasher.update('message');
|
105
|
+
* hmacHasher.update(wordArray);
|
106
|
+
*/
|
107
|
+
update: function (messageUpdate) {
|
108
|
+
this._hasher.update(messageUpdate);
|
109
|
+
|
110
|
+
// Chainable
|
111
|
+
return this;
|
112
|
+
},
|
113
|
+
|
114
|
+
/**
|
115
|
+
* Finalizes the HMAC computation.
|
116
|
+
* Note that the finalize operation is effectively a destructive, read-once operation.
|
117
|
+
*
|
118
|
+
* @param {WordArray|string} messageUpdate (Optional) A final message update.
|
119
|
+
*
|
120
|
+
* @return {WordArray} The HMAC.
|
121
|
+
*
|
122
|
+
* @example
|
123
|
+
*
|
124
|
+
* var hmac = hmacHasher.finalize();
|
125
|
+
* var hmac = hmacHasher.finalize('message');
|
126
|
+
* var hmac = hmacHasher.finalize(wordArray);
|
127
|
+
*/
|
128
|
+
finalize: function (messageUpdate) {
|
129
|
+
// Shortcut
|
130
|
+
var hasher = this._hasher;
|
131
|
+
|
132
|
+
// Compute HMAC
|
133
|
+
var innerHash = hasher.finalize(messageUpdate);
|
134
|
+
hasher.reset();
|
135
|
+
var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));
|
136
|
+
|
137
|
+
return hmac;
|
138
|
+
}
|
139
|
+
});
|
140
|
+
}());
|
141
|
+
|
142
|
+
|
143
|
+
}));
|