@thangnm.nip/arouter 0.1.2 → 0.1.4

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 (159) hide show
  1. package/.next/standalone/.next/BUILD_ID +1 -1
  2. package/.next/standalone/.next/app-path-routes-manifest.json +5 -5
  3. package/.next/standalone/.next/build-manifest.json +2 -2
  4. package/.next/standalone/.next/prerender-manifest.json +3 -3
  5. package/.next/standalone/.next/server/app/(dashboard)/mitm/page_client-reference-manifest.js +1 -1
  6. package/.next/standalone/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  7. package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  8. package/.next/standalone/.next/server/app/_global-error.html +2 -2
  9. package/.next/standalone/.next/server/app/_global-error.rsc +1 -1
  10. package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  11. package/.next/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  12. package/.next/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  13. package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  14. package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  15. package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  16. package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  17. package/.next/standalone/.next/server/app/_not-found.html +1 -1
  18. package/.next/standalone/.next/server/app/_not-found.rsc +3 -3
  19. package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  20. package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  21. package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  22. package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  24. package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  25. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  26. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  27. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/console-logs/route_client-reference-manifest.js +1 -1
  28. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  29. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  30. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/settings/route.js +2 -2
  31. package/.next/standalone/.next/server/app/api/cli-tools/antigravity-mitm/settings/route_client-reference-manifest.js +1 -1
  32. package/.next/standalone/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  33. package/.next/standalone/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  34. package/.next/standalone/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  35. package/.next/standalone/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  36. package/.next/standalone/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  37. package/.next/standalone/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js +1 -1
  38. package/.next/standalone/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  39. package/.next/standalone/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  40. package/.next/standalone/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  41. package/.next/standalone/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  42. package/.next/standalone/.next/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  43. package/.next/standalone/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js +1 -1
  44. package/.next/standalone/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  45. package/.next/standalone/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  46. package/.next/standalone/.next/server/app/api/locale/route.js +2 -2
  47. package/.next/standalone/.next/server/app/api/locale/route_client-reference-manifest.js +1 -1
  48. package/.next/standalone/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  49. package/.next/standalone/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  50. package/.next/standalone/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  51. package/.next/standalone/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  52. package/.next/standalone/.next/server/app/api/version/route_client-reference-manifest.js +1 -1
  53. package/.next/standalone/.next/server/app/index.html +1 -1
  54. package/.next/standalone/.next/server/app/index.rsc +4 -4
  55. package/.next/standalone/.next/server/app/index.segments/!KGRhc2hib2FyZCk/__PAGE__.segment.rsc +1 -1
  56. package/.next/standalone/.next/server/app/index.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  57. package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  58. package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  59. package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  60. package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  61. package/.next/standalone/.next/server/app/mitm.html +1 -1
  62. package/.next/standalone/.next/server/app/mitm.rsc +5 -5
  63. package/.next/standalone/.next/server/app/mitm.segments/!KGRhc2hib2FyZCk/mitm/__PAGE__.segment.rsc +2 -2
  64. package/.next/standalone/.next/server/app/mitm.segments/!KGRhc2hib2FyZCk/mitm.segment.rsc +1 -1
  65. package/.next/standalone/.next/server/app/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  66. package/.next/standalone/.next/server/app/mitm.segments/_full.segment.rsc +5 -5
  67. package/.next/standalone/.next/server/app/mitm.segments/_head.segment.rsc +1 -1
  68. package/.next/standalone/.next/server/app/mitm.segments/_index.segment.rsc +3 -3
  69. package/.next/standalone/.next/server/app/mitm.segments/_tree.segment.rsc +1 -1
  70. package/.next/standalone/.next/server/app-paths-manifest.json +5 -5
  71. package/.next/standalone/.next/server/chunks/411.js +1 -1
  72. package/.next/standalone/.next/server/middleware.js +2 -2
  73. package/.next/standalone/.next/server/pages/404.html +1 -1
  74. package/.next/standalone/.next/server/pages/500.html +2 -2
  75. package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
  76. package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
  77. package/.next/standalone/.next/static/chunks/{702-90a93bbee38dba8f.js → 702-0864796c00fc702e.js} +1 -1
  78. package/.next/standalone/node_modules/node-forge/LICENSE +331 -0
  79. package/.next/standalone/node_modules/node-forge/README.md +2071 -0
  80. package/.next/standalone/node_modules/node-forge/dist/forge.all.min.js +2 -0
  81. package/.next/standalone/node_modules/node-forge/dist/forge.all.min.js.map +1 -0
  82. package/.next/standalone/node_modules/node-forge/dist/forge.min.js +2 -0
  83. package/.next/standalone/node_modules/node-forge/dist/forge.min.js.map +1 -0
  84. package/.next/standalone/node_modules/node-forge/dist/prime.worker.min.js +2 -0
  85. package/.next/standalone/node_modules/node-forge/dist/prime.worker.min.js.map +1 -0
  86. package/.next/standalone/node_modules/node-forge/flash/swf/SocketPool.swf +0 -0
  87. package/.next/standalone/node_modules/node-forge/lib/aes.js +1091 -0
  88. package/.next/standalone/node_modules/node-forge/lib/aesCipherSuites.js +282 -0
  89. package/.next/standalone/node_modules/node-forge/lib/asn1-validator.js +91 -0
  90. package/.next/standalone/node_modules/node-forge/lib/asn1.js +1503 -0
  91. package/.next/standalone/node_modules/node-forge/lib/baseN.js +186 -0
  92. package/.next/standalone/node_modules/node-forge/lib/cipher.js +230 -0
  93. package/.next/standalone/node_modules/node-forge/lib/cipherModes.js +999 -0
  94. package/.next/standalone/node_modules/node-forge/lib/des.js +496 -0
  95. package/.next/standalone/node_modules/node-forge/lib/ed25519.js +1072 -0
  96. package/.next/standalone/node_modules/node-forge/lib/forge.js +13 -0
  97. package/.next/standalone/node_modules/node-forge/lib/form.js +149 -0
  98. package/.next/standalone/node_modules/node-forge/lib/hmac.js +146 -0
  99. package/.next/standalone/node_modules/node-forge/lib/http.js +1346 -0
  100. package/.next/standalone/node_modules/node-forge/lib/index.all.js +16 -0
  101. package/.next/standalone/node_modules/node-forge/lib/index.js +33 -0
  102. package/.next/standalone/node_modules/node-forge/lib/jsbn.js +1264 -0
  103. package/.next/standalone/node_modules/node-forge/lib/kem.js +168 -0
  104. package/.next/standalone/node_modules/node-forge/lib/log.js +319 -0
  105. package/.next/standalone/node_modules/node-forge/lib/md.all.js +13 -0
  106. package/.next/standalone/node_modules/node-forge/lib/md.js +11 -0
  107. package/.next/standalone/node_modules/node-forge/lib/md5.js +289 -0
  108. package/.next/standalone/node_modules/node-forge/lib/mgf.js +12 -0
  109. package/.next/standalone/node_modules/node-forge/lib/mgf1.js +57 -0
  110. package/.next/standalone/node_modules/node-forge/lib/oids.js +179 -0
  111. package/.next/standalone/node_modules/node-forge/lib/pbe.js +1023 -0
  112. package/.next/standalone/node_modules/node-forge/lib/pbkdf2.js +211 -0
  113. package/.next/standalone/node_modules/node-forge/lib/pem.js +237 -0
  114. package/.next/standalone/node_modules/node-forge/lib/pkcs1.js +276 -0
  115. package/.next/standalone/node_modules/node-forge/lib/pkcs12.js +1078 -0
  116. package/.next/standalone/node_modules/node-forge/lib/pkcs7.js +1260 -0
  117. package/.next/standalone/node_modules/node-forge/lib/pkcs7asn1.js +410 -0
  118. package/.next/standalone/node_modules/node-forge/lib/pki.js +102 -0
  119. package/.next/standalone/node_modules/node-forge/lib/prime.js +297 -0
  120. package/.next/standalone/node_modules/node-forge/lib/prime.worker.js +168 -0
  121. package/.next/standalone/node_modules/node-forge/lib/prng.js +419 -0
  122. package/.next/standalone/node_modules/node-forge/lib/pss.js +241 -0
  123. package/.next/standalone/node_modules/node-forge/lib/random.js +191 -0
  124. package/.next/standalone/node_modules/node-forge/lib/rc2.js +410 -0
  125. package/.next/standalone/node_modules/node-forge/lib/rsa.js +1949 -0
  126. package/.next/standalone/node_modules/node-forge/lib/sha1.js +319 -0
  127. package/.next/standalone/node_modules/node-forge/lib/sha256.js +327 -0
  128. package/.next/standalone/node_modules/node-forge/lib/sha512.js +561 -0
  129. package/.next/standalone/node_modules/node-forge/lib/socket.js +287 -0
  130. package/.next/standalone/node_modules/node-forge/lib/ssh.js +236 -0
  131. package/.next/standalone/node_modules/node-forge/lib/tls.js +4282 -0
  132. package/.next/standalone/node_modules/node-forge/lib/tlssocket.js +249 -0
  133. package/.next/standalone/node_modules/node-forge/lib/util.js +2652 -0
  134. package/.next/standalone/node_modules/node-forge/lib/x509.js +3242 -0
  135. package/.next/standalone/node_modules/node-forge/lib/xhr.js +738 -0
  136. package/.next/standalone/node_modules/node-forge/package.json +123 -0
  137. package/.next/standalone/node_modules/node-machine-id/.babelrc +26 -0
  138. package/.next/standalone/node_modules/node-machine-id/.eslintignore +2 -0
  139. package/.next/standalone/node_modules/node-machine-id/.eslintrc +140 -0
  140. package/.next/standalone/node_modules/node-machine-id/.flowconfig +9 -0
  141. package/.next/standalone/node_modules/node-machine-id/LICENSE +21 -0
  142. package/.next/standalone/node_modules/node-machine-id/README.md +84 -0
  143. package/.next/standalone/node_modules/node-machine-id/dist/index.js +1 -0
  144. package/.next/standalone/node_modules/node-machine-id/index.js +80 -0
  145. package/.next/standalone/node_modules/node-machine-id/package.json +74 -0
  146. package/.next/standalone/node_modules/node-machine-id/tests/index.js +45 -0
  147. package/.next/standalone/node_modules/node-machine-id/types/index.d.ts +17 -0
  148. package/.next/standalone/node_modules/node-machine-id/webpack.config.babel.js +59 -0
  149. package/.next/standalone/package.json +1 -1
  150. package/.next/standalone/src/mitm/cert/generate.js +32 -0
  151. package/.next/standalone/src/mitm/cert/install.js +176 -0
  152. package/.next/standalone/src/mitm/cert/rootCA.js +173 -0
  153. package/.next/standalone/src/mitm/dns/dnsConfig.js +216 -0
  154. package/.next/standalone/src/mitm/logger.js +8 -0
  155. package/.next/standalone/src/mitm/manager.js +603 -0
  156. package/.next/standalone/src/mitm/paths.js +16 -0
  157. package/package.json +1 -1
  158. /package/.next/standalone/.next/static/{Ws7kclTEFgfHRwd7pk9Ly → DkVxg6bby4SUixuq1vdO8}/_buildManifest.js +0 -0
  159. /package/.next/standalone/.next/static/{Ws7kclTEFgfHRwd7pk9Ly → DkVxg6bby4SUixuq1vdO8}/_ssgManifest.js +0 -0
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Message Digest Algorithm 5 with 128-bit digest (MD5) implementation.
3
+ *
4
+ * @author Dave Longley
5
+ *
6
+ * Copyright (c) 2010-2014 Digital Bazaar, Inc.
7
+ */
8
+ var forge = require('./forge');
9
+ require('./md');
10
+ require('./util');
11
+
12
+ var md5 = module.exports = forge.md5 = forge.md5 || {};
13
+ forge.md.md5 = forge.md.algorithms.md5 = md5;
14
+
15
+ /**
16
+ * Creates an MD5 message digest object.
17
+ *
18
+ * @return a message digest object.
19
+ */
20
+ md5.create = function() {
21
+ // do initialization as necessary
22
+ if(!_initialized) {
23
+ _init();
24
+ }
25
+
26
+ // MD5 state contains four 32-bit integers
27
+ var _state = null;
28
+
29
+ // input buffer
30
+ var _input = forge.util.createBuffer();
31
+
32
+ // used for word storage
33
+ var _w = new Array(16);
34
+
35
+ // message digest object
36
+ var md = {
37
+ algorithm: 'md5',
38
+ blockLength: 64,
39
+ digestLength: 16,
40
+ // 56-bit length of message so far (does not including padding)
41
+ messageLength: 0,
42
+ // true message length
43
+ fullMessageLength: null,
44
+ // size of message length in bytes
45
+ messageLengthSize: 8
46
+ };
47
+
48
+ /**
49
+ * Starts the digest.
50
+ *
51
+ * @return this digest object.
52
+ */
53
+ md.start = function() {
54
+ // up to 56-bit message length for convenience
55
+ md.messageLength = 0;
56
+
57
+ // full message length (set md.messageLength64 for backwards-compatibility)
58
+ md.fullMessageLength = md.messageLength64 = [];
59
+ var int32s = md.messageLengthSize / 4;
60
+ for(var i = 0; i < int32s; ++i) {
61
+ md.fullMessageLength.push(0);
62
+ }
63
+ _input = forge.util.createBuffer();
64
+ _state = {
65
+ h0: 0x67452301,
66
+ h1: 0xEFCDAB89,
67
+ h2: 0x98BADCFE,
68
+ h3: 0x10325476
69
+ };
70
+ return md;
71
+ };
72
+ // start digest automatically for first time
73
+ md.start();
74
+
75
+ /**
76
+ * Updates the digest with the given message input. The given input can
77
+ * treated as raw input (no encoding will be applied) or an encoding of
78
+ * 'utf8' maybe given to encode the input using UTF-8.
79
+ *
80
+ * @param msg the message input to update with.
81
+ * @param encoding the encoding to use (default: 'raw', other: 'utf8').
82
+ *
83
+ * @return this digest object.
84
+ */
85
+ md.update = function(msg, encoding) {
86
+ if(encoding === 'utf8') {
87
+ msg = forge.util.encodeUtf8(msg);
88
+ }
89
+
90
+ // update message length
91
+ var len = msg.length;
92
+ md.messageLength += len;
93
+ len = [(len / 0x100000000) >>> 0, len >>> 0];
94
+ for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {
95
+ md.fullMessageLength[i] += len[1];
96
+ len[1] = len[0] + ((md.fullMessageLength[i] / 0x100000000) >>> 0);
97
+ md.fullMessageLength[i] = md.fullMessageLength[i] >>> 0;
98
+ len[0] = (len[1] / 0x100000000) >>> 0;
99
+ }
100
+
101
+ // add bytes to input buffer
102
+ _input.putBytes(msg);
103
+
104
+ // process bytes
105
+ _update(_state, _w, _input);
106
+
107
+ // compact input buffer every 2K or if empty
108
+ if(_input.read > 2048 || _input.length() === 0) {
109
+ _input.compact();
110
+ }
111
+
112
+ return md;
113
+ };
114
+
115
+ /**
116
+ * Produces the digest.
117
+ *
118
+ * @return a byte buffer containing the digest value.
119
+ */
120
+ md.digest = function() {
121
+ /* Note: Here we copy the remaining bytes in the input buffer and
122
+ add the appropriate MD5 padding. Then we do the final update
123
+ on a copy of the state so that if the user wants to get
124
+ intermediate digests they can do so. */
125
+
126
+ /* Determine the number of bytes that must be added to the message
127
+ to ensure its length is congruent to 448 mod 512. In other words,
128
+ the data to be digested must be a multiple of 512 bits (or 128 bytes).
129
+ This data includes the message, some padding, and the length of the
130
+ message. Since the length of the message will be encoded as 8 bytes (64
131
+ bits), that means that the last segment of the data must have 56 bytes
132
+ (448 bits) of message and padding. Therefore, the length of the message
133
+ plus the padding must be congruent to 448 mod 512 because
134
+ 512 - 128 = 448.
135
+
136
+ In order to fill up the message length it must be filled with
137
+ padding that begins with 1 bit followed by all 0 bits. Padding
138
+ must *always* be present, so if the message length is already
139
+ congruent to 448 mod 512, then 512 padding bits must be added. */
140
+
141
+ var finalBlock = forge.util.createBuffer();
142
+ finalBlock.putBytes(_input.bytes());
143
+
144
+ // compute remaining size to be digested (include message length size)
145
+ var remaining = (
146
+ md.fullMessageLength[md.fullMessageLength.length - 1] +
147
+ md.messageLengthSize);
148
+
149
+ // add padding for overflow blockSize - overflow
150
+ // _padding starts with 1 byte with first bit is set (byte value 128), then
151
+ // there may be up to (blockSize - 1) other pad bytes
152
+ var overflow = remaining & (md.blockLength - 1);
153
+ finalBlock.putBytes(_padding.substr(0, md.blockLength - overflow));
154
+
155
+ // serialize message length in bits in little-endian order; since length
156
+ // is stored in bytes we multiply by 8 and add carry
157
+ var bits, carry = 0;
158
+ for(var i = md.fullMessageLength.length - 1; i >= 0; --i) {
159
+ bits = md.fullMessageLength[i] * 8 + carry;
160
+ carry = (bits / 0x100000000) >>> 0;
161
+ finalBlock.putInt32Le(bits >>> 0);
162
+ }
163
+
164
+ var s2 = {
165
+ h0: _state.h0,
166
+ h1: _state.h1,
167
+ h2: _state.h2,
168
+ h3: _state.h3
169
+ };
170
+ _update(s2, _w, finalBlock);
171
+ var rval = forge.util.createBuffer();
172
+ rval.putInt32Le(s2.h0);
173
+ rval.putInt32Le(s2.h1);
174
+ rval.putInt32Le(s2.h2);
175
+ rval.putInt32Le(s2.h3);
176
+ return rval;
177
+ };
178
+
179
+ return md;
180
+ };
181
+
182
+ // padding, constant tables for calculating md5
183
+ var _padding = null;
184
+ var _g = null;
185
+ var _r = null;
186
+ var _k = null;
187
+ var _initialized = false;
188
+
189
+ /**
190
+ * Initializes the constant tables.
191
+ */
192
+ function _init() {
193
+ // create padding
194
+ _padding = String.fromCharCode(128);
195
+ _padding += forge.util.fillString(String.fromCharCode(0x00), 64);
196
+
197
+ // g values
198
+ _g = [
199
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
200
+ 1, 6, 11, 0, 5, 10, 15, 4, 9, 14, 3, 8, 13, 2, 7, 12,
201
+ 5, 8, 11, 14, 1, 4, 7, 10, 13, 0, 3, 6, 9, 12, 15, 2,
202
+ 0, 7, 14, 5, 12, 3, 10, 1, 8, 15, 6, 13, 4, 11, 2, 9];
203
+
204
+ // rounds table
205
+ _r = [
206
+ 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22,
207
+ 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20,
208
+ 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23,
209
+ 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21];
210
+
211
+ // get the result of abs(sin(i + 1)) as a 32-bit integer
212
+ _k = new Array(64);
213
+ for(var i = 0; i < 64; ++i) {
214
+ _k[i] = Math.floor(Math.abs(Math.sin(i + 1)) * 0x100000000);
215
+ }
216
+
217
+ // now initialized
218
+ _initialized = true;
219
+ }
220
+
221
+ /**
222
+ * Updates an MD5 state with the given byte buffer.
223
+ *
224
+ * @param s the MD5 state to update.
225
+ * @param w the array to use to store words.
226
+ * @param bytes the byte buffer to update with.
227
+ */
228
+ function _update(s, w, bytes) {
229
+ // consume 512 bit (64 byte) chunks
230
+ var t, a, b, c, d, f, r, i;
231
+ var len = bytes.length();
232
+ while(len >= 64) {
233
+ // initialize hash value for this chunk
234
+ a = s.h0;
235
+ b = s.h1;
236
+ c = s.h2;
237
+ d = s.h3;
238
+
239
+ // round 1
240
+ for(i = 0; i < 16; ++i) {
241
+ w[i] = bytes.getInt32Le();
242
+ f = d ^ (b & (c ^ d));
243
+ t = (a + f + _k[i] + w[i]);
244
+ r = _r[i];
245
+ a = d;
246
+ d = c;
247
+ c = b;
248
+ b += (t << r) | (t >>> (32 - r));
249
+ }
250
+ // round 2
251
+ for(; i < 32; ++i) {
252
+ f = c ^ (d & (b ^ c));
253
+ t = (a + f + _k[i] + w[_g[i]]);
254
+ r = _r[i];
255
+ a = d;
256
+ d = c;
257
+ c = b;
258
+ b += (t << r) | (t >>> (32 - r));
259
+ }
260
+ // round 3
261
+ for(; i < 48; ++i) {
262
+ f = b ^ c ^ d;
263
+ t = (a + f + _k[i] + w[_g[i]]);
264
+ r = _r[i];
265
+ a = d;
266
+ d = c;
267
+ c = b;
268
+ b += (t << r) | (t >>> (32 - r));
269
+ }
270
+ // round 4
271
+ for(; i < 64; ++i) {
272
+ f = c ^ (b | ~d);
273
+ t = (a + f + _k[i] + w[_g[i]]);
274
+ r = _r[i];
275
+ a = d;
276
+ d = c;
277
+ c = b;
278
+ b += (t << r) | (t >>> (32 - r));
279
+ }
280
+
281
+ // update hash state
282
+ s.h0 = (s.h0 + a) | 0;
283
+ s.h1 = (s.h1 + b) | 0;
284
+ s.h2 = (s.h2 + c) | 0;
285
+ s.h3 = (s.h3 + d) | 0;
286
+
287
+ len -= 64;
288
+ }
289
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Node.js module for Forge mask generation functions.
3
+ *
4
+ * @author Stefan Siegl
5
+ *
6
+ * Copyright 2012 Stefan Siegl <stesie@brokenpipe.de>
7
+ */
8
+ var forge = require('./forge');
9
+ require('./mgf1');
10
+
11
+ module.exports = forge.mgf = forge.mgf || {};
12
+ forge.mgf.mgf1 = forge.mgf1;
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Javascript implementation of mask generation function MGF1.
3
+ *
4
+ * @author Stefan Siegl
5
+ * @author Dave Longley
6
+ *
7
+ * Copyright (c) 2012 Stefan Siegl <stesie@brokenpipe.de>
8
+ * Copyright (c) 2014 Digital Bazaar, Inc.
9
+ */
10
+ var forge = require('./forge');
11
+ require('./util');
12
+
13
+ forge.mgf = forge.mgf || {};
14
+ var mgf1 = module.exports = forge.mgf.mgf1 = forge.mgf1 = forge.mgf1 || {};
15
+
16
+ /**
17
+ * Creates a MGF1 mask generation function object.
18
+ *
19
+ * @param md the message digest API to use (eg: forge.md.sha1.create()).
20
+ *
21
+ * @return a mask generation function object.
22
+ */
23
+ mgf1.create = function(md) {
24
+ var mgf = {
25
+ /**
26
+ * Generate mask of specified length.
27
+ *
28
+ * @param {String} seed The seed for mask generation.
29
+ * @param maskLen Number of bytes to generate.
30
+ * @return {String} The generated mask.
31
+ */
32
+ generate: function(seed, maskLen) {
33
+ /* 2. Let T be the empty octet string. */
34
+ var t = new forge.util.ByteBuffer();
35
+
36
+ /* 3. For counter from 0 to ceil(maskLen / hLen), do the following: */
37
+ var len = Math.ceil(maskLen / md.digestLength);
38
+ for(var i = 0; i < len; i++) {
39
+ /* a. Convert counter to an octet string C of length 4 octets */
40
+ var c = new forge.util.ByteBuffer();
41
+ c.putInt32(i);
42
+
43
+ /* b. Concatenate the hash of the seed mgfSeed and C to the octet
44
+ * string T: */
45
+ md.start();
46
+ md.update(seed + c.getBytes());
47
+ t.putBuffer(md.digest());
48
+ }
49
+
50
+ /* Output the leading maskLen octets of T as the octet string mask. */
51
+ t.truncate(t.length() - maskLen);
52
+ return t.getBytes();
53
+ }
54
+ };
55
+
56
+ return mgf;
57
+ };
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Object IDs for ASN.1.
3
+ *
4
+ * @author Dave Longley
5
+ *
6
+ * Copyright (c) 2010-2013 Digital Bazaar, Inc.
7
+ */
8
+ var forge = require('./forge');
9
+
10
+ forge.pki = forge.pki || {};
11
+ var oids = module.exports = forge.pki.oids = forge.oids = forge.oids || {};
12
+
13
+ // set id to name mapping and name to id mapping
14
+ function _IN(id, name) {
15
+ oids[id] = name;
16
+ oids[name] = id;
17
+ }
18
+ // set id to name mapping only
19
+ function _I_(id, name) {
20
+ oids[id] = name;
21
+ }
22
+
23
+ // algorithm OIDs
24
+ _IN('1.2.840.113549.1.1.1', 'rsaEncryption');
25
+ // Note: md2 & md4 not implemented
26
+ //_IN('1.2.840.113549.1.1.2', 'md2WithRSAEncryption');
27
+ //_IN('1.2.840.113549.1.1.3', 'md4WithRSAEncryption');
28
+ _IN('1.2.840.113549.1.1.4', 'md5WithRSAEncryption');
29
+ _IN('1.2.840.113549.1.1.5', 'sha1WithRSAEncryption');
30
+ _IN('1.2.840.113549.1.1.7', 'RSAES-OAEP');
31
+ _IN('1.2.840.113549.1.1.8', 'mgf1');
32
+ _IN('1.2.840.113549.1.1.9', 'pSpecified');
33
+ _IN('1.2.840.113549.1.1.10', 'RSASSA-PSS');
34
+ _IN('1.2.840.113549.1.1.11', 'sha256WithRSAEncryption');
35
+ _IN('1.2.840.113549.1.1.12', 'sha384WithRSAEncryption');
36
+ _IN('1.2.840.113549.1.1.13', 'sha512WithRSAEncryption');
37
+ // Edwards-curve Digital Signature Algorithm (EdDSA) Ed25519
38
+ _IN('1.3.101.112', 'EdDSA25519');
39
+
40
+ _IN('1.2.840.10040.4.3', 'dsa-with-sha1');
41
+
42
+ _IN('1.3.14.3.2.7', 'desCBC');
43
+
44
+ _IN('1.3.14.3.2.26', 'sha1');
45
+ // Deprecated equivalent of sha1WithRSAEncryption
46
+ _IN('1.3.14.3.2.29', 'sha1WithRSASignature');
47
+ _IN('2.16.840.1.101.3.4.2.1', 'sha256');
48
+ _IN('2.16.840.1.101.3.4.2.2', 'sha384');
49
+ _IN('2.16.840.1.101.3.4.2.3', 'sha512');
50
+ _IN('2.16.840.1.101.3.4.2.4', 'sha224');
51
+ _IN('2.16.840.1.101.3.4.2.5', 'sha512-224');
52
+ _IN('2.16.840.1.101.3.4.2.6', 'sha512-256');
53
+ _IN('1.2.840.113549.2.2', 'md2');
54
+ _IN('1.2.840.113549.2.5', 'md5');
55
+
56
+ // pkcs#7 content types
57
+ _IN('1.2.840.113549.1.7.1', 'data');
58
+ _IN('1.2.840.113549.1.7.2', 'signedData');
59
+ _IN('1.2.840.113549.1.7.3', 'envelopedData');
60
+ _IN('1.2.840.113549.1.7.4', 'signedAndEnvelopedData');
61
+ _IN('1.2.840.113549.1.7.5', 'digestedData');
62
+ _IN('1.2.840.113549.1.7.6', 'encryptedData');
63
+
64
+ // pkcs#9 oids
65
+ _IN('1.2.840.113549.1.9.1', 'emailAddress');
66
+ _IN('1.2.840.113549.1.9.2', 'unstructuredName');
67
+ _IN('1.2.840.113549.1.9.3', 'contentType');
68
+ _IN('1.2.840.113549.1.9.4', 'messageDigest');
69
+ _IN('1.2.840.113549.1.9.5', 'signingTime');
70
+ _IN('1.2.840.113549.1.9.6', 'counterSignature');
71
+ _IN('1.2.840.113549.1.9.7', 'challengePassword');
72
+ _IN('1.2.840.113549.1.9.8', 'unstructuredAddress');
73
+ _IN('1.2.840.113549.1.9.14', 'extensionRequest');
74
+
75
+ _IN('1.2.840.113549.1.9.20', 'friendlyName');
76
+ _IN('1.2.840.113549.1.9.21', 'localKeyId');
77
+ _IN('1.2.840.113549.1.9.22.1', 'x509Certificate');
78
+
79
+ // pkcs#12 safe bags
80
+ _IN('1.2.840.113549.1.12.10.1.1', 'keyBag');
81
+ _IN('1.2.840.113549.1.12.10.1.2', 'pkcs8ShroudedKeyBag');
82
+ _IN('1.2.840.113549.1.12.10.1.3', 'certBag');
83
+ _IN('1.2.840.113549.1.12.10.1.4', 'crlBag');
84
+ _IN('1.2.840.113549.1.12.10.1.5', 'secretBag');
85
+ _IN('1.2.840.113549.1.12.10.1.6', 'safeContentsBag');
86
+
87
+ // password-based-encryption for pkcs#12
88
+ _IN('1.2.840.113549.1.5.13', 'pkcs5PBES2');
89
+ _IN('1.2.840.113549.1.5.12', 'pkcs5PBKDF2');
90
+
91
+ _IN('1.2.840.113549.1.12.1.1', 'pbeWithSHAAnd128BitRC4');
92
+ _IN('1.2.840.113549.1.12.1.2', 'pbeWithSHAAnd40BitRC4');
93
+ _IN('1.2.840.113549.1.12.1.3', 'pbeWithSHAAnd3-KeyTripleDES-CBC');
94
+ _IN('1.2.840.113549.1.12.1.4', 'pbeWithSHAAnd2-KeyTripleDES-CBC');
95
+ _IN('1.2.840.113549.1.12.1.5', 'pbeWithSHAAnd128BitRC2-CBC');
96
+ _IN('1.2.840.113549.1.12.1.6', 'pbewithSHAAnd40BitRC2-CBC');
97
+
98
+ // hmac OIDs
99
+ _IN('1.2.840.113549.2.7', 'hmacWithSHA1');
100
+ _IN('1.2.840.113549.2.8', 'hmacWithSHA224');
101
+ _IN('1.2.840.113549.2.9', 'hmacWithSHA256');
102
+ _IN('1.2.840.113549.2.10', 'hmacWithSHA384');
103
+ _IN('1.2.840.113549.2.11', 'hmacWithSHA512');
104
+
105
+ // symmetric key algorithm oids
106
+ _IN('1.2.840.113549.3.7', 'des-EDE3-CBC');
107
+ _IN('2.16.840.1.101.3.4.1.2', 'aes128-CBC');
108
+ _IN('2.16.840.1.101.3.4.1.22', 'aes192-CBC');
109
+ _IN('2.16.840.1.101.3.4.1.42', 'aes256-CBC');
110
+
111
+ // certificate issuer/subject OIDs
112
+ _IN('2.5.4.3', 'commonName');
113
+ _IN('2.5.4.4', 'surname');
114
+ _IN('2.5.4.5', 'serialNumber');
115
+ _IN('2.5.4.6', 'countryName');
116
+ _IN('2.5.4.7', 'localityName');
117
+ _IN('2.5.4.8', 'stateOrProvinceName');
118
+ _IN('2.5.4.9', 'streetAddress');
119
+ _IN('2.5.4.10', 'organizationName');
120
+ _IN('2.5.4.11', 'organizationalUnitName');
121
+ _IN('2.5.4.12', 'title');
122
+ _IN('2.5.4.13', 'description');
123
+ _IN('2.5.4.15', 'businessCategory');
124
+ _IN('2.5.4.17', 'postalCode');
125
+ _IN('2.5.4.42', 'givenName');
126
+ _IN('1.3.6.1.4.1.311.60.2.1.2', 'jurisdictionOfIncorporationStateOrProvinceName');
127
+ _IN('1.3.6.1.4.1.311.60.2.1.3', 'jurisdictionOfIncorporationCountryName');
128
+
129
+ // X.509 extension OIDs
130
+ _IN('2.16.840.1.113730.1.1', 'nsCertType');
131
+ _IN('2.16.840.1.113730.1.13', 'nsComment'); // deprecated in theory; still widely used
132
+ _I_('2.5.29.1', 'authorityKeyIdentifier'); // deprecated, use .35
133
+ _I_('2.5.29.2', 'keyAttributes'); // obsolete use .37 or .15
134
+ _I_('2.5.29.3', 'certificatePolicies'); // deprecated, use .32
135
+ _I_('2.5.29.4', 'keyUsageRestriction'); // obsolete use .37 or .15
136
+ _I_('2.5.29.5', 'policyMapping'); // deprecated use .33
137
+ _I_('2.5.29.6', 'subtreesConstraint'); // obsolete use .30
138
+ _I_('2.5.29.7', 'subjectAltName'); // deprecated use .17
139
+ _I_('2.5.29.8', 'issuerAltName'); // deprecated use .18
140
+ _I_('2.5.29.9', 'subjectDirectoryAttributes');
141
+ _I_('2.5.29.10', 'basicConstraints'); // deprecated use .19
142
+ _I_('2.5.29.11', 'nameConstraints'); // deprecated use .30
143
+ _I_('2.5.29.12', 'policyConstraints'); // deprecated use .36
144
+ _I_('2.5.29.13', 'basicConstraints'); // deprecated use .19
145
+ _IN('2.5.29.14', 'subjectKeyIdentifier');
146
+ _IN('2.5.29.15', 'keyUsage');
147
+ _I_('2.5.29.16', 'privateKeyUsagePeriod');
148
+ _IN('2.5.29.17', 'subjectAltName');
149
+ _IN('2.5.29.18', 'issuerAltName');
150
+ _IN('2.5.29.19', 'basicConstraints');
151
+ _I_('2.5.29.20', 'cRLNumber');
152
+ _I_('2.5.29.21', 'cRLReason');
153
+ _I_('2.5.29.22', 'expirationDate');
154
+ _I_('2.5.29.23', 'instructionCode');
155
+ _I_('2.5.29.24', 'invalidityDate');
156
+ _I_('2.5.29.25', 'cRLDistributionPoints'); // deprecated use .31
157
+ _I_('2.5.29.26', 'issuingDistributionPoint'); // deprecated use .28
158
+ _I_('2.5.29.27', 'deltaCRLIndicator');
159
+ _I_('2.5.29.28', 'issuingDistributionPoint');
160
+ _I_('2.5.29.29', 'certificateIssuer');
161
+ _I_('2.5.29.30', 'nameConstraints');
162
+ _IN('2.5.29.31', 'cRLDistributionPoints');
163
+ _IN('2.5.29.32', 'certificatePolicies');
164
+ _I_('2.5.29.33', 'policyMappings');
165
+ _I_('2.5.29.34', 'policyConstraints'); // deprecated use .36
166
+ _IN('2.5.29.35', 'authorityKeyIdentifier');
167
+ _I_('2.5.29.36', 'policyConstraints');
168
+ _IN('2.5.29.37', 'extKeyUsage');
169
+ _I_('2.5.29.46', 'freshestCRL');
170
+ _I_('2.5.29.54', 'inhibitAnyPolicy');
171
+
172
+ // extKeyUsage purposes
173
+ _IN('1.3.6.1.4.1.11129.2.4.2', 'timestampList');
174
+ _IN('1.3.6.1.5.5.7.1.1', 'authorityInfoAccess');
175
+ _IN('1.3.6.1.5.5.7.3.1', 'serverAuth');
176
+ _IN('1.3.6.1.5.5.7.3.2', 'clientAuth');
177
+ _IN('1.3.6.1.5.5.7.3.3', 'codeSigning');
178
+ _IN('1.3.6.1.5.5.7.3.4', 'emailProtection');
179
+ _IN('1.3.6.1.5.5.7.3.8', 'timeStamping');