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,244 @@
1
+ import { __module as ssh } from '../../../_virtual/ssh.js';
2
+ import { __require as requireForge } from './forge.js';
3
+ import { __require as requireAes } from './aes.js';
4
+ import { __require as requireHmac } from './hmac.js';
5
+ import { __require as requireMd5 } from './md5.js';
6
+ import { __require as requireSha1 } from './sha1.js';
7
+ import { __require as requireUtil } from './util.js';
8
+
9
+ /**
10
+ * Functions to output keys in SSH-friendly formats.
11
+ *
12
+ * This is part of the Forge project which may be used under the terms of
13
+ * either the BSD License or the GNU General Public License (GPL) Version 2.
14
+ *
15
+ * See: https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE
16
+ *
17
+ * @author https://github.com/shellac
18
+ */
19
+ var hasRequiredSsh;
20
+ function requireSsh() {
21
+ if (hasRequiredSsh) return ssh.exports;
22
+ hasRequiredSsh = 1;
23
+ var forge = requireForge();
24
+ requireAes();
25
+ requireHmac();
26
+ requireMd5();
27
+ requireSha1();
28
+ requireUtil();
29
+ var ssh$1 = ssh.exports = forge.ssh = forge.ssh || {};
30
+
31
+ /**
32
+ * Encodes (and optionally encrypts) a private RSA key as a Putty PPK file.
33
+ *
34
+ * @param privateKey the key.
35
+ * @param passphrase a passphrase to protect the key (falsy for no encryption).
36
+ * @param comment a comment to include in the key file.
37
+ *
38
+ * @return the PPK file as a string.
39
+ */
40
+ ssh$1.privateKeyToPutty = function (privateKey, passphrase, comment) {
41
+ comment = comment || '';
42
+ passphrase = passphrase || '';
43
+ var algorithm = 'ssh-rsa';
44
+ var encryptionAlgorithm = passphrase === '' ? 'none' : 'aes256-cbc';
45
+ var ppk = 'PuTTY-User-Key-File-2: ' + algorithm + '\r\n';
46
+ ppk += 'Encryption: ' + encryptionAlgorithm + '\r\n';
47
+ ppk += 'Comment: ' + comment + '\r\n';
48
+
49
+ // public key into buffer for ppk
50
+ var pubbuffer = forge.util.createBuffer();
51
+ _addStringToBuffer(pubbuffer, algorithm);
52
+ _addBigIntegerToBuffer(pubbuffer, privateKey.e);
53
+ _addBigIntegerToBuffer(pubbuffer, privateKey.n);
54
+
55
+ // write public key
56
+ var pub = forge.util.encode64(pubbuffer.bytes(), 64);
57
+ var length = Math.floor(pub.length / 66) + 1; // 66 = 64 + \r\n
58
+ ppk += 'Public-Lines: ' + length + '\r\n';
59
+ ppk += pub;
60
+
61
+ // private key into a buffer
62
+ var privbuffer = forge.util.createBuffer();
63
+ _addBigIntegerToBuffer(privbuffer, privateKey.d);
64
+ _addBigIntegerToBuffer(privbuffer, privateKey.p);
65
+ _addBigIntegerToBuffer(privbuffer, privateKey.q);
66
+ _addBigIntegerToBuffer(privbuffer, privateKey.qInv);
67
+
68
+ // optionally encrypt the private key
69
+ var priv;
70
+ if (!passphrase) {
71
+ // use the unencrypted buffer
72
+ priv = forge.util.encode64(privbuffer.bytes(), 64);
73
+ } else {
74
+ // encrypt RSA key using passphrase
75
+ var encLen = privbuffer.length() + 16 - 1;
76
+ encLen -= encLen % 16;
77
+
78
+ // pad private key with sha1-d data -- needs to be a multiple of 16
79
+ var padding = _sha1(privbuffer.bytes());
80
+ padding.truncate(padding.length() - encLen + privbuffer.length());
81
+ privbuffer.putBuffer(padding);
82
+ var aeskey = forge.util.createBuffer();
83
+ aeskey.putBuffer(_sha1('\x00\x00\x00\x00', passphrase));
84
+ aeskey.putBuffer(_sha1('\x00\x00\x00\x01', passphrase));
85
+
86
+ // encrypt some bytes using CBC mode
87
+ // key is 40 bytes, so truncate *by* 8 bytes
88
+ var cipher = forge.aes.createEncryptionCipher(aeskey.truncate(8), 'CBC');
89
+ cipher.start(forge.util.createBuffer().fillWithByte(0, 16));
90
+ cipher.update(privbuffer.copy());
91
+ cipher.finish();
92
+ var encrypted = cipher.output;
93
+
94
+ // Note: this appears to differ from Putty -- is forge wrong, or putty?
95
+ // due to padding we finish as an exact multiple of 16
96
+ encrypted.truncate(16); // all padding
97
+
98
+ priv = forge.util.encode64(encrypted.bytes(), 64);
99
+ }
100
+
101
+ // output private key
102
+ length = Math.floor(priv.length / 66) + 1; // 64 + \r\n
103
+ ppk += '\r\nPrivate-Lines: ' + length + '\r\n';
104
+ ppk += priv;
105
+
106
+ // MAC
107
+ var mackey = _sha1('putty-private-key-file-mac-key', passphrase);
108
+ var macbuffer = forge.util.createBuffer();
109
+ _addStringToBuffer(macbuffer, algorithm);
110
+ _addStringToBuffer(macbuffer, encryptionAlgorithm);
111
+ _addStringToBuffer(macbuffer, comment);
112
+ macbuffer.putInt32(pubbuffer.length());
113
+ macbuffer.putBuffer(pubbuffer);
114
+ macbuffer.putInt32(privbuffer.length());
115
+ macbuffer.putBuffer(privbuffer);
116
+ var hmac = forge.hmac.create();
117
+ hmac.start('sha1', mackey);
118
+ hmac.update(macbuffer.bytes());
119
+ ppk += '\r\nPrivate-MAC: ' + hmac.digest().toHex() + '\r\n';
120
+ return ppk;
121
+ };
122
+
123
+ /**
124
+ * Encodes a public RSA key as an OpenSSH file.
125
+ *
126
+ * @param key the key.
127
+ * @param comment a comment.
128
+ *
129
+ * @return the public key in OpenSSH format.
130
+ */
131
+ ssh$1.publicKeyToOpenSSH = function (key, comment) {
132
+ var type = 'ssh-rsa';
133
+ comment = comment || '';
134
+ var buffer = forge.util.createBuffer();
135
+ _addStringToBuffer(buffer, type);
136
+ _addBigIntegerToBuffer(buffer, key.e);
137
+ _addBigIntegerToBuffer(buffer, key.n);
138
+ return type + ' ' + forge.util.encode64(buffer.bytes()) + ' ' + comment;
139
+ };
140
+
141
+ /**
142
+ * Encodes a private RSA key as an OpenSSH file.
143
+ *
144
+ * @param key the key.
145
+ * @param passphrase a passphrase to protect the key (falsy for no encryption).
146
+ *
147
+ * @return the public key in OpenSSH format.
148
+ */
149
+ ssh$1.privateKeyToOpenSSH = function (privateKey, passphrase) {
150
+ if (!passphrase) {
151
+ return forge.pki.privateKeyToPem(privateKey);
152
+ }
153
+ // OpenSSH private key is just a legacy format, it seems
154
+ return forge.pki.encryptRsaPrivateKey(privateKey, passphrase, {
155
+ legacy: true,
156
+ algorithm: 'aes128'
157
+ });
158
+ };
159
+
160
+ /**
161
+ * Gets the SSH fingerprint for the given public key.
162
+ *
163
+ * @param options the options to use.
164
+ * [md] the message digest object to use (defaults to forge.md.md5).
165
+ * [encoding] an alternative output encoding, such as 'hex'
166
+ * (defaults to none, outputs a byte buffer).
167
+ * [delimiter] the delimiter to use between bytes for 'hex' encoded
168
+ * output, eg: ':' (defaults to none).
169
+ *
170
+ * @return the fingerprint as a byte buffer or other encoding based on options.
171
+ */
172
+ ssh$1.getPublicKeyFingerprint = function (key, options) {
173
+ options = options || {};
174
+ var md = options.md || forge.md.md5.create();
175
+ var type = 'ssh-rsa';
176
+ var buffer = forge.util.createBuffer();
177
+ _addStringToBuffer(buffer, type);
178
+ _addBigIntegerToBuffer(buffer, key.e);
179
+ _addBigIntegerToBuffer(buffer, key.n);
180
+
181
+ // hash public key bytes
182
+ md.start();
183
+ md.update(buffer.getBytes());
184
+ var digest = md.digest();
185
+ if (options.encoding === 'hex') {
186
+ var hex = digest.toHex();
187
+ if (options.delimiter) {
188
+ return hex.match(/.{2}/g).join(options.delimiter);
189
+ }
190
+ return hex;
191
+ } else if (options.encoding === 'binary') {
192
+ return digest.getBytes();
193
+ } else if (options.encoding) {
194
+ throw new Error('Unknown encoding "' + options.encoding + '".');
195
+ }
196
+ return digest;
197
+ };
198
+
199
+ /**
200
+ * Adds len(val) then val to a buffer.
201
+ *
202
+ * @param buffer the buffer to add to.
203
+ * @param val a big integer.
204
+ */
205
+ function _addBigIntegerToBuffer(buffer, val) {
206
+ var hexVal = val.toString(16);
207
+ // ensure 2s complement +ve
208
+ if (hexVal[0] >= '8') {
209
+ hexVal = '00' + hexVal;
210
+ }
211
+ var bytes = forge.util.hexToBytes(hexVal);
212
+ buffer.putInt32(bytes.length);
213
+ buffer.putBytes(bytes);
214
+ }
215
+
216
+ /**
217
+ * Adds len(val) then val to a buffer.
218
+ *
219
+ * @param buffer the buffer to add to.
220
+ * @param val a string.
221
+ */
222
+ function _addStringToBuffer(buffer, val) {
223
+ buffer.putInt32(val.length);
224
+ buffer.putString(val);
225
+ }
226
+
227
+ /**
228
+ * Hashes the arguments into one value using SHA-1.
229
+ *
230
+ * @return the sha1 hash of the provided arguments.
231
+ */
232
+ function _sha1() {
233
+ var sha = forge.md.sha1.create();
234
+ var num = arguments.length;
235
+ for (var i = 0; i < num; ++i) {
236
+ sha.update(arguments[i]);
237
+ }
238
+ return sha.digest();
239
+ }
240
+ return ssh.exports;
241
+ }
242
+
243
+ export { requireSsh as __require };
244
+ //# sourceMappingURL=ssh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssh.js","sources":["../../../../node_modules/node-forge/lib/ssh.js"],"sourcesContent":["/**\n * Functions to output keys in SSH-friendly formats.\n *\n * This is part of the Forge project which may be used under the terms of\n * either the BSD License or the GNU General Public License (GPL) Version 2.\n *\n * See: https://github.com/digitalbazaar/forge/blob/cbebca3780658703d925b61b2caffb1d263a6c1d/LICENSE\n *\n * @author https://github.com/shellac\n */\nvar forge = require('./forge');\nrequire('./aes');\nrequire('./hmac');\nrequire('./md5');\nrequire('./sha1');\nrequire('./util');\n\nvar ssh = module.exports = forge.ssh = forge.ssh || {};\n\n/**\n * Encodes (and optionally encrypts) a private RSA key as a Putty PPK file.\n *\n * @param privateKey the key.\n * @param passphrase a passphrase to protect the key (falsy for no encryption).\n * @param comment a comment to include in the key file.\n *\n * @return the PPK file as a string.\n */\nssh.privateKeyToPutty = function(privateKey, passphrase, comment) {\n comment = comment || '';\n passphrase = passphrase || '';\n var algorithm = 'ssh-rsa';\n var encryptionAlgorithm = (passphrase === '') ? 'none' : 'aes256-cbc';\n\n var ppk = 'PuTTY-User-Key-File-2: ' + algorithm + '\\r\\n';\n ppk += 'Encryption: ' + encryptionAlgorithm + '\\r\\n';\n ppk += 'Comment: ' + comment + '\\r\\n';\n\n // public key into buffer for ppk\n var pubbuffer = forge.util.createBuffer();\n _addStringToBuffer(pubbuffer, algorithm);\n _addBigIntegerToBuffer(pubbuffer, privateKey.e);\n _addBigIntegerToBuffer(pubbuffer, privateKey.n);\n\n // write public key\n var pub = forge.util.encode64(pubbuffer.bytes(), 64);\n var length = Math.floor(pub.length / 66) + 1; // 66 = 64 + \\r\\n\n ppk += 'Public-Lines: ' + length + '\\r\\n';\n ppk += pub;\n\n // private key into a buffer\n var privbuffer = forge.util.createBuffer();\n _addBigIntegerToBuffer(privbuffer, privateKey.d);\n _addBigIntegerToBuffer(privbuffer, privateKey.p);\n _addBigIntegerToBuffer(privbuffer, privateKey.q);\n _addBigIntegerToBuffer(privbuffer, privateKey.qInv);\n\n // optionally encrypt the private key\n var priv;\n if(!passphrase) {\n // use the unencrypted buffer\n priv = forge.util.encode64(privbuffer.bytes(), 64);\n } else {\n // encrypt RSA key using passphrase\n var encLen = privbuffer.length() + 16 - 1;\n encLen -= encLen % 16;\n\n // pad private key with sha1-d data -- needs to be a multiple of 16\n var padding = _sha1(privbuffer.bytes());\n\n padding.truncate(padding.length() - encLen + privbuffer.length());\n privbuffer.putBuffer(padding);\n\n var aeskey = forge.util.createBuffer();\n aeskey.putBuffer(_sha1('\\x00\\x00\\x00\\x00', passphrase));\n aeskey.putBuffer(_sha1('\\x00\\x00\\x00\\x01', passphrase));\n\n // encrypt some bytes using CBC mode\n // key is 40 bytes, so truncate *by* 8 bytes\n var cipher = forge.aes.createEncryptionCipher(aeskey.truncate(8), 'CBC');\n cipher.start(forge.util.createBuffer().fillWithByte(0, 16));\n cipher.update(privbuffer.copy());\n cipher.finish();\n var encrypted = cipher.output;\n\n // Note: this appears to differ from Putty -- is forge wrong, or putty?\n // due to padding we finish as an exact multiple of 16\n encrypted.truncate(16); // all padding\n\n priv = forge.util.encode64(encrypted.bytes(), 64);\n }\n\n // output private key\n length = Math.floor(priv.length / 66) + 1; // 64 + \\r\\n\n ppk += '\\r\\nPrivate-Lines: ' + length + '\\r\\n';\n ppk += priv;\n\n // MAC\n var mackey = _sha1('putty-private-key-file-mac-key', passphrase);\n\n var macbuffer = forge.util.createBuffer();\n _addStringToBuffer(macbuffer, algorithm);\n _addStringToBuffer(macbuffer, encryptionAlgorithm);\n _addStringToBuffer(macbuffer, comment);\n macbuffer.putInt32(pubbuffer.length());\n macbuffer.putBuffer(pubbuffer);\n macbuffer.putInt32(privbuffer.length());\n macbuffer.putBuffer(privbuffer);\n\n var hmac = forge.hmac.create();\n hmac.start('sha1', mackey);\n hmac.update(macbuffer.bytes());\n\n ppk += '\\r\\nPrivate-MAC: ' + hmac.digest().toHex() + '\\r\\n';\n\n return ppk;\n};\n\n/**\n * Encodes a public RSA key as an OpenSSH file.\n *\n * @param key the key.\n * @param comment a comment.\n *\n * @return the public key in OpenSSH format.\n */\nssh.publicKeyToOpenSSH = function(key, comment) {\n var type = 'ssh-rsa';\n comment = comment || '';\n\n var buffer = forge.util.createBuffer();\n _addStringToBuffer(buffer, type);\n _addBigIntegerToBuffer(buffer, key.e);\n _addBigIntegerToBuffer(buffer, key.n);\n\n return type + ' ' + forge.util.encode64(buffer.bytes()) + ' ' + comment;\n};\n\n/**\n * Encodes a private RSA key as an OpenSSH file.\n *\n * @param key the key.\n * @param passphrase a passphrase to protect the key (falsy for no encryption).\n *\n * @return the public key in OpenSSH format.\n */\nssh.privateKeyToOpenSSH = function(privateKey, passphrase) {\n if(!passphrase) {\n return forge.pki.privateKeyToPem(privateKey);\n }\n // OpenSSH private key is just a legacy format, it seems\n return forge.pki.encryptRsaPrivateKey(privateKey, passphrase,\n {legacy: true, algorithm: 'aes128'});\n};\n\n/**\n * Gets the SSH fingerprint for the given public key.\n *\n * @param options the options to use.\n * [md] the message digest object to use (defaults to forge.md.md5).\n * [encoding] an alternative output encoding, such as 'hex'\n * (defaults to none, outputs a byte buffer).\n * [delimiter] the delimiter to use between bytes for 'hex' encoded\n * output, eg: ':' (defaults to none).\n *\n * @return the fingerprint as a byte buffer or other encoding based on options.\n */\nssh.getPublicKeyFingerprint = function(key, options) {\n options = options || {};\n var md = options.md || forge.md.md5.create();\n\n var type = 'ssh-rsa';\n var buffer = forge.util.createBuffer();\n _addStringToBuffer(buffer, type);\n _addBigIntegerToBuffer(buffer, key.e);\n _addBigIntegerToBuffer(buffer, key.n);\n\n // hash public key bytes\n md.start();\n md.update(buffer.getBytes());\n var digest = md.digest();\n if(options.encoding === 'hex') {\n var hex = digest.toHex();\n if(options.delimiter) {\n return hex.match(/.{2}/g).join(options.delimiter);\n }\n return hex;\n } else if(options.encoding === 'binary') {\n return digest.getBytes();\n } else if(options.encoding) {\n throw new Error('Unknown encoding \"' + options.encoding + '\".');\n }\n return digest;\n};\n\n/**\n * Adds len(val) then val to a buffer.\n *\n * @param buffer the buffer to add to.\n * @param val a big integer.\n */\nfunction _addBigIntegerToBuffer(buffer, val) {\n var hexVal = val.toString(16);\n // ensure 2s complement +ve\n if(hexVal[0] >= '8') {\n hexVal = '00' + hexVal;\n }\n var bytes = forge.util.hexToBytes(hexVal);\n buffer.putInt32(bytes.length);\n buffer.putBytes(bytes);\n}\n\n/**\n * Adds len(val) then val to a buffer.\n *\n * @param buffer the buffer to add to.\n * @param val a string.\n */\nfunction _addStringToBuffer(buffer, val) {\n buffer.putInt32(val.length);\n buffer.putString(val);\n}\n\n/**\n * Hashes the arguments into one value using SHA-1.\n *\n * @return the sha1 hash of the provided arguments.\n */\nfunction _sha1() {\n var sha = forge.md.sha1.create();\n var num = arguments.length;\n for (var i = 0; i < num; ++i) {\n sha.update(arguments[i]);\n }\n return sha.digest();\n}\n"],"names":["forge","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","ssh","sshModule","exports","privateKeyToPutty","privateKey","passphrase","comment","algorithm","encryptionAlgorithm","ppk","pubbuffer","util","createBuffer","_addStringToBuffer","_addBigIntegerToBuffer","e","n","pub","encode64","bytes","length","Math","floor","privbuffer","d","p","q","qInv","priv","encLen","padding","_sha1","truncate","putBuffer","aeskey","cipher","aes","createEncryptionCipher","start","fillWithByte","update","copy","finish","encrypted","output","mackey","macbuffer","putInt32","hmac","create","digest","toHex","publicKeyToOpenSSH","key","type","buffer","privateKeyToOpenSSH","pki","privateKeyToPem","encryptRsaPrivateKey","legacy","getPublicKeyFingerprint","options","md","md5","getBytes","encoding","hex","delimiter","match","join","Error","val","hexVal","toString","hexToBytes","putBytes","putString","sha","sha1","num","arguments","i"],"mappings":"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","x_google_ignoreList":[0]}