pixel-react 1.15.21 → 1.15.23

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.
Files changed (208) hide show
  1. package/lib/_virtual/aesCipherSuites.js +4 -0
  2. package/lib/_virtual/aesCipherSuites.js.map +1 -0
  3. package/lib/_virtual/asn1-validator.js +4 -0
  4. package/lib/_virtual/asn1-validator.js.map +1 -0
  5. package/lib/_virtual/asn1.js +4 -0
  6. package/lib/_virtual/asn1.js.map +1 -0
  7. package/lib/_virtual/cipherModes.js +4 -0
  8. package/lib/_virtual/cipherModes.js.map +1 -0
  9. package/lib/_virtual/hmac.js +4 -0
  10. package/lib/_virtual/hmac.js.map +1 -0
  11. package/lib/_virtual/index11.js +2 -2
  12. package/lib/_virtual/index12.js +2 -2
  13. package/lib/_virtual/index13.js +2 -2
  14. package/lib/_virtual/index14.js +4 -0
  15. package/lib/_virtual/index14.js.map +1 -0
  16. package/lib/_virtual/index2.js +5 -3
  17. package/lib/_virtual/index2.js.map +1 -1
  18. package/lib/_virtual/index3.js +4 -2
  19. package/lib/_virtual/index3.js.map +1 -1
  20. package/lib/_virtual/index4.js +2 -4
  21. package/lib/_virtual/index4.js.map +1 -1
  22. package/lib/_virtual/index5.js +4 -2
  23. package/lib/_virtual/index5.js.map +1 -1
  24. package/lib/_virtual/index6.js +2 -2
  25. package/lib/_virtual/index7.js +2 -6
  26. package/lib/_virtual/index7.js.map +1 -1
  27. package/lib/_virtual/index8.js +6 -2
  28. package/lib/_virtual/index8.js.map +1 -1
  29. package/lib/_virtual/index9.js +2 -2
  30. package/lib/_virtual/md5.js +4 -0
  31. package/lib/_virtual/md5.js.map +1 -0
  32. package/lib/_virtual/mgf1.js +4 -0
  33. package/lib/_virtual/mgf1.js.map +1 -0
  34. package/lib/_virtual/oids.js +4 -0
  35. package/lib/_virtual/oids.js.map +1 -0
  36. package/lib/_virtual/pem.js +4 -0
  37. package/lib/_virtual/pem.js.map +1 -0
  38. package/lib/_virtual/pkcs1.js +4 -0
  39. package/lib/_virtual/pkcs1.js.map +1 -0
  40. package/lib/_virtual/pkcs12.js +4 -0
  41. package/lib/_virtual/pkcs12.js.map +1 -0
  42. package/lib/_virtual/pkcs7.js +4 -0
  43. package/lib/_virtual/pkcs7.js.map +1 -0
  44. package/lib/_virtual/pkcs7asn1.js +4 -0
  45. package/lib/_virtual/pkcs7asn1.js.map +1 -0
  46. package/lib/_virtual/pki.js +4 -0
  47. package/lib/_virtual/pki.js.map +1 -0
  48. package/lib/_virtual/prime.js +4 -0
  49. package/lib/_virtual/prime.js.map +1 -0
  50. package/lib/_virtual/prng.js +4 -0
  51. package/lib/_virtual/prng.js.map +1 -0
  52. package/lib/_virtual/pss.js +4 -0
  53. package/lib/_virtual/pss.js.map +1 -0
  54. package/lib/_virtual/random.js +4 -0
  55. package/lib/_virtual/random.js.map +1 -0
  56. package/lib/_virtual/sha1.js +4 -0
  57. package/lib/_virtual/sha1.js.map +1 -0
  58. package/lib/_virtual/sha256.js +4 -0
  59. package/lib/_virtual/sha256.js.map +1 -0
  60. package/lib/_virtual/sha512.js +4 -0
  61. package/lib/_virtual/sha512.js.map +1 -0
  62. package/lib/_virtual/ssh.js +4 -0
  63. package/lib/_virtual/ssh.js.map +1 -0
  64. package/lib/_virtual/util.js +4 -0
  65. package/lib/_virtual/util.js.map +1 -0
  66. package/lib/_virtual/x509.js +4 -0
  67. package/lib/_virtual/x509.js.map +1 -0
  68. package/lib/assets/icons/testify_icon.svg.js +6 -0
  69. package/lib/assets/icons/testify_icon.svg.js.map +1 -0
  70. package/lib/assets/icons/testify_loader.svg.js +6 -0
  71. package/lib/assets/icons/testify_loader.svg.js.map +1 -0
  72. package/lib/assets/icons/testify_logo_name.svg.js +6 -0
  73. package/lib/assets/icons/testify_logo_name.svg.js.map +1 -0
  74. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js +3 -1
  75. package/lib/components/AllProjectsDropdown/AllProjectsDropdown.js.map +1 -1
  76. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.js +2 -9
  77. package/lib/components/Charts/DashboardDonutChart/DashboardDonutChart.js.map +1 -1
  78. package/lib/components/Charts/DashboardDonutChart/types.d.ts +1 -1
  79. package/lib/components/ConditionalDropdown/ConditionalDropdown.js +2 -9
  80. package/lib/components/ConditionalDropdown/ConditionalDropdown.js.map +1 -1
  81. package/lib/components/Editor/Editor.js +37 -17
  82. package/lib/components/Editor/Editor.js.map +1 -1
  83. package/lib/components/Icon/iconList.js +6 -0
  84. package/lib/components/Icon/iconList.js.map +1 -1
  85. package/lib/components/MultiSelect/MultiSelect.js +9 -10
  86. package/lib/components/MultiSelect/MultiSelect.js.map +1 -1
  87. package/lib/components/PhoneInput/PhoneInput.js +1 -0
  88. package/lib/components/PhoneInput/PhoneInput.js.map +1 -1
  89. package/lib/components/SessionDropdown/SessionDropdown.js +4 -2
  90. package/lib/components/SessionDropdown/SessionDropdown.js.map +1 -1
  91. package/lib/index.cjs +27423 -379
  92. package/lib/index.cjs.map +1 -1
  93. package/lib/index.d.ts +1 -1
  94. package/lib/node_modules/classnames/index.js +1 -1
  95. package/lib/node_modules/input-format/modules/react/Input.js +1 -1
  96. package/lib/node_modules/js-beautify/js/index.js +1 -1
  97. package/lib/node_modules/js-beautify/js/src/html/beautifier.js +1 -1
  98. package/lib/node_modules/js-beautify/js/src/html/index.js +1 -1
  99. package/lib/node_modules/js-beautify/js/src/html/options.js +1 -1
  100. package/lib/node_modules/js-beautify/js/src/html/tokenizer.js +1 -1
  101. package/lib/node_modules/js-beautify/js/src/index.js +1 -1
  102. package/lib/node_modules/js-beautify/js/src/javascript/beautifier.js +1 -1
  103. package/lib/node_modules/js-beautify/js/src/javascript/index.js +1 -1
  104. package/lib/node_modules/js-beautify/js/src/javascript/options.js +1 -1
  105. package/lib/node_modules/js-beautify/js/src/javascript/tokenizer.js +1 -1
  106. package/lib/node_modules/node-forge/lib/aes.js +1014 -0
  107. package/lib/node_modules/node-forge/lib/aes.js.map +1 -0
  108. package/lib/node_modules/node-forge/lib/aesCipherSuites.js +286 -0
  109. package/lib/node_modules/node-forge/lib/aesCipherSuites.js.map +1 -0
  110. package/lib/node_modules/node-forge/lib/asn1-validator.js +100 -0
  111. package/lib/node_modules/node-forge/lib/asn1-validator.js.map +1 -0
  112. package/lib/node_modules/node-forge/lib/asn1.js +1379 -0
  113. package/lib/node_modules/node-forge/lib/asn1.js.map +1 -0
  114. package/lib/node_modules/node-forge/lib/baseN.js +181 -0
  115. package/lib/node_modules/node-forge/lib/baseN.js.map +1 -0
  116. package/lib/node_modules/node-forge/lib/cipher.js +236 -0
  117. package/lib/node_modules/node-forge/lib/cipher.js.map +1 -0
  118. package/lib/node_modules/node-forge/lib/cipherModes.js +936 -0
  119. package/lib/node_modules/node-forge/lib/cipherModes.js.map +1 -0
  120. package/lib/node_modules/node-forge/lib/des.js +467 -0
  121. package/lib/node_modules/node-forge/lib/des.js.map +1 -0
  122. package/lib/node_modules/node-forge/lib/ed25519.js +1108 -0
  123. package/lib/node_modules/node-forge/lib/ed25519.js.map +1 -0
  124. package/lib/node_modules/node-forge/lib/forge.js +23 -0
  125. package/lib/node_modules/node-forge/lib/forge.js.map +1 -0
  126. package/lib/node_modules/node-forge/lib/hmac.js +158 -0
  127. package/lib/node_modules/node-forge/lib/hmac.js.map +1 -0
  128. package/lib/node_modules/node-forge/lib/index.js +70 -0
  129. package/lib/node_modules/node-forge/lib/index.js.map +1 -0
  130. package/lib/node_modules/node-forge/lib/jsbn.js +1481 -0
  131. package/lib/node_modules/node-forge/lib/jsbn.js.map +1 -0
  132. package/lib/node_modules/node-forge/lib/kem.js +178 -0
  133. package/lib/node_modules/node-forge/lib/kem.js.map +1 -0
  134. package/lib/node_modules/node-forge/lib/log.js +325 -0
  135. package/lib/node_modules/node-forge/lib/log.js.map +1 -0
  136. package/lib/node_modules/node-forge/lib/md.all.js +28 -0
  137. package/lib/node_modules/node-forge/lib/md.all.js.map +1 -0
  138. package/lib/node_modules/node-forge/lib/md.js +22 -0
  139. package/lib/node_modules/node-forge/lib/md.js.map +1 -0
  140. package/lib/node_modules/node-forge/lib/md5.js +288 -0
  141. package/lib/node_modules/node-forge/lib/md5.js.map +1 -0
  142. package/lib/node_modules/node-forge/lib/mgf.js +24 -0
  143. package/lib/node_modules/node-forge/lib/mgf.js.map +1 -0
  144. package/lib/node_modules/node-forge/lib/mgf1.js +68 -0
  145. package/lib/node_modules/node-forge/lib/mgf1.js.map +1 -0
  146. package/lib/node_modules/node-forge/lib/oids.js +185 -0
  147. package/lib/node_modules/node-forge/lib/oids.js.map +1 -0
  148. package/lib/node_modules/node-forge/lib/pbe.js +966 -0
  149. package/lib/node_modules/node-forge/lib/pbe.js.map +1 -0
  150. package/lib/node_modules/node-forge/lib/pbkdf2.js +209 -0
  151. package/lib/node_modules/node-forge/lib/pbkdf2.js.map +1 -0
  152. package/lib/node_modules/node-forge/lib/pem.js +250 -0
  153. package/lib/node_modules/node-forge/lib/pem.js.map +1 -0
  154. package/lib/node_modules/node-forge/lib/pkcs1.js +273 -0
  155. package/lib/node_modules/node-forge/lib/pkcs1.js.map +1 -0
  156. package/lib/node_modules/node-forge/lib/pkcs12.js +980 -0
  157. package/lib/node_modules/node-forge/lib/pkcs12.js.map +1 -0
  158. package/lib/node_modules/node-forge/lib/pkcs7.js +1073 -0
  159. package/lib/node_modules/node-forge/lib/pkcs7.js.map +1 -0
  160. package/lib/node_modules/node-forge/lib/pkcs7asn1.js +415 -0
  161. package/lib/node_modules/node-forge/lib/pkcs7asn1.js.map +1 -0
  162. package/lib/node_modules/node-forge/lib/pki.js +125 -0
  163. package/lib/node_modules/node-forge/lib/pki.js.map +1 -0
  164. package/lib/node_modules/node-forge/lib/prime.js +297 -0
  165. package/lib/node_modules/node-forge/lib/prime.js.map +1 -0
  166. package/lib/node_modules/node-forge/lib/prng.js +433 -0
  167. package/lib/node_modules/node-forge/lib/prng.js.map +1 -0
  168. package/lib/node_modules/node-forge/lib/pss.js +246 -0
  169. package/lib/node_modules/node-forge/lib/pss.js.map +1 -0
  170. package/lib/node_modules/node-forge/lib/random.js +191 -0
  171. package/lib/node_modules/node-forge/lib/random.js.map +1 -0
  172. package/lib/node_modules/node-forge/lib/rc2.js +382 -0
  173. package/lib/node_modules/node-forge/lib/rc2.js.map +1 -0
  174. package/lib/node_modules/node-forge/lib/rsa.js +1815 -0
  175. package/lib/node_modules/node-forge/lib/rsa.js.map +1 -0
  176. package/lib/node_modules/node-forge/lib/sha1.js +325 -0
  177. package/lib/node_modules/node-forge/lib/sha1.js.map +1 -0
  178. package/lib/node_modules/node-forge/lib/sha256.js +306 -0
  179. package/lib/node_modules/node-forge/lib/sha256.js.map +1 -0
  180. package/lib/node_modules/node-forge/lib/sha512.js +479 -0
  181. package/lib/node_modules/node-forge/lib/sha512.js.map +1 -0
  182. package/lib/node_modules/node-forge/lib/ssh.js +244 -0
  183. package/lib/node_modules/node-forge/lib/ssh.js.map +1 -0
  184. package/lib/node_modules/node-forge/lib/tls.js +4207 -0
  185. package/lib/node_modules/node-forge/lib/tls.js.map +1 -0
  186. package/lib/node_modules/node-forge/lib/util.js +2565 -0
  187. package/lib/node_modules/node-forge/lib/util.js.map +1 -0
  188. package/lib/node_modules/node-forge/lib/x509.js +2986 -0
  189. package/lib/node_modules/node-forge/lib/x509.js.map +1 -0
  190. package/lib/node_modules/prop-types/index.js +1 -1
  191. package/lib/node_modules/react-async-script/lib/esm/async-script-loader.js +1 -1
  192. package/lib/node_modules/react-google-recaptcha/lib/esm/recaptcha.js +1 -1
  193. package/lib/node_modules/react-is/index.js +1 -1
  194. package/lib/node_modules/react-phone-number-input/modules/CountryIcon.js +1 -1
  195. package/lib/node_modules/react-phone-number-input/modules/CountrySelect.js +1 -1
  196. package/lib/node_modules/react-phone-number-input/modules/Flag.js +1 -1
  197. package/lib/node_modules/react-phone-number-input/modules/InputBasic.js +1 -1
  198. package/lib/node_modules/react-phone-number-input/modules/InputSmart.js +1 -1
  199. package/lib/node_modules/react-phone-number-input/modules/InternationalIcon.js +1 -1
  200. package/lib/node_modules/react-phone-number-input/modules/PhoneInputWithCountry.js +1 -1
  201. package/lib/node_modules/react-phone-number-input/modules/PropTypes.js +1 -1
  202. package/lib/node_modules/scheduler/index.js +1 -1
  203. package/lib/node_modules/use-context-selector/dist/index.js +1 -1
  204. package/lib/styles.css +1 -1
  205. package/lib/styles.css.map +1 -1
  206. package/lib/utils/getEncryptedData/getEncryptedData.js +10 -13
  207. package/lib/utils/getEncryptedData/getEncryptedData.js.map +1 -1
  208. package/package.json +3 -1
@@ -0,0 +1,479 @@
1
+ import { __module as sha512 } from '../../../_virtual/sha512.js';
2
+ import { __require as requireForge } from './forge.js';
3
+ import { __require as requireMd } from './md.js';
4
+ import { __require as requireUtil } from './util.js';
5
+
6
+ /**
7
+ * Secure Hash Algorithm with a 1024-bit block size implementation.
8
+ *
9
+ * This includes: SHA-512, SHA-384, SHA-512/224, and SHA-512/256. For
10
+ * SHA-256 (block size 512 bits), see sha256.js.
11
+ *
12
+ * See FIPS 180-4 for details.
13
+ *
14
+ * @author Dave Longley
15
+ *
16
+ * Copyright (c) 2014-2015 Digital Bazaar, Inc.
17
+ */
18
+ var hasRequiredSha512;
19
+ function requireSha512() {
20
+ if (hasRequiredSha512) return sha512.exports;
21
+ hasRequiredSha512 = 1;
22
+ var forge = requireForge();
23
+ requireMd();
24
+ requireUtil();
25
+ var sha512$1 = sha512.exports = forge.sha512 = forge.sha512 || {};
26
+
27
+ // SHA-512
28
+ forge.md.sha512 = forge.md.algorithms.sha512 = sha512$1;
29
+
30
+ // SHA-384
31
+ var sha384 = forge.sha384 = forge.sha512.sha384 = forge.sha512.sha384 || {};
32
+ sha384.create = function () {
33
+ return sha512$1.create('SHA-384');
34
+ };
35
+ forge.md.sha384 = forge.md.algorithms.sha384 = sha384;
36
+
37
+ // SHA-512/256
38
+ forge.sha512.sha256 = forge.sha512.sha256 || {
39
+ create: function () {
40
+ return sha512$1.create('SHA-512/256');
41
+ }
42
+ };
43
+ forge.md['sha512/256'] = forge.md.algorithms['sha512/256'] = forge.sha512.sha256;
44
+
45
+ // SHA-512/224
46
+ forge.sha512.sha224 = forge.sha512.sha224 || {
47
+ create: function () {
48
+ return sha512$1.create('SHA-512/224');
49
+ }
50
+ };
51
+ forge.md['sha512/224'] = forge.md.algorithms['sha512/224'] = forge.sha512.sha224;
52
+
53
+ /**
54
+ * Creates a SHA-2 message digest object.
55
+ *
56
+ * @param algorithm the algorithm to use (SHA-512, SHA-384, SHA-512/224,
57
+ * SHA-512/256).
58
+ *
59
+ * @return a message digest object.
60
+ */
61
+ sha512$1.create = function (algorithm) {
62
+ // do initialization as necessary
63
+ if (!_initialized) {
64
+ _init();
65
+ }
66
+ if (typeof algorithm === 'undefined') {
67
+ algorithm = 'SHA-512';
68
+ }
69
+ if (!(algorithm in _states)) {
70
+ throw new Error('Invalid SHA-512 algorithm: ' + algorithm);
71
+ }
72
+
73
+ // SHA-512 state contains eight 64-bit integers (each as two 32-bit ints)
74
+ var _state = _states[algorithm];
75
+ var _h = null;
76
+
77
+ // input buffer
78
+ var _input = forge.util.createBuffer();
79
+
80
+ // used for 64-bit word storage
81
+ var _w = new Array(80);
82
+ for (var wi = 0; wi < 80; ++wi) {
83
+ _w[wi] = new Array(2);
84
+ }
85
+
86
+ // determine digest length by algorithm name (default)
87
+ var digestLength = 64;
88
+ switch (algorithm) {
89
+ case 'SHA-384':
90
+ digestLength = 48;
91
+ break;
92
+ case 'SHA-512/256':
93
+ digestLength = 32;
94
+ break;
95
+ case 'SHA-512/224':
96
+ digestLength = 28;
97
+ break;
98
+ }
99
+
100
+ // message digest object
101
+ var md = {
102
+ // SHA-512 => sha512
103
+ algorithm: algorithm.replace('-', '').toLowerCase(),
104
+ blockLength: 128,
105
+ digestLength: digestLength,
106
+ // 56-bit length of message so far (does not including padding)
107
+ messageLength: 0,
108
+ // true message length
109
+ fullMessageLength: null,
110
+ // size of message length in bytes
111
+ messageLengthSize: 16
112
+ };
113
+
114
+ /**
115
+ * Starts the digest.
116
+ *
117
+ * @return this digest object.
118
+ */
119
+ md.start = function () {
120
+ // up to 56-bit message length for convenience
121
+ md.messageLength = 0;
122
+
123
+ // full message length (set md.messageLength128 for backwards-compatibility)
124
+ md.fullMessageLength = md.messageLength128 = [];
125
+ var int32s = md.messageLengthSize / 4;
126
+ for (var i = 0; i < int32s; ++i) {
127
+ md.fullMessageLength.push(0);
128
+ }
129
+ _input = forge.util.createBuffer();
130
+ _h = new Array(_state.length);
131
+ for (var i = 0; i < _state.length; ++i) {
132
+ _h[i] = _state[i].slice(0);
133
+ }
134
+ return md;
135
+ };
136
+ // start digest automatically for first time
137
+ md.start();
138
+
139
+ /**
140
+ * Updates the digest with the given message input. The given input can
141
+ * treated as raw input (no encoding will be applied) or an encoding of
142
+ * 'utf8' maybe given to encode the input using UTF-8.
143
+ *
144
+ * @param msg the message input to update with.
145
+ * @param encoding the encoding to use (default: 'raw', other: 'utf8').
146
+ *
147
+ * @return this digest object.
148
+ */
149
+ md.update = function (msg, encoding) {
150
+ if (encoding === 'utf8') {
151
+ msg = forge.util.encodeUtf8(msg);
152
+ }
153
+
154
+ // update message length
155
+ var len = msg.length;
156
+ md.messageLength += len;
157
+ len = [len / 0x100000000 >>> 0, len >>> 0];
158
+ for (var i = md.fullMessageLength.length - 1; i >= 0; --i) {
159
+ md.fullMessageLength[i] += len[1];
160
+ len[1] = len[0] + (md.fullMessageLength[i] / 0x100000000 >>> 0);
161
+ md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;
162
+ len[0] = len[1] / 0x100000000 >>> 0;
163
+ }
164
+
165
+ // add bytes to input buffer
166
+ _input.putBytes(msg);
167
+
168
+ // process bytes
169
+ _update(_h, _w, _input);
170
+
171
+ // compact input buffer every 2K or if empty
172
+ if (_input.read > 2048 || _input.length() === 0) {
173
+ _input.compact();
174
+ }
175
+ return md;
176
+ };
177
+
178
+ /**
179
+ * Produces the digest.
180
+ *
181
+ * @return a byte buffer containing the digest value.
182
+ */
183
+ md.digest = function () {
184
+ /* Note: Here we copy the remaining bytes in the input buffer and
185
+ add the appropriate SHA-512 padding. Then we do the final update
186
+ on a copy of the state so that if the user wants to get
187
+ intermediate digests they can do so. */
188
+
189
+ /* Determine the number of bytes that must be added to the message
190
+ to ensure its length is congruent to 896 mod 1024. In other words,
191
+ the data to be digested must be a multiple of 1024 bits (or 128 bytes).
192
+ This data includes the message, some padding, and the length of the
193
+ message. Since the length of the message will be encoded as 16 bytes (128
194
+ bits), that means that the last segment of the data must have 112 bytes
195
+ (896 bits) of message and padding. Therefore, the length of the message
196
+ plus the padding must be congruent to 896 mod 1024 because
197
+ 1024 - 128 = 896.
198
+ In order to fill up the message length it must be filled with
199
+ padding that begins with 1 bit followed by all 0 bits. Padding
200
+ must *always* be present, so if the message length is already
201
+ congruent to 896 mod 1024, then 1024 padding bits must be added. */
202
+
203
+ var finalBlock = forge.util.createBuffer();
204
+ finalBlock.putBytes(_input.bytes());
205
+
206
+ // compute remaining size to be digested (include message length size)
207
+ var remaining = md.fullMessageLength[md.fullMessageLength.length - 1] + md.messageLengthSize;
208
+
209
+ // add padding for overflow blockSize - overflow
210
+ // _padding starts with 1 byte with first bit is set (byte value 128), then
211
+ // there may be up to (blockSize - 1) other pad bytes
212
+ var overflow = remaining & md.blockLength - 1;
213
+ finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));
214
+
215
+ // serialize message length in bits in big-endian order; since length
216
+ // is stored in bytes we multiply by 8 and add carry from next int
217
+ var next, carry;
218
+ var bits = md.fullMessageLength[0] * 8;
219
+ for (var i = 0; i < md.fullMessageLength.length - 1; ++i) {
220
+ next = md.fullMessageLength[i + 1] * 8;
221
+ carry = next / 0x100000000 >>> 0;
222
+ bits += carry;
223
+ finalBlock.putInt32(bits >>> 0);
224
+ bits = next >>> 0;
225
+ }
226
+ finalBlock.putInt32(bits);
227
+ var h = new Array(_h.length);
228
+ for (var i = 0; i < _h.length; ++i) {
229
+ h[i] = _h[i].slice(0);
230
+ }
231
+ _update(h, _w, finalBlock);
232
+ var rval = forge.util.createBuffer();
233
+ var hlen;
234
+ if (algorithm === 'SHA-512') {
235
+ hlen = h.length;
236
+ } else if (algorithm === 'SHA-384') {
237
+ hlen = h.length - 2;
238
+ } else {
239
+ hlen = h.length - 4;
240
+ }
241
+ for (var i = 0; i < hlen; ++i) {
242
+ rval.putInt32(h[i][0]);
243
+ if (i !== hlen - 1 || algorithm !== 'SHA-512/224') {
244
+ rval.putInt32(h[i][1]);
245
+ }
246
+ }
247
+ return rval;
248
+ };
249
+ return md;
250
+ };
251
+
252
+ // sha-512 padding bytes not initialized yet
253
+ var _padding = null;
254
+ var _initialized = false;
255
+
256
+ // table of constants
257
+ var _k = null;
258
+
259
+ // initial hash states
260
+ var _states = null;
261
+
262
+ /**
263
+ * Initializes the constant tables.
264
+ */
265
+ function _init() {
266
+ // create padding
267
+ _padding = String.fromCharCode(128);
268
+ _padding += forge.util.fillString(String.fromCharCode(0x00), 128);
269
+
270
+ // create K table for SHA-512
271
+ _k = [[0x428a2f98, 0xd728ae22], [0x71374491, 0x23ef65cd], [0xb5c0fbcf, 0xec4d3b2f], [0xe9b5dba5, 0x8189dbbc], [0x3956c25b, 0xf348b538], [0x59f111f1, 0xb605d019], [0x923f82a4, 0xaf194f9b], [0xab1c5ed5, 0xda6d8118], [0xd807aa98, 0xa3030242], [0x12835b01, 0x45706fbe], [0x243185be, 0x4ee4b28c], [0x550c7dc3, 0xd5ffb4e2], [0x72be5d74, 0xf27b896f], [0x80deb1fe, 0x3b1696b1], [0x9bdc06a7, 0x25c71235], [0xc19bf174, 0xcf692694], [0xe49b69c1, 0x9ef14ad2], [0xefbe4786, 0x384f25e3], [0x0fc19dc6, 0x8b8cd5b5], [0x240ca1cc, 0x77ac9c65], [0x2de92c6f, 0x592b0275], [0x4a7484aa, 0x6ea6e483], [0x5cb0a9dc, 0xbd41fbd4], [0x76f988da, 0x831153b5], [0x983e5152, 0xee66dfab], [0xa831c66d, 0x2db43210], [0xb00327c8, 0x98fb213f], [0xbf597fc7, 0xbeef0ee4], [0xc6e00bf3, 0x3da88fc2], [0xd5a79147, 0x930aa725], [0x06ca6351, 0xe003826f], [0x14292967, 0x0a0e6e70], [0x27b70a85, 0x46d22ffc], [0x2e1b2138, 0x5c26c926], [0x4d2c6dfc, 0x5ac42aed], [0x53380d13, 0x9d95b3df], [0x650a7354, 0x8baf63de], [0x766a0abb, 0x3c77b2a8], [0x81c2c92e, 0x47edaee6], [0x92722c85, 0x1482353b], [0xa2bfe8a1, 0x4cf10364], [0xa81a664b, 0xbc423001], [0xc24b8b70, 0xd0f89791], [0xc76c51a3, 0x0654be30], [0xd192e819, 0xd6ef5218], [0xd6990624, 0x5565a910], [0xf40e3585, 0x5771202a], [0x106aa070, 0x32bbd1b8], [0x19a4c116, 0xb8d2d0c8], [0x1e376c08, 0x5141ab53], [0x2748774c, 0xdf8eeb99], [0x34b0bcb5, 0xe19b48a8], [0x391c0cb3, 0xc5c95a63], [0x4ed8aa4a, 0xe3418acb], [0x5b9cca4f, 0x7763e373], [0x682e6ff3, 0xd6b2b8a3], [0x748f82ee, 0x5defb2fc], [0x78a5636f, 0x43172f60], [0x84c87814, 0xa1f0ab72], [0x8cc70208, 0x1a6439ec], [0x90befffa, 0x23631e28], [0xa4506ceb, 0xde82bde9], [0xbef9a3f7, 0xb2c67915], [0xc67178f2, 0xe372532b], [0xca273ece, 0xea26619c], [0xd186b8c7, 0x21c0c207], [0xeada7dd6, 0xcde0eb1e], [0xf57d4f7f, 0xee6ed178], [0x06f067aa, 0x72176fba], [0x0a637dc5, 0xa2c898a6], [0x113f9804, 0xbef90dae], [0x1b710b35, 0x131c471b], [0x28db77f5, 0x23047d84], [0x32caab7b, 0x40c72493], [0x3c9ebe0a, 0x15c9bebc], [0x431d67c4, 0x9c100d4c], [0x4cc5d4be, 0xcb3e42b6], [0x597f299c, 0xfc657e2a], [0x5fcb6fab, 0x3ad6faec], [0x6c44198c, 0x4a475817]];
272
+
273
+ // initial hash states
274
+ _states = {};
275
+ _states['SHA-512'] = [[0x6a09e667, 0xf3bcc908], [0xbb67ae85, 0x84caa73b], [0x3c6ef372, 0xfe94f82b], [0xa54ff53a, 0x5f1d36f1], [0x510e527f, 0xade682d1], [0x9b05688c, 0x2b3e6c1f], [0x1f83d9ab, 0xfb41bd6b], [0x5be0cd19, 0x137e2179]];
276
+ _states['SHA-384'] = [[0xcbbb9d5d, 0xc1059ed8], [0x629a292a, 0x367cd507], [0x9159015a, 0x3070dd17], [0x152fecd8, 0xf70e5939], [0x67332667, 0xffc00b31], [0x8eb44a87, 0x68581511], [0xdb0c2e0d, 0x64f98fa7], [0x47b5481d, 0xbefa4fa4]];
277
+ _states['SHA-512/256'] = [[0x22312194, 0xFC2BF72C], [0x9F555FA3, 0xC84C64C2], [0x2393B86B, 0x6F53B151], [0x96387719, 0x5940EABD], [0x96283EE2, 0xA88EFFE3], [0xBE5E1E25, 0x53863992], [0x2B0199FC, 0x2C85B8AA], [0x0EB72DDC, 0x81C52CA2]];
278
+ _states['SHA-512/224'] = [[0x8C3D37C8, 0x19544DA2], [0x73E19966, 0x89DCD4D6], [0x1DFAB7AE, 0x32FF9C82], [0x679DD514, 0x582F9FCF], [0x0F6D2B69, 0x7BD44DA8], [0x77E36F73, 0x04C48942], [0x3F9D85A8, 0x6A1D36C8], [0x1112E6AD, 0x91D692A1]];
279
+
280
+ // now initialized
281
+ _initialized = true;
282
+ }
283
+
284
+ /**
285
+ * Updates a SHA-512 state with the given byte buffer.
286
+ *
287
+ * @param s the SHA-512 state to update.
288
+ * @param w the array to use to store words.
289
+ * @param bytes the byte buffer to update with.
290
+ */
291
+ function _update(s, w, bytes) {
292
+ // consume 512 bit (128 byte) chunks
293
+ var t1_hi, t1_lo;
294
+ var t2_hi, t2_lo;
295
+ var s0_hi, s0_lo;
296
+ var s1_hi, s1_lo;
297
+ var ch_hi, ch_lo;
298
+ var maj_hi, maj_lo;
299
+ var a_hi, a_lo;
300
+ var b_hi, b_lo;
301
+ var c_hi, c_lo;
302
+ var d_hi, d_lo;
303
+ var e_hi, e_lo;
304
+ var f_hi, f_lo;
305
+ var g_hi, g_lo;
306
+ var h_hi, h_lo;
307
+ var i, hi, lo, w2, w7, w15, w16;
308
+ var len = bytes.length();
309
+ while (len >= 128) {
310
+ // the w array will be populated with sixteen 64-bit big-endian words
311
+ // and then extended into 64 64-bit words according to SHA-512
312
+ for (i = 0; i < 16; ++i) {
313
+ w[i][0] = bytes.getInt32() >>> 0;
314
+ w[i][1] = bytes.getInt32() >>> 0;
315
+ }
316
+ for (; i < 80; ++i) {
317
+ // for word 2 words ago: ROTR 19(x) ^ ROTR 61(x) ^ SHR 6(x)
318
+ w2 = w[i - 2];
319
+ hi = w2[0];
320
+ lo = w2[1];
321
+
322
+ // high bits
323
+ t1_hi = ((hi >>> 19 | lo << 13) ^ (
324
+ // ROTR 19
325
+ lo >>> 29 | hi << 3) ^
326
+ // ROTR 61/(swap + ROTR 29)
327
+ hi >>> 6) >>> 0; // SHR 6
328
+ // low bits
329
+ t1_lo = ((hi << 13 | lo >>> 19) ^ (
330
+ // ROTR 19
331
+ lo << 3 | hi >>> 29) ^ (
332
+ // ROTR 61/(swap + ROTR 29)
333
+ hi << 26 | lo >>> 6)) >>> 0; // SHR 6
334
+
335
+ // for word 15 words ago: ROTR 1(x) ^ ROTR 8(x) ^ SHR 7(x)
336
+ w15 = w[i - 15];
337
+ hi = w15[0];
338
+ lo = w15[1];
339
+
340
+ // high bits
341
+ t2_hi = ((hi >>> 1 | lo << 31) ^ (
342
+ // ROTR 1
343
+ hi >>> 8 | lo << 24) ^
344
+ // ROTR 8
345
+ hi >>> 7) >>> 0; // SHR 7
346
+ // low bits
347
+ t2_lo = ((hi << 31 | lo >>> 1) ^ (
348
+ // ROTR 1
349
+ hi << 24 | lo >>> 8) ^ (
350
+ // ROTR 8
351
+ hi << 25 | lo >>> 7)) >>> 0; // SHR 7
352
+
353
+ // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^64 (carry lo overflow)
354
+ w7 = w[i - 7];
355
+ w16 = w[i - 16];
356
+ lo = t1_lo + w7[1] + t2_lo + w16[1];
357
+ w[i][0] = t1_hi + w7[0] + t2_hi + w16[0] + (lo / 0x100000000 >>> 0) >>> 0;
358
+ w[i][1] = lo >>> 0;
359
+ }
360
+
361
+ // initialize hash value for this chunk
362
+ a_hi = s[0][0];
363
+ a_lo = s[0][1];
364
+ b_hi = s[1][0];
365
+ b_lo = s[1][1];
366
+ c_hi = s[2][0];
367
+ c_lo = s[2][1];
368
+ d_hi = s[3][0];
369
+ d_lo = s[3][1];
370
+ e_hi = s[4][0];
371
+ e_lo = s[4][1];
372
+ f_hi = s[5][0];
373
+ f_lo = s[5][1];
374
+ g_hi = s[6][0];
375
+ g_lo = s[6][1];
376
+ h_hi = s[7][0];
377
+ h_lo = s[7][1];
378
+
379
+ // round function
380
+ for (i = 0; i < 80; ++i) {
381
+ // Sum1(e) = ROTR 14(e) ^ ROTR 18(e) ^ ROTR 41(e)
382
+ s1_hi = ((e_hi >>> 14 | e_lo << 18) ^ (
383
+ // ROTR 14
384
+ e_hi >>> 18 | e_lo << 14) ^ (
385
+ // ROTR 18
386
+ e_lo >>> 9 | e_hi << 23)) >>> 0; // ROTR 41/(swap + ROTR 9)
387
+ s1_lo = ((e_hi << 18 | e_lo >>> 14) ^ (
388
+ // ROTR 14
389
+ e_hi << 14 | e_lo >>> 18) ^ (
390
+ // ROTR 18
391
+ e_lo << 23 | e_hi >>> 9)) >>> 0; // ROTR 41/(swap + ROTR 9)
392
+
393
+ // Ch(e, f, g) (optimized the same way as SHA-1)
394
+ ch_hi = (g_hi ^ e_hi & (f_hi ^ g_hi)) >>> 0;
395
+ ch_lo = (g_lo ^ e_lo & (f_lo ^ g_lo)) >>> 0;
396
+
397
+ // Sum0(a) = ROTR 28(a) ^ ROTR 34(a) ^ ROTR 39(a)
398
+ s0_hi = ((a_hi >>> 28 | a_lo << 4) ^ (
399
+ // ROTR 28
400
+ a_lo >>> 2 | a_hi << 30) ^ (
401
+ // ROTR 34/(swap + ROTR 2)
402
+ a_lo >>> 7 | a_hi << 25)) >>> 0; // ROTR 39/(swap + ROTR 7)
403
+ s0_lo = ((a_hi << 4 | a_lo >>> 28) ^ (
404
+ // ROTR 28
405
+ a_lo << 30 | a_hi >>> 2) ^ (
406
+ // ROTR 34/(swap + ROTR 2)
407
+ a_lo << 25 | a_hi >>> 7)) >>> 0; // ROTR 39/(swap + ROTR 7)
408
+
409
+ // Maj(a, b, c) (optimized the same way as SHA-1)
410
+ maj_hi = (a_hi & b_hi | c_hi & (a_hi ^ b_hi)) >>> 0;
411
+ maj_lo = (a_lo & b_lo | c_lo & (a_lo ^ b_lo)) >>> 0;
412
+
413
+ // main algorithm
414
+ // t1 = (h + s1 + ch + _k[i] + _w[i]) modulo 2^64 (carry lo overflow)
415
+ lo = h_lo + s1_lo + ch_lo + _k[i][1] + w[i][1];
416
+ t1_hi = h_hi + s1_hi + ch_hi + _k[i][0] + w[i][0] + (lo / 0x100000000 >>> 0) >>> 0;
417
+ t1_lo = lo >>> 0;
418
+
419
+ // t2 = s0 + maj modulo 2^64 (carry lo overflow)
420
+ lo = s0_lo + maj_lo;
421
+ t2_hi = s0_hi + maj_hi + (lo / 0x100000000 >>> 0) >>> 0;
422
+ t2_lo = lo >>> 0;
423
+ h_hi = g_hi;
424
+ h_lo = g_lo;
425
+ g_hi = f_hi;
426
+ g_lo = f_lo;
427
+ f_hi = e_hi;
428
+ f_lo = e_lo;
429
+
430
+ // e = (d + t1) modulo 2^64 (carry lo overflow)
431
+ lo = d_lo + t1_lo;
432
+ e_hi = d_hi + t1_hi + (lo / 0x100000000 >>> 0) >>> 0;
433
+ e_lo = lo >>> 0;
434
+ d_hi = c_hi;
435
+ d_lo = c_lo;
436
+ c_hi = b_hi;
437
+ c_lo = b_lo;
438
+ b_hi = a_hi;
439
+ b_lo = a_lo;
440
+
441
+ // a = (t1 + t2) modulo 2^64 (carry lo overflow)
442
+ lo = t1_lo + t2_lo;
443
+ a_hi = t1_hi + t2_hi + (lo / 0x100000000 >>> 0) >>> 0;
444
+ a_lo = lo >>> 0;
445
+ }
446
+
447
+ // update hash state (additional modulo 2^64)
448
+ lo = s[0][1] + a_lo;
449
+ s[0][0] = s[0][0] + a_hi + (lo / 0x100000000 >>> 0) >>> 0;
450
+ s[0][1] = lo >>> 0;
451
+ lo = s[1][1] + b_lo;
452
+ s[1][0] = s[1][0] + b_hi + (lo / 0x100000000 >>> 0) >>> 0;
453
+ s[1][1] = lo >>> 0;
454
+ lo = s[2][1] + c_lo;
455
+ s[2][0] = s[2][0] + c_hi + (lo / 0x100000000 >>> 0) >>> 0;
456
+ s[2][1] = lo >>> 0;
457
+ lo = s[3][1] + d_lo;
458
+ s[3][0] = s[3][0] + d_hi + (lo / 0x100000000 >>> 0) >>> 0;
459
+ s[3][1] = lo >>> 0;
460
+ lo = s[4][1] + e_lo;
461
+ s[4][0] = s[4][0] + e_hi + (lo / 0x100000000 >>> 0) >>> 0;
462
+ s[4][1] = lo >>> 0;
463
+ lo = s[5][1] + f_lo;
464
+ s[5][0] = s[5][0] + f_hi + (lo / 0x100000000 >>> 0) >>> 0;
465
+ s[5][1] = lo >>> 0;
466
+ lo = s[6][1] + g_lo;
467
+ s[6][0] = s[6][0] + g_hi + (lo / 0x100000000 >>> 0) >>> 0;
468
+ s[6][1] = lo >>> 0;
469
+ lo = s[7][1] + h_lo;
470
+ s[7][0] = s[7][0] + h_hi + (lo / 0x100000000 >>> 0) >>> 0;
471
+ s[7][1] = lo >>> 0;
472
+ len -= 128;
473
+ }
474
+ }
475
+ return sha512.exports;
476
+ }
477
+
478
+ export { requireSha512 as __require };
479
+ //# sourceMappingURL=sha512.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sha512.js","sources":["../../../../node_modules/node-forge/lib/sha512.js"],"sourcesContent":["/**\n * Secure Hash Algorithm with a 1024-bit block size implementation.\n *\n * This includes: SHA-512, SHA-384, SHA-512/224, and SHA-512/256. For\n * SHA-256 (block size 512 bits), see sha256.js.\n *\n * See FIPS 180-4 for details.\n *\n * @author Dave Longley\n *\n * Copyright (c) 2014-2015 Digital Bazaar, Inc.\n */\nvar forge = require('./forge');\nrequire('./md');\nrequire('./util');\n\nvar sha512 = module.exports = forge.sha512 = forge.sha512 || {};\n\n// SHA-512\nforge.md.sha512 = forge.md.algorithms.sha512 = sha512;\n\n// SHA-384\nvar sha384 = forge.sha384 = forge.sha512.sha384 = forge.sha512.sha384 || {};\nsha384.create = function() {\n return sha512.create('SHA-384');\n};\nforge.md.sha384 = forge.md.algorithms.sha384 = sha384;\n\n// SHA-512/256\nforge.sha512.sha256 = forge.sha512.sha256 || {\n create: function() {\n return sha512.create('SHA-512/256');\n }\n};\nforge.md['sha512/256'] = forge.md.algorithms['sha512/256'] =\n forge.sha512.sha256;\n\n// SHA-512/224\nforge.sha512.sha224 = forge.sha512.sha224 || {\n create: function() {\n return sha512.create('SHA-512/224');\n }\n};\nforge.md['sha512/224'] = forge.md.algorithms['sha512/224'] =\n forge.sha512.sha224;\n\n/**\n * Creates a SHA-2 message digest object.\n *\n * @param algorithm the algorithm to use (SHA-512, SHA-384, SHA-512/224,\n * SHA-512/256).\n *\n * @return a message digest object.\n */\nsha512.create = function(algorithm) {\n // do initialization as necessary\n if(!_initialized) {\n _init();\n }\n\n if(typeof algorithm === 'undefined') {\n algorithm = 'SHA-512';\n }\n\n if(!(algorithm in _states)) {\n throw new Error('Invalid SHA-512 algorithm: ' + algorithm);\n }\n\n // SHA-512 state contains eight 64-bit integers (each as two 32-bit ints)\n var _state = _states[algorithm];\n var _h = null;\n\n // input buffer\n var _input = forge.util.createBuffer();\n\n // used for 64-bit word storage\n var _w = new Array(80);\n for(var wi = 0; wi < 80; ++wi) {\n _w[wi] = new Array(2);\n }\n\n // determine digest length by algorithm name (default)\n var digestLength = 64;\n switch(algorithm) {\n case 'SHA-384':\n digestLength = 48;\n break;\n case 'SHA-512/256':\n digestLength = 32;\n break;\n case 'SHA-512/224':\n digestLength = 28;\n break;\n }\n\n // message digest object\n var md = {\n // SHA-512 => sha512\n algorithm: algorithm.replace('-', '').toLowerCase(),\n blockLength: 128,\n digestLength: digestLength,\n // 56-bit length of message so far (does not including padding)\n messageLength: 0,\n // true message length\n fullMessageLength: null,\n // size of message length in bytes\n messageLengthSize: 16\n };\n\n /**\n * Starts the digest.\n *\n * @return this digest object.\n */\n md.start = function() {\n // up to 56-bit message length for convenience\n md.messageLength = 0;\n\n // full message length (set md.messageLength128 for backwards-compatibility)\n md.fullMessageLength = md.messageLength128 = [];\n var int32s = md.messageLengthSize / 4;\n for(var i = 0; i < int32s; ++i) {\n md.fullMessageLength.push(0);\n }\n _input = forge.util.createBuffer();\n _h = new Array(_state.length);\n for(var i = 0; i < _state.length; ++i) {\n _h[i] = _state[i].slice(0);\n }\n return md;\n };\n // start digest automatically for first time\n md.start();\n\n /**\n * Updates the digest with the given message input. The given input can\n * treated as raw input (no encoding will be applied) or an encoding of\n * 'utf8' maybe given to encode the input using UTF-8.\n *\n * @param msg the message input to update with.\n * @param encoding the encoding to use (default: 'raw', other: 'utf8').\n *\n * @return this digest object.\n */\n md.update = function(msg, encoding) {\n if(encoding === 'utf8') {\n msg = forge.util.encodeUtf8(msg);\n }\n\n // update message length\n var len = msg.length;\n md.messageLength += len;\n len = [(len / 0x100000000) >>> 0, len >>> 0];\n for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {\n md.fullMessageLength[i] += len[1];\n len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);\n md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;\n len[0] = ((len[1] / 0x100000000) >>> 0);\n }\n\n // add bytes to input buffer\n _input.putBytes(msg);\n\n // process bytes\n _update(_h, _w, _input);\n\n // compact input buffer every 2K or if empty\n if(_input.read > 2048 || _input.length() === 0) {\n _input.compact();\n }\n\n return md;\n };\n\n /**\n * Produces the digest.\n *\n * @return a byte buffer containing the digest value.\n */\n md.digest = function() {\n /* Note: Here we copy the remaining bytes in the input buffer and\n add the appropriate SHA-512 padding. Then we do the final update\n on a copy of the state so that if the user wants to get\n intermediate digests they can do so. */\n\n /* Determine the number of bytes that must be added to the message\n to ensure its length is congruent to 896 mod 1024. In other words,\n the data to be digested must be a multiple of 1024 bits (or 128 bytes).\n This data includes the message, some padding, and the length of the\n message. Since the length of the message will be encoded as 16 bytes (128\n bits), that means that the last segment of the data must have 112 bytes\n (896 bits) of message and padding. Therefore, the length of the message\n plus the padding must be congruent to 896 mod 1024 because\n 1024 - 128 = 896.\n\n In order to fill up the message length it must be filled with\n padding that begins with 1 bit followed by all 0 bits. Padding\n must *always* be present, so if the message length is already\n congruent to 896 mod 1024, then 1024 padding bits must be added. */\n\n var finalBlock = forge.util.createBuffer();\n finalBlock.putBytes(_input.bytes());\n\n // compute remaining size to be digested (include message length size)\n var remaining = (\n md.fullMessageLength[md.fullMessageLength.length - 1] +\n md.messageLengthSize);\n\n // add padding for overflow blockSize - overflow\n // _padding starts with 1 byte with first bit is set (byte value 128), then\n // there may be up to (blockSize - 1) other pad bytes\n var overflow = remaining & (md.blockLength - 1);\n finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));\n\n // serialize message length in bits in big-endian order; since length\n // is stored in bytes we multiply by 8 and add carry from next int\n var next, carry;\n var bits = md.fullMessageLength[0] * 8;\n for(var i = 0; i < md.fullMessageLength.length - 1; ++i) {\n next = md.fullMessageLength[i + 1] * 8;\n carry = (next / 0x100000000) >>> 0;\n bits += carry;\n finalBlock.putInt32(bits >>> 0);\n bits = next >>> 0;\n }\n finalBlock.putInt32(bits);\n\n var h = new Array(_h.length);\n for(var i = 0; i < _h.length; ++i) {\n h[i] = _h[i].slice(0);\n }\n _update(h, _w, finalBlock);\n var rval = forge.util.createBuffer();\n var hlen;\n if(algorithm === 'SHA-512') {\n hlen = h.length;\n } else if(algorithm === 'SHA-384') {\n hlen = h.length - 2;\n } else {\n hlen = h.length - 4;\n }\n for(var i = 0; i < hlen; ++i) {\n rval.putInt32(h[i][0]);\n if(i !== hlen - 1 || algorithm !== 'SHA-512/224') {\n rval.putInt32(h[i][1]);\n }\n }\n return rval;\n };\n\n return md;\n};\n\n// sha-512 padding bytes not initialized yet\nvar _padding = null;\nvar _initialized = false;\n\n// table of constants\nvar _k = null;\n\n// initial hash states\nvar _states = null;\n\n/**\n * Initializes the constant tables.\n */\nfunction _init() {\n // create padding\n _padding = String.fromCharCode(128);\n _padding += forge.util.fillString(String.fromCharCode(0x00), 128);\n\n // create K table for SHA-512\n _k = [\n [0x428a2f98, 0xd728ae22], [0x71374491, 0x23ef65cd],\n [0xb5c0fbcf, 0xec4d3b2f], [0xe9b5dba5, 0x8189dbbc],\n [0x3956c25b, 0xf348b538], [0x59f111f1, 0xb605d019],\n [0x923f82a4, 0xaf194f9b], [0xab1c5ed5, 0xda6d8118],\n [0xd807aa98, 0xa3030242], [0x12835b01, 0x45706fbe],\n [0x243185be, 0x4ee4b28c], [0x550c7dc3, 0xd5ffb4e2],\n [0x72be5d74, 0xf27b896f], [0x80deb1fe, 0x3b1696b1],\n [0x9bdc06a7, 0x25c71235], [0xc19bf174, 0xcf692694],\n [0xe49b69c1, 0x9ef14ad2], [0xefbe4786, 0x384f25e3],\n [0x0fc19dc6, 0x8b8cd5b5], [0x240ca1cc, 0x77ac9c65],\n [0x2de92c6f, 0x592b0275], [0x4a7484aa, 0x6ea6e483],\n [0x5cb0a9dc, 0xbd41fbd4], [0x76f988da, 0x831153b5],\n [0x983e5152, 0xee66dfab], [0xa831c66d, 0x2db43210],\n [0xb00327c8, 0x98fb213f], [0xbf597fc7, 0xbeef0ee4],\n [0xc6e00bf3, 0x3da88fc2], [0xd5a79147, 0x930aa725],\n [0x06ca6351, 0xe003826f], [0x14292967, 0x0a0e6e70],\n [0x27b70a85, 0x46d22ffc], [0x2e1b2138, 0x5c26c926],\n [0x4d2c6dfc, 0x5ac42aed], [0x53380d13, 0x9d95b3df],\n [0x650a7354, 0x8baf63de], [0x766a0abb, 0x3c77b2a8],\n [0x81c2c92e, 0x47edaee6], [0x92722c85, 0x1482353b],\n [0xa2bfe8a1, 0x4cf10364], [0xa81a664b, 0xbc423001],\n [0xc24b8b70, 0xd0f89791], [0xc76c51a3, 0x0654be30],\n [0xd192e819, 0xd6ef5218], [0xd6990624, 0x5565a910],\n [0xf40e3585, 0x5771202a], [0x106aa070, 0x32bbd1b8],\n [0x19a4c116, 0xb8d2d0c8], [0x1e376c08, 0x5141ab53],\n [0x2748774c, 0xdf8eeb99], [0x34b0bcb5, 0xe19b48a8],\n [0x391c0cb3, 0xc5c95a63], [0x4ed8aa4a, 0xe3418acb],\n [0x5b9cca4f, 0x7763e373], [0x682e6ff3, 0xd6b2b8a3],\n [0x748f82ee, 0x5defb2fc], [0x78a5636f, 0x43172f60],\n [0x84c87814, 0xa1f0ab72], [0x8cc70208, 0x1a6439ec],\n [0x90befffa, 0x23631e28], [0xa4506ceb, 0xde82bde9],\n [0xbef9a3f7, 0xb2c67915], [0xc67178f2, 0xe372532b],\n [0xca273ece, 0xea26619c], [0xd186b8c7, 0x21c0c207],\n [0xeada7dd6, 0xcde0eb1e], [0xf57d4f7f, 0xee6ed178],\n [0x06f067aa, 0x72176fba], [0x0a637dc5, 0xa2c898a6],\n [0x113f9804, 0xbef90dae], [0x1b710b35, 0x131c471b],\n [0x28db77f5, 0x23047d84], [0x32caab7b, 0x40c72493],\n [0x3c9ebe0a, 0x15c9bebc], [0x431d67c4, 0x9c100d4c],\n [0x4cc5d4be, 0xcb3e42b6], [0x597f299c, 0xfc657e2a],\n [0x5fcb6fab, 0x3ad6faec], [0x6c44198c, 0x4a475817]\n ];\n\n // initial hash states\n _states = {};\n _states['SHA-512'] = [\n [0x6a09e667, 0xf3bcc908],\n [0xbb67ae85, 0x84caa73b],\n [0x3c6ef372, 0xfe94f82b],\n [0xa54ff53a, 0x5f1d36f1],\n [0x510e527f, 0xade682d1],\n [0x9b05688c, 0x2b3e6c1f],\n [0x1f83d9ab, 0xfb41bd6b],\n [0x5be0cd19, 0x137e2179]\n ];\n _states['SHA-384'] = [\n [0xcbbb9d5d, 0xc1059ed8],\n [0x629a292a, 0x367cd507],\n [0x9159015a, 0x3070dd17],\n [0x152fecd8, 0xf70e5939],\n [0x67332667, 0xffc00b31],\n [0x8eb44a87, 0x68581511],\n [0xdb0c2e0d, 0x64f98fa7],\n [0x47b5481d, 0xbefa4fa4]\n ];\n _states['SHA-512/256'] = [\n [0x22312194, 0xFC2BF72C],\n [0x9F555FA3, 0xC84C64C2],\n [0x2393B86B, 0x6F53B151],\n [0x96387719, 0x5940EABD],\n [0x96283EE2, 0xA88EFFE3],\n [0xBE5E1E25, 0x53863992],\n [0x2B0199FC, 0x2C85B8AA],\n [0x0EB72DDC, 0x81C52CA2]\n ];\n _states['SHA-512/224'] = [\n [0x8C3D37C8, 0x19544DA2],\n [0x73E19966, 0x89DCD4D6],\n [0x1DFAB7AE, 0x32FF9C82],\n [0x679DD514, 0x582F9FCF],\n [0x0F6D2B69, 0x7BD44DA8],\n [0x77E36F73, 0x04C48942],\n [0x3F9D85A8, 0x6A1D36C8],\n [0x1112E6AD, 0x91D692A1]\n ];\n\n // now initialized\n _initialized = true;\n}\n\n/**\n * Updates a SHA-512 state with the given byte buffer.\n *\n * @param s the SHA-512 state to update.\n * @param w the array to use to store words.\n * @param bytes the byte buffer to update with.\n */\nfunction _update(s, w, bytes) {\n // consume 512 bit (128 byte) chunks\n var t1_hi, t1_lo;\n var t2_hi, t2_lo;\n var s0_hi, s0_lo;\n var s1_hi, s1_lo;\n var ch_hi, ch_lo;\n var maj_hi, maj_lo;\n var a_hi, a_lo;\n var b_hi, b_lo;\n var c_hi, c_lo;\n var d_hi, d_lo;\n var e_hi, e_lo;\n var f_hi, f_lo;\n var g_hi, g_lo;\n var h_hi, h_lo;\n var i, hi, lo, w2, w7, w15, w16;\n var len = bytes.length();\n while(len >= 128) {\n // the w array will be populated with sixteen 64-bit big-endian words\n // and then extended into 64 64-bit words according to SHA-512\n for(i = 0; i < 16; ++i) {\n w[i][0] = bytes.getInt32() >>> 0;\n w[i][1] = bytes.getInt32() >>> 0;\n }\n for(; i < 80; ++i) {\n // for word 2 words ago: ROTR 19(x) ^ ROTR 61(x) ^ SHR 6(x)\n w2 = w[i - 2];\n hi = w2[0];\n lo = w2[1];\n\n // high bits\n t1_hi = (\n ((hi >>> 19) | (lo << 13)) ^ // ROTR 19\n ((lo >>> 29) | (hi << 3)) ^ // ROTR 61/(swap + ROTR 29)\n (hi >>> 6)) >>> 0; // SHR 6\n // low bits\n t1_lo = (\n ((hi << 13) | (lo >>> 19)) ^ // ROTR 19\n ((lo << 3) | (hi >>> 29)) ^ // ROTR 61/(swap + ROTR 29)\n ((hi << 26) | (lo >>> 6))) >>> 0; // SHR 6\n\n // for word 15 words ago: ROTR 1(x) ^ ROTR 8(x) ^ SHR 7(x)\n w15 = w[i - 15];\n hi = w15[0];\n lo = w15[1];\n\n // high bits\n t2_hi = (\n ((hi >>> 1) | (lo << 31)) ^ // ROTR 1\n ((hi >>> 8) | (lo << 24)) ^ // ROTR 8\n (hi >>> 7)) >>> 0; // SHR 7\n // low bits\n t2_lo = (\n ((hi << 31) | (lo >>> 1)) ^ // ROTR 1\n ((hi << 24) | (lo >>> 8)) ^ // ROTR 8\n ((hi << 25) | (lo >>> 7))) >>> 0; // SHR 7\n\n // sum(t1, word 7 ago, t2, word 16 ago) modulo 2^64 (carry lo overflow)\n w7 = w[i - 7];\n w16 = w[i - 16];\n lo = (t1_lo + w7[1] + t2_lo + w16[1]);\n w[i][0] = (t1_hi + w7[0] + t2_hi + w16[0] +\n ((lo / 0x100000000) >>> 0)) >>> 0;\n w[i][1] = lo >>> 0;\n }\n\n // initialize hash value for this chunk\n a_hi = s[0][0];\n a_lo = s[0][1];\n b_hi = s[1][0];\n b_lo = s[1][1];\n c_hi = s[2][0];\n c_lo = s[2][1];\n d_hi = s[3][0];\n d_lo = s[3][1];\n e_hi = s[4][0];\n e_lo = s[4][1];\n f_hi = s[5][0];\n f_lo = s[5][1];\n g_hi = s[6][0];\n g_lo = s[6][1];\n h_hi = s[7][0];\n h_lo = s[7][1];\n\n // round function\n for(i = 0; i < 80; ++i) {\n // Sum1(e) = ROTR 14(e) ^ ROTR 18(e) ^ ROTR 41(e)\n s1_hi = (\n ((e_hi >>> 14) | (e_lo << 18)) ^ // ROTR 14\n ((e_hi >>> 18) | (e_lo << 14)) ^ // ROTR 18\n ((e_lo >>> 9) | (e_hi << 23))) >>> 0; // ROTR 41/(swap + ROTR 9)\n s1_lo = (\n ((e_hi << 18) | (e_lo >>> 14)) ^ // ROTR 14\n ((e_hi << 14) | (e_lo >>> 18)) ^ // ROTR 18\n ((e_lo << 23) | (e_hi >>> 9))) >>> 0; // ROTR 41/(swap + ROTR 9)\n\n // Ch(e, f, g) (optimized the same way as SHA-1)\n ch_hi = (g_hi ^ (e_hi & (f_hi ^ g_hi))) >>> 0;\n ch_lo = (g_lo ^ (e_lo & (f_lo ^ g_lo))) >>> 0;\n\n // Sum0(a) = ROTR 28(a) ^ ROTR 34(a) ^ ROTR 39(a)\n s0_hi = (\n ((a_hi >>> 28) | (a_lo << 4)) ^ // ROTR 28\n ((a_lo >>> 2) | (a_hi << 30)) ^ // ROTR 34/(swap + ROTR 2)\n ((a_lo >>> 7) | (a_hi << 25))) >>> 0; // ROTR 39/(swap + ROTR 7)\n s0_lo = (\n ((a_hi << 4) | (a_lo >>> 28)) ^ // ROTR 28\n ((a_lo << 30) | (a_hi >>> 2)) ^ // ROTR 34/(swap + ROTR 2)\n ((a_lo << 25) | (a_hi >>> 7))) >>> 0; // ROTR 39/(swap + ROTR 7)\n\n // Maj(a, b, c) (optimized the same way as SHA-1)\n maj_hi = ((a_hi & b_hi) | (c_hi & (a_hi ^ b_hi))) >>> 0;\n maj_lo = ((a_lo & b_lo) | (c_lo & (a_lo ^ b_lo))) >>> 0;\n\n // main algorithm\n // t1 = (h + s1 + ch + _k[i] + _w[i]) modulo 2^64 (carry lo overflow)\n lo = (h_lo + s1_lo + ch_lo + _k[i][1] + w[i][1]);\n t1_hi = (h_hi + s1_hi + ch_hi + _k[i][0] + w[i][0] +\n ((lo / 0x100000000) >>> 0)) >>> 0;\n t1_lo = lo >>> 0;\n\n // t2 = s0 + maj modulo 2^64 (carry lo overflow)\n lo = s0_lo + maj_lo;\n t2_hi = (s0_hi + maj_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n t2_lo = lo >>> 0;\n\n h_hi = g_hi;\n h_lo = g_lo;\n\n g_hi = f_hi;\n g_lo = f_lo;\n\n f_hi = e_hi;\n f_lo = e_lo;\n\n // e = (d + t1) modulo 2^64 (carry lo overflow)\n lo = d_lo + t1_lo;\n e_hi = (d_hi + t1_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n e_lo = lo >>> 0;\n\n d_hi = c_hi;\n d_lo = c_lo;\n\n c_hi = b_hi;\n c_lo = b_lo;\n\n b_hi = a_hi;\n b_lo = a_lo;\n\n // a = (t1 + t2) modulo 2^64 (carry lo overflow)\n lo = t1_lo + t2_lo;\n a_hi = (t1_hi + t2_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n a_lo = lo >>> 0;\n }\n\n // update hash state (additional modulo 2^64)\n lo = s[0][1] + a_lo;\n s[0][0] = (s[0][0] + a_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[0][1] = lo >>> 0;\n\n lo = s[1][1] + b_lo;\n s[1][0] = (s[1][0] + b_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[1][1] = lo >>> 0;\n\n lo = s[2][1] + c_lo;\n s[2][0] = (s[2][0] + c_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[2][1] = lo >>> 0;\n\n lo = s[3][1] + d_lo;\n s[3][0] = (s[3][0] + d_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[3][1] = lo >>> 0;\n\n lo = s[4][1] + e_lo;\n s[4][0] = (s[4][0] + e_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[4][1] = lo >>> 0;\n\n lo = s[5][1] + f_lo;\n s[5][0] = (s[5][0] + f_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[5][1] = lo >>> 0;\n\n lo = s[6][1] + g_lo;\n s[6][0] = (s[6][0] + g_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[6][1] = lo >>> 0;\n\n lo = s[7][1] + h_lo;\n s[7][0] = (s[7][0] + h_hi + ((lo / 0x100000000) >>> 0)) >>> 0;\n s[7][1] = lo >>> 0;\n\n len -= 128;\n }\n}\n"],"names":["forge","require$$0","require$$1","require$$2","sha512","sha512Module","exports","md","algorithms","sha384","create","sha256","sha224","algorithm","_initialized","_init","_states","Error","_state","_h","_input","util","createBuffer","_w","Array","wi","digestLength","replace","toLowerCase","blockLength","messageLength","fullMessageLength","messageLengthSize","start","messageLength128","int32s","i","push","length","slice","update","msg","encoding","encodeUtf8","len","putBytes","_update","read","compact","digest","finalBlock","bytes","remaining","overflow","_padding","substr","next","carry","bits","putInt32","h","rval","hlen","_k","String","fromCharCode","fillString","s","w","t1_hi","t1_lo","t2_hi","t2_lo","s0_hi","s0_lo","s1_hi","s1_lo","ch_hi","ch_lo","maj_hi","maj_lo","a_hi","a_lo","b_hi","b_lo","c_hi","c_lo","d_hi","d_lo","e_hi","e_lo","f_hi","f_lo","g_hi","g_lo","h_hi","h_lo","hi","lo","w2","w7","w15","w16","getInt32"],"mappings":"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E,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAClD,CAAC,UAAU,EAAE,UAAU,CAA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","x_google_ignoreList":[0]}