fsevents 1.0.5 → 1.0.6

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.

Potentially problematic release.


This version of fsevents might be problematic. Click here for more details.

Files changed (360) hide show
  1. package/Readme.md +12 -13
  2. package/node_modules/ansi/package.json +1 -2
  3. package/node_modules/are-we-there-yet/package.json +1 -2
  4. package/node_modules/asn1/.travis.yml +4 -0
  5. package/node_modules/asn1/lib/ber/reader.js +27 -33
  6. package/node_modules/asn1/lib/ber/writer.js +10 -11
  7. package/node_modules/asn1/package.json +21 -19
  8. package/node_modules/asn1/tst/ber/reader.test.js +36 -0
  9. package/node_modules/asn1/tst/ber/writer.test.js +74 -0
  10. package/node_modules/assert-plus/package.json +1 -0
  11. package/node_modules/{ctype → bl/node_modules/readable-stream/node_modules/core-util-is}/LICENSE +1 -6
  12. package/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +11 -11
  13. package/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/package.json +17 -12
  14. package/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/test.js +68 -0
  15. package/node_modules/boom/package.json +1 -1
  16. package/node_modules/commander/package.json +1 -1
  17. package/node_modules/core-util-is/LICENSE +19 -0
  18. package/node_modules/core-util-is/lib/util.js +11 -11
  19. package/node_modules/core-util-is/package.json +17 -12
  20. package/node_modules/core-util-is/test.js +68 -0
  21. package/node_modules/dashdash/README.md +508 -0
  22. package/node_modules/dashdash/lib/dashdash.js +813 -0
  23. package/node_modules/dashdash/package.json +87 -0
  24. package/node_modules/deep-extend/LICENSE +1 -1
  25. package/node_modules/deep-extend/README.md +89 -52
  26. package/node_modules/deep-extend/index.js +1 -90
  27. package/node_modules/deep-extend/lib/deep-extend.js +144 -0
  28. package/node_modules/deep-extend/package.json +47 -16
  29. package/node_modules/deep-extend/test/index.spec.js +168 -5
  30. package/node_modules/delegates/package.json +1 -2
  31. package/node_modules/ecc-jsbn/.npmignore +15 -0
  32. package/node_modules/ecc-jsbn/LICENSE +21 -0
  33. package/node_modules/ecc-jsbn/README.md +8 -0
  34. package/node_modules/ecc-jsbn/index.js +57 -0
  35. package/node_modules/ecc-jsbn/lib/LICENSE-jsbn +40 -0
  36. package/node_modules/ecc-jsbn/lib/ec.js +561 -0
  37. package/node_modules/ecc-jsbn/lib/sec.js +170 -0
  38. package/node_modules/ecc-jsbn/package.json +63 -0
  39. package/node_modules/ecc-jsbn/test.js +14 -0
  40. package/node_modules/extsprintf/.gitmodules +6 -0
  41. package/node_modules/{path-is-absolute/license → extsprintf/LICENSE} +2 -4
  42. package/node_modules/extsprintf/Makefile +23 -0
  43. package/node_modules/extsprintf/Makefile.deps +39 -0
  44. package/node_modules/extsprintf/Makefile.targ +285 -0
  45. package/node_modules/extsprintf/README.md +39 -0
  46. package/node_modules/extsprintf/examples/simple.js +2 -0
  47. package/node_modules/{ctype/tools/jsl.conf → extsprintf/jsl.node.conf} +71 -63
  48. package/node_modules/extsprintf/lib/extsprintf.js +166 -0
  49. package/node_modules/extsprintf/package.json +48 -0
  50. package/node_modules/fstream/package.json +1 -2
  51. package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/package.json +4 -22
  52. package/node_modules/{concat-map → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/package.json +3 -21
  53. package/node_modules/{brace-expansion → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion}/package.json +4 -23
  54. package/node_modules/fstream-ignore/node_modules/minimatch/package.json +4 -24
  55. package/node_modules/fstream-ignore/package.json +1 -2
  56. package/node_modules/gauge/package.json +1 -2
  57. package/node_modules/har-validator/package.json +15 -15
  58. package/node_modules/has-unicode/package.json +1 -2
  59. package/node_modules/hawk/dist/client.js +340 -0
  60. package/node_modules/hawk/lib/browser.js +14 -20
  61. package/node_modules/hawk/package.json +10 -10
  62. package/node_modules/hawk/test/browser.js +134 -101
  63. package/node_modules/hawk/test/index.js +61 -61
  64. package/node_modules/hawk/test/server.js +72 -84
  65. package/node_modules/hawk/test/uri.js +52 -63
  66. package/node_modules/http-signature/CHANGES.md +39 -0
  67. package/node_modules/http-signature/http_signing.md +16 -17
  68. package/node_modules/http-signature/lib/index.js +6 -4
  69. package/node_modules/http-signature/lib/parser.js +43 -29
  70. package/node_modules/http-signature/lib/signer.js +290 -74
  71. package/node_modules/http-signature/lib/utils.js +112 -0
  72. package/node_modules/http-signature/lib/verify.js +47 -15
  73. package/node_modules/http-signature/package.json +20 -14
  74. package/node_modules/is-my-json-valid/index.js +16 -14
  75. package/node_modules/is-my-json-valid/package.json +16 -12
  76. package/node_modules/is-typedarray/LICENSE.md +18 -0
  77. package/node_modules/is-typedarray/README.md +16 -0
  78. package/node_modules/is-typedarray/index.js +41 -0
  79. package/node_modules/is-typedarray/package.json +63 -0
  80. package/node_modules/is-typedarray/test.js +34 -0
  81. package/node_modules/jodid25519/.npmignore +11 -0
  82. package/node_modules/jodid25519/.travis.yml +7 -0
  83. package/node_modules/jodid25519/AUTHORS.md +3 -0
  84. package/node_modules/jodid25519/LICENSE +23 -0
  85. package/node_modules/jodid25519/README.md +51 -0
  86. package/node_modules/jodid25519/almond.0 +42 -0
  87. package/node_modules/jodid25519/almond.1 +13 -0
  88. package/node_modules/jodid25519/index.js +35 -0
  89. package/node_modules/jodid25519/jsdoc.json +19 -0
  90. package/node_modules/jodid25519/lib/core.js +481 -0
  91. package/node_modules/jodid25519/lib/curve255.js +221 -0
  92. package/node_modules/jodid25519/lib/dh.js +111 -0
  93. package/node_modules/jodid25519/lib/eddsa.js +573 -0
  94. package/node_modules/jodid25519/lib/utils.js +198 -0
  95. package/node_modules/jodid25519/package.json +77 -0
  96. package/node_modules/jsbn/.npmignore +2 -0
  97. package/node_modules/jsbn/LICENSE +40 -0
  98. package/node_modules/jsbn/README.md +175 -0
  99. package/node_modules/jsbn/example.html +12 -0
  100. package/node_modules/jsbn/example.js +3 -0
  101. package/node_modules/jsbn/index.js +1358 -0
  102. package/node_modules/jsbn/package.json +60 -0
  103. package/node_modules/json-schema/README.md +5 -0
  104. package/node_modules/json-schema/draft-00/hyper-schema +68 -0
  105. package/node_modules/json-schema/draft-00/json-ref +26 -0
  106. package/node_modules/json-schema/draft-00/links +33 -0
  107. package/node_modules/json-schema/draft-00/schema +155 -0
  108. package/node_modules/json-schema/draft-01/hyper-schema +68 -0
  109. package/node_modules/json-schema/draft-01/json-ref +26 -0
  110. package/node_modules/json-schema/draft-01/links +33 -0
  111. package/node_modules/json-schema/draft-01/schema +155 -0
  112. package/node_modules/json-schema/draft-02/hyper-schema +68 -0
  113. package/node_modules/json-schema/draft-02/json-ref +26 -0
  114. package/node_modules/json-schema/draft-02/links +35 -0
  115. package/node_modules/json-schema/draft-02/schema +166 -0
  116. package/node_modules/json-schema/draft-03/examples/address +20 -0
  117. package/node_modules/json-schema/draft-03/examples/calendar +53 -0
  118. package/node_modules/json-schema/draft-03/examples/card +105 -0
  119. package/node_modules/json-schema/draft-03/examples/geo +8 -0
  120. package/node_modules/json-schema/draft-03/examples/interfaces +23 -0
  121. package/node_modules/json-schema/draft-03/hyper-schema +60 -0
  122. package/node_modules/json-schema/draft-03/json-ref +26 -0
  123. package/node_modules/json-schema/draft-03/links +35 -0
  124. package/node_modules/json-schema/draft-03/schema +174 -0
  125. package/node_modules/json-schema/draft-04/hyper-schema +60 -0
  126. package/node_modules/json-schema/draft-04/links +41 -0
  127. package/node_modules/json-schema/draft-04/schema +189 -0
  128. package/node_modules/json-schema/draft-zyp-json-schema-03.xml +1120 -0
  129. package/node_modules/json-schema/draft-zyp-json-schema-04.xml +1072 -0
  130. package/node_modules/json-schema/lib/links.js +52 -0
  131. package/node_modules/json-schema/lib/validate.js +260 -0
  132. package/node_modules/json-schema/package.json +67 -0
  133. package/node_modules/json-schema/test/tests.js +95 -0
  134. package/node_modules/jsprim/CHANGES.md +30 -0
  135. package/node_modules/jsprim/LICENSE +19 -0
  136. package/node_modules/jsprim/README.md +228 -0
  137. package/node_modules/jsprim/lib/jsprim.js +478 -0
  138. package/node_modules/jsprim/package.json +54 -0
  139. package/node_modules/lodash._basetostring/package.json +1 -2
  140. package/node_modules/lodash._createpadding/package.json +1 -2
  141. package/node_modules/lodash.pad/package.json +1 -2
  142. package/node_modules/lodash.padleft/package.json +1 -2
  143. package/node_modules/lodash.padright/package.json +1 -2
  144. package/node_modules/lodash.repeat/package.json +1 -2
  145. package/node_modules/node-pre-gyp/CHANGELOG.md +8 -0
  146. package/node_modules/node-pre-gyp/README.md +570 -0
  147. package/node_modules/node-pre-gyp/lib/util/abi_crosswalk.json +4 -0
  148. package/node_modules/node-pre-gyp/node_modules/nopt/lib/nopt.js +2 -1
  149. package/node_modules/{abbrev → node-pre-gyp/node_modules/nopt/node_modules/abbrev}/package.json +30 -37
  150. package/node_modules/node-pre-gyp/node_modules/nopt/package.json +37 -57
  151. package/node_modules/node-pre-gyp/node_modules/nopt/test/basic.js +22 -0
  152. package/node_modules/node-pre-gyp/package.json +17 -17
  153. package/node_modules/node-uuid/.npmignore +2 -0
  154. package/node_modules/node-uuid/README.md +12 -1
  155. package/node_modules/node-uuid/bower.json +1 -1
  156. package/node_modules/node-uuid/component.json +11 -4
  157. package/node_modules/node-uuid/package.json +25 -12
  158. package/node_modules/node-uuid/test/test.js +3 -0
  159. package/node_modules/node-uuid/uuid.js +70 -45
  160. package/node_modules/npmlog/.travis.yml +14 -0
  161. package/node_modules/npmlog/log.js +3 -0
  162. package/node_modules/npmlog/package.json +23 -20
  163. package/node_modules/npmlog/test/basic.js +8 -1
  164. package/node_modules/once/package.json +2 -3
  165. package/node_modules/pinkie/index.js +23 -7
  166. package/node_modules/pinkie/package.json +22 -15
  167. package/node_modules/pinkie/readme.md +17 -9
  168. package/node_modules/pinkie-promise/package.json +16 -14
  169. package/node_modules/pinkie-promise/readme.md +5 -3
  170. package/node_modules/rc/README.md +1 -1
  171. package/node_modules/rc/index.js +1 -1
  172. package/node_modules/rc/node_modules/minimist/package.json +1 -1
  173. package/node_modules/rc/package.json +12 -12
  174. package/node_modules/request/.eslintrc +1 -1
  175. package/node_modules/request/.travis.yml +4 -4
  176. package/node_modules/request/CHANGELOG.md +25 -0
  177. package/node_modules/request/README.md +12 -13
  178. package/node_modules/request/lib/har.js +84 -75
  179. package/node_modules/request/lib/redirect.js +2 -3
  180. package/node_modules/request/lib/tunnel.js +13 -18
  181. package/node_modules/request/package.json +17 -16
  182. package/node_modules/request/request.js +16 -59
  183. package/node_modules/rimraf/README.md +7 -2
  184. package/node_modules/{wrappy → rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy}/package.json +5 -25
  185. package/node_modules/{inflight → rimraf/node_modules/glob/node_modules/inflight}/package.json +5 -25
  186. package/node_modules/rimraf/node_modules/glob/node_modules/inherits/LICENSE +16 -0
  187. package/node_modules/rimraf/node_modules/glob/node_modules/inherits/README.md +42 -0
  188. package/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits.js +1 -0
  189. package/node_modules/rimraf/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
  190. package/node_modules/rimraf/node_modules/glob/node_modules/inherits/package.json +58 -0
  191. package/node_modules/rimraf/node_modules/glob/node_modules/inherits/test.js +25 -0
  192. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/.npmignore +3 -0
  193. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md +122 -0
  194. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/example.js +8 -0
  195. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js +191 -0
  196. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore +2 -0
  197. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.travis.yml +3 -0
  198. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md +21 -0
  199. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/Makefile +6 -0
  200. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md +80 -0
  201. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/example.js +5 -0
  202. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js +38 -0
  203. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json +79 -0
  204. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/test/balanced.js +56 -0
  205. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml +4 -0
  206. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE +18 -0
  207. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown +62 -0
  208. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js +6 -0
  209. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js +13 -0
  210. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json +90 -0
  211. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js +39 -0
  212. package/node_modules/rimraf/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json +81 -0
  213. package/node_modules/rimraf/node_modules/{minimatch → glob/node_modules/minimatch}/package.json +3 -21
  214. package/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/README.md +36 -0
  215. package/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/package.json +58 -0
  216. package/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/test/basic.js +51 -0
  217. package/node_modules/rimraf/node_modules/glob/node_modules/once/node_modules/wrappy/wrappy.js +33 -0
  218. package/node_modules/rimraf/node_modules/glob/node_modules/once/package.json +70 -0
  219. package/node_modules/{path-is-absolute → rimraf/node_modules/glob/node_modules/path-is-absolute}/package.json +4 -22
  220. package/node_modules/rimraf/node_modules/glob/package.json +2 -20
  221. package/node_modules/rimraf/package.json +10 -10
  222. package/node_modules/semver/README.md +25 -1
  223. package/node_modules/semver/package.json +10 -10
  224. package/node_modules/semver/range.bnf +16 -0
  225. package/node_modules/semver/semver.js +0 -12
  226. package/node_modules/sshpk/.npmignore +8 -0
  227. package/node_modules/sshpk/.travis.yml +11 -0
  228. package/node_modules/sshpk/LICENSE +18 -0
  229. package/node_modules/sshpk/README.md +436 -0
  230. package/node_modules/sshpk/bin/sshpk-conv +183 -0
  231. package/node_modules/sshpk/lib/algs.js +168 -0
  232. package/node_modules/sshpk/lib/dhe.js +312 -0
  233. package/node_modules/sshpk/lib/ed-compat.js +94 -0
  234. package/node_modules/sshpk/lib/errors.js +58 -0
  235. package/node_modules/sshpk/lib/fingerprint.js +140 -0
  236. package/node_modules/sshpk/lib/formats/auto.js +73 -0
  237. package/node_modules/sshpk/lib/formats/pem.js +152 -0
  238. package/node_modules/sshpk/lib/formats/pkcs1.js +320 -0
  239. package/node_modules/sshpk/lib/formats/pkcs8.js +510 -0
  240. package/node_modules/sshpk/lib/formats/rfc4253.js +145 -0
  241. package/node_modules/sshpk/lib/formats/ssh-private.js +138 -0
  242. package/node_modules/sshpk/lib/formats/ssh.js +114 -0
  243. package/node_modules/sshpk/lib/index.js +25 -0
  244. package/node_modules/sshpk/lib/key.js +260 -0
  245. package/node_modules/sshpk/lib/private-key.js +224 -0
  246. package/node_modules/sshpk/lib/signature.js +237 -0
  247. package/node_modules/sshpk/lib/ssh-buffer.js +123 -0
  248. package/node_modules/sshpk/lib/utils.js +207 -0
  249. package/node_modules/sshpk/node_modules/assert-plus/AUTHORS +6 -0
  250. package/node_modules/sshpk/node_modules/assert-plus/CHANGES.md +8 -0
  251. package/node_modules/sshpk/node_modules/assert-plus/README.md +155 -0
  252. package/node_modules/sshpk/node_modules/assert-plus/assert.js +206 -0
  253. package/node_modules/sshpk/node_modules/assert-plus/package.json +88 -0
  254. package/node_modules/sshpk/package.json +92 -0
  255. package/node_modules/strip-json-comments/cli.js +2 -2
  256. package/node_modules/strip-json-comments/package.json +13 -12
  257. package/node_modules/strip-json-comments/readme.md +11 -5
  258. package/node_modules/strip-json-comments/strip-json-comments.js +16 -7
  259. package/node_modules/tar/package.json +1 -2
  260. package/node_modules/tar-pack/node_modules/readable-stream/node_modules/core-util-is/LICENSE +19 -0
  261. package/node_modules/tar-pack/node_modules/readable-stream/node_modules/core-util-is/lib/util.js +11 -11
  262. package/node_modules/tar-pack/node_modules/readable-stream/node_modules/core-util-is/package.json +17 -12
  263. package/node_modules/tar-pack/node_modules/readable-stream/node_modules/core-util-is/test.js +68 -0
  264. package/node_modules/tar-pack/node_modules/readable-stream/node_modules/inherits/package.json +1 -1
  265. package/node_modules/tar-pack/node_modules/rimraf/package.json +1 -2
  266. package/node_modules/tar-pack/package.json +1 -2
  267. package/node_modules/tough-cookie/lib/cookie.js +1 -1
  268. package/node_modules/tough-cookie/package.json +7 -7
  269. package/node_modules/tweetnacl/.npmignore +4 -0
  270. package/node_modules/tweetnacl/CHANGELOG.md +128 -0
  271. package/node_modules/tweetnacl/README.md +463 -0
  272. package/node_modules/tweetnacl/nacl-fast.js +2418 -0
  273. package/node_modules/tweetnacl/nacl-fast.min.js +2 -0
  274. package/node_modules/tweetnacl/nacl.js +1205 -0
  275. package/node_modules/tweetnacl/nacl.min.js +1 -0
  276. package/node_modules/tweetnacl/package.json +101 -0
  277. package/node_modules/uid-number/package.json +2 -3
  278. package/node_modules/verror/.gitmodules +0 -0
  279. package/node_modules/verror/LICENSE +19 -0
  280. package/node_modules/verror/Makefile +35 -0
  281. package/node_modules/verror/Makefile.targ +285 -0
  282. package/node_modules/verror/README.md +120 -0
  283. package/node_modules/verror/examples/levels-verror.js +36 -0
  284. package/node_modules/verror/examples/levels-werror.js +34 -0
  285. package/node_modules/verror/examples/varargs.js +6 -0
  286. package/node_modules/verror/examples/verror.js +13 -0
  287. package/node_modules/verror/examples/werror.js +14 -0
  288. package/node_modules/verror/jsl.node.conf +139 -0
  289. package/node_modules/verror/lib/verror.js +157 -0
  290. package/node_modules/verror/package.json +51 -0
  291. package/node_modules/verror/tests/tst.inherit.js +100 -0
  292. package/node_modules/verror/tests/tst.verror.js +156 -0
  293. package/node_modules/verror/tests/tst.werror.js +179 -0
  294. package/package.json +3 -3
  295. package/node_modules/bl/node_modules/readable-stream/node_modules/core-util-is/util.js +0 -106
  296. package/node_modules/core-util-is/util.js +0 -106
  297. package/node_modules/ctype/.npmignore +0 -1
  298. package/node_modules/ctype/CHANGELOG +0 -78
  299. package/node_modules/ctype/README +0 -82
  300. package/node_modules/ctype/README.old +0 -298
  301. package/node_modules/ctype/ctf.js +0 -245
  302. package/node_modules/ctype/ctio.js +0 -1485
  303. package/node_modules/ctype/ctype.js +0 -944
  304. package/node_modules/ctype/man/man3ctype/ctio.3ctype +0 -241
  305. package/node_modules/ctype/package.json +0 -51
  306. package/node_modules/ctype/tools/jsstyle +0 -839
  307. package/node_modules/http-signature/lib/util.js +0 -306
  308. package/node_modules/inflight/node_modules/once/package.json +0 -86
  309. package/node_modules/inflight/node_modules/once/test/once.js +0 -23
  310. package/node_modules/rimraf/node_modules/glob/LICENSE +0 -15
  311. package/node_modules/rimraf/node_modules/minimatch/LICENSE +0 -15
  312. package/node_modules/rimraf/node_modules/once/LICENSE +0 -15
  313. package/node_modules/rimraf/node_modules/once/README.md +0 -51
  314. package/node_modules/rimraf/node_modules/once/once.js +0 -21
  315. package/node_modules/rimraf/node_modules/once/package.json +0 -84
  316. package/node_modules/rimraf/node_modules/once/test/once.js +0 -23
  317. package/node_modules/tar-pack/node_modules/readable-stream/node_modules/core-util-is/util.js +0 -106
  318. package/node_modules/wrappy/LICENSE +0 -15
  319. /package/node_modules/{brace-expansion → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion}/.npmignore +0 -0
  320. /package/node_modules/{brace-expansion → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion}/README.md +0 -0
  321. /package/node_modules/{brace-expansion → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion}/example.js +0 -0
  322. /package/node_modules/{brace-expansion → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion}/index.js +0 -0
  323. /package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/.npmignore +0 -0
  324. /package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/.travis.yml +0 -0
  325. /package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/LICENSE.md +0 -0
  326. /package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/Makefile +0 -0
  327. /package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/README.md +0 -0
  328. /package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/example.js +0 -0
  329. /package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/index.js +0 -0
  330. /package/node_modules/{balanced-match → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match}/test/balanced.js +0 -0
  331. /package/node_modules/{concat-map → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/.travis.yml +0 -0
  332. /package/node_modules/{concat-map → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/LICENSE +0 -0
  333. /package/node_modules/{concat-map → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/README.markdown +0 -0
  334. /package/node_modules/{concat-map → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/example/map.js +0 -0
  335. /package/node_modules/{concat-map → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/index.js +0 -0
  336. /package/node_modules/{concat-map → fstream-ignore/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map}/test/map.js +0 -0
  337. /package/node_modules/{abbrev → node-pre-gyp/node_modules/nopt/node_modules/abbrev}/.npmignore +0 -0
  338. /package/node_modules/{abbrev → node-pre-gyp/node_modules/nopt/node_modules/abbrev}/.travis.yml +0 -0
  339. /package/node_modules/{abbrev → node-pre-gyp/node_modules/nopt/node_modules/abbrev}/CONTRIBUTING.md +0 -0
  340. /package/node_modules/{abbrev → node-pre-gyp/node_modules/nopt/node_modules/abbrev}/LICENSE +0 -0
  341. /package/node_modules/{abbrev → node-pre-gyp/node_modules/nopt/node_modules/abbrev}/README.md +0 -0
  342. /package/node_modules/{abbrev → node-pre-gyp/node_modules/nopt/node_modules/abbrev}/abbrev.js +0 -0
  343. /package/node_modules/{abbrev → node-pre-gyp/node_modules/nopt/node_modules/abbrev}/test.js +0 -0
  344. /package/node_modules/{inflight → rimraf/node_modules/glob/node_modules/inflight}/.eslintrc +0 -0
  345. /package/node_modules/{inflight → rimraf/node_modules/glob/node_modules/inflight}/LICENSE +0 -0
  346. /package/node_modules/{inflight → rimraf/node_modules/glob/node_modules/inflight}/README.md +0 -0
  347. /package/node_modules/{inflight → rimraf/node_modules/glob/node_modules/inflight}/inflight.js +0 -0
  348. /package/node_modules/{fstream-ignore/node_modules/minimatch → rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy}/LICENSE +0 -0
  349. /package/node_modules/{wrappy → rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy}/README.md +0 -0
  350. /package/node_modules/{wrappy → rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy}/test/basic.js +0 -0
  351. /package/node_modules/{wrappy → rimraf/node_modules/glob/node_modules/inflight/node_modules/wrappy}/wrappy.js +0 -0
  352. /package/node_modules/{inflight → rimraf/node_modules/glob/node_modules/inflight}/test.js +0 -0
  353. /package/node_modules/rimraf/node_modules/{minimatch → glob/node_modules/minimatch}/README.md +0 -0
  354. /package/node_modules/rimraf/node_modules/{minimatch → glob/node_modules/minimatch}/minimatch.js +0 -0
  355. /package/node_modules/{inflight → rimraf/node_modules/glob}/node_modules/once/README.md +0 -0
  356. /package/node_modules/{inflight/node_modules/once → rimraf/node_modules/glob/node_modules/once/node_modules/wrappy}/LICENSE +0 -0
  357. /package/node_modules/{inflight → rimraf/node_modules/glob}/node_modules/once/once.js +0 -0
  358. /package/node_modules/{path-is-absolute → rimraf/node_modules/glob/node_modules/path-is-absolute}/index.js +0 -0
  359. /package/node_modules/{path-is-absolute → rimraf/node_modules/glob/node_modules/path-is-absolute}/readme.md +0 -0
  360. /package/node_modules/{deep-extend → verror}/.npmignore +0 -0
@@ -0,0 +1,138 @@
1
+ // Copyright 2015 Joyent, Inc.
2
+
3
+ module.exports = {
4
+ read: read,
5
+ readSSHPrivate: readSSHPrivate,
6
+ write: write
7
+ };
8
+
9
+ var assert = require('assert-plus');
10
+ var asn1 = require('asn1');
11
+ var algs = require('../algs');
12
+ var utils = require('../utils');
13
+ var crypto = require('crypto');
14
+
15
+ var Key = require('../key');
16
+ var PrivateKey = require('../private-key');
17
+ var pem = require('./pem');
18
+ var rfc4253 = require('./rfc4253');
19
+ var SSHBuffer = require('../ssh-buffer');
20
+
21
+ function read(buf) {
22
+ return (pem.read(buf));
23
+ }
24
+
25
+ var MAGIC = 'openssh-key-v1';
26
+
27
+ function readSSHPrivate(type, buf) {
28
+ buf = new SSHBuffer({buffer: buf});
29
+
30
+ var magic = buf.readCString();
31
+ assert.strictEqual(magic, MAGIC, 'bad magic string');
32
+
33
+ var cipher = buf.readString();
34
+ var kdf = buf.readString();
35
+
36
+ /* We only support unencrypted keys. */
37
+ if (cipher !== 'none' || kdf !== 'none') {
38
+ throw (new Error('OpenSSH-format key is encrypted ' +
39
+ '(password-protected). Please use the SSH agent ' +
40
+ 'or decrypt the key.'));
41
+ }
42
+
43
+ /* Skip over kdfoptions. */
44
+ buf.readString();
45
+
46
+ var nkeys = buf.readInt();
47
+ if (nkeys !== 1) {
48
+ throw (new Error('OpenSSH-format key file contains ' +
49
+ 'multiple keys: this is unsupported.'));
50
+ }
51
+
52
+ var pubKey = buf.readBuffer();
53
+
54
+ if (type === 'public') {
55
+ assert.ok(buf.atEnd(), 'excess bytes left after key');
56
+ return (rfc4253.read(pubKey));
57
+ }
58
+
59
+ var privKeyBlob = buf.readBuffer();
60
+ assert.ok(buf.atEnd(), 'excess bytes left after key');
61
+
62
+ buf = new SSHBuffer({buffer: privKeyBlob});
63
+
64
+ var checkInt1 = buf.readInt();
65
+ var checkInt2 = buf.readInt();
66
+ assert.strictEqual(checkInt1, checkInt2, 'checkints do not match');
67
+
68
+ var ret = {};
69
+ var key = rfc4253.readInternal(ret, 'private', buf.remainder());
70
+
71
+ buf.skip(ret.consumed);
72
+
73
+ var comment = buf.readString();
74
+ key.comment = comment;
75
+
76
+ return (key);
77
+ }
78
+
79
+ function write(key) {
80
+ var pubKey;
81
+ if (PrivateKey.isPrivateKey(key))
82
+ pubKey = key.toPublic();
83
+ else
84
+ pubKey = key;
85
+
86
+ var privBuf;
87
+ if (PrivateKey.isPrivateKey(key)) {
88
+ privBuf = new SSHBuffer({});
89
+ var checkInt = crypto.randomBytes(4).readUInt32BE(0);
90
+ privBuf.writeInt(checkInt);
91
+ privBuf.writeInt(checkInt);
92
+ privBuf.write(key.toBuffer('rfc4253'));
93
+ privBuf.writeString(key.comment || '');
94
+
95
+ var n = 1;
96
+ while (privBuf._offset % 8 !== 0)
97
+ privBuf.writeChar(n++);
98
+ }
99
+
100
+ var buf = new SSHBuffer({});
101
+
102
+ buf.writeCString(MAGIC);
103
+ buf.writeString('none'); /* cipher */
104
+ buf.writeString('none'); /* kdf */
105
+ buf.writeBuffer(new Buffer(0)); /* kdfoptions */
106
+
107
+ buf.writeInt(1); /* nkeys */
108
+ buf.writeBuffer(pubKey.toBuffer('rfc4253'));
109
+
110
+ if (privBuf)
111
+ buf.writeBuffer(privBuf.toBuffer());
112
+
113
+ buf = buf.toBuffer();
114
+
115
+ var header;
116
+ if (PrivateKey.isPrivateKey(key))
117
+ header = 'OPENSSH PRIVATE KEY';
118
+ else
119
+ header = 'OPENSSH PUBLIC KEY';
120
+
121
+ var tmp = buf.toString('base64');
122
+ var len = tmp.length + (tmp.length / 70) +
123
+ 18 + 16 + header.length*2 + 10;
124
+ buf = new Buffer(len);
125
+ var o = 0;
126
+ o += buf.write('-----BEGIN ' + header + '-----\n', o);
127
+ for (var i = 0; i < tmp.length; ) {
128
+ var limit = i + 70;
129
+ if (limit > tmp.length)
130
+ limit = tmp.length;
131
+ o += buf.write(tmp.slice(i, limit), o);
132
+ buf[o++] = 10;
133
+ i = limit;
134
+ }
135
+ o += buf.write('-----END ' + header + '-----\n', o);
136
+
137
+ return (buf.slice(0, o));
138
+ }
@@ -0,0 +1,114 @@
1
+ // Copyright 2015 Joyent, Inc.
2
+
3
+ module.exports = {
4
+ read: read,
5
+ write: write
6
+ };
7
+
8
+ var assert = require('assert-plus');
9
+ var rfc4253 = require('./rfc4253');
10
+ var utils = require('../utils');
11
+ var Key = require('../key');
12
+ var PrivateKey = require('../private-key');
13
+
14
+ var sshpriv = require('./ssh-private');
15
+
16
+ /*JSSTYLED*/
17
+ var SSHKEY_RE = /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/]+[=]*)([\n \t]+([^\n]+))?$/;
18
+ /*JSSTYLED*/
19
+ var SSHKEY_RE2 = /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/ \t\n]+[=]*)(.*)$/;
20
+
21
+ function read(buf) {
22
+ if (typeof (buf) !== 'string') {
23
+ assert.buffer(buf, 'buf');
24
+ buf = buf.toString('ascii');
25
+ }
26
+
27
+ var trimmed = buf.trim().replace(/[\\\r]/g, '');
28
+ var m = trimmed.match(SSHKEY_RE);
29
+ if (!m)
30
+ m = trimmed.match(SSHKEY_RE2);
31
+ assert.ok(m, 'key must match regex');
32
+
33
+ var type = rfc4253.algToKeyType(m[1]);
34
+ var kbuf = new Buffer(m[2], 'base64');
35
+
36
+ /*
37
+ * This is a bit tricky. If we managed to parse the key and locate the
38
+ * key comment with the regex, then do a non-partial read and assert
39
+ * that we have consumed all bytes. If we couldn't locate the key
40
+ * comment, though, there may be whitespace shenanigans going on that
41
+ * have conjoined the comment to the rest of the key. We do a partial
42
+ * read in this case to try to make the best out of a sorry situation.
43
+ */
44
+ var key;
45
+ var ret = {};
46
+ if (m[4]) {
47
+ try {
48
+ key = rfc4253.read(kbuf);
49
+
50
+ } catch (e) {
51
+ m = trimmed.match(SSHKEY_RE2);
52
+ assert.ok(m, 'key must match regex');
53
+ kbuf = new Buffer(m[2], 'base64');
54
+ key = rfc4253.readInternal(ret, 'public', kbuf);
55
+ }
56
+ } else {
57
+ key = rfc4253.readInternal(ret, 'public', kbuf);
58
+ }
59
+
60
+ assert.strictEqual(type, key.type);
61
+
62
+ if (m[4] && m[4].length > 0) {
63
+ key.comment = m[4];
64
+
65
+ } else if (ret.consumed) {
66
+ /*
67
+ * Now the magic: trying to recover the key comment when it's
68
+ * gotten conjoined to the key or otherwise shenanigan'd.
69
+ *
70
+ * Work out how much base64 we used, then drop all non-base64
71
+ * chars from the beginning up to this point in the the string.
72
+ * Then offset in this and try to make up for missing = chars.
73
+ */
74
+ var data = m[2] + m[3];
75
+ var realOffset = Math.ceil(ret.consumed / 3) * 4;
76
+ data = data.slice(0, realOffset - 2). /*JSSTYLED*/
77
+ replace(/[^a-zA-Z0-9+\/=]/g, '') +
78
+ data.slice(realOffset - 2);
79
+
80
+ var padding = ret.consumed % 3;
81
+ if (padding > 0 &&
82
+ data.slice(realOffset - 1, realOffset) !== '=')
83
+ realOffset--;
84
+ while (data.slice(realOffset, realOffset + 1) === '=')
85
+ realOffset++;
86
+
87
+ /* Finally, grab what we think is the comment & clean it up. */
88
+ var trailer = data.slice(realOffset);
89
+ trailer = trailer.replace(/[\r\n]/g, ' ').
90
+ replace(/^\s+/, '');
91
+ if (trailer.match(/^[a-zA-Z0-9]/))
92
+ key.comment = trailer;
93
+ }
94
+
95
+ return (key);
96
+ }
97
+
98
+ function write(key) {
99
+ assert.object(key);
100
+ if (!Key.isKey(key))
101
+ throw (new Error('Must be a public key'));
102
+
103
+ var parts = [];
104
+ var alg = rfc4253.keyTypeToAlg(key);
105
+ parts.push(alg);
106
+
107
+ var buf = rfc4253.write(key);
108
+ parts.push(buf.toString('base64'));
109
+
110
+ if (key.comment)
111
+ parts.push(key.comment);
112
+
113
+ return (new Buffer(parts.join(' ')));
114
+ }
@@ -0,0 +1,25 @@
1
+ // Copyright 2015 Joyent, Inc.
2
+
3
+ var Key = require('./key');
4
+ var Fingerprint = require('./fingerprint');
5
+ var Signature = require('./signature');
6
+ var PrivateKey = require('./private-key');
7
+ var errs = require('./errors');
8
+
9
+ module.exports = {
10
+ /* top-level classes */
11
+ Key: Key,
12
+ parseKey: Key.parse,
13
+ Fingerprint: Fingerprint,
14
+ parseFingerprint: Fingerprint.parse,
15
+ Signature: Signature,
16
+ parseSignature: Signature.parse,
17
+ PrivateKey: PrivateKey,
18
+ parsePrivateKey: PrivateKey.parse,
19
+
20
+ /* errors */
21
+ FingerprintFormatError: errs.FingerprintFormatError,
22
+ InvalidAlgorithmError: errs.InvalidAlgorithmError,
23
+ KeyParseError: errs.KeyParseError,
24
+ SignatureParseError: errs.SignatureParseError
25
+ };
@@ -0,0 +1,260 @@
1
+ // Copyright 2015 Joyent, Inc.
2
+
3
+ module.exports = Key;
4
+
5
+ var assert = require('assert-plus');
6
+ var algs = require('./algs');
7
+ var crypto = require('crypto');
8
+ var Fingerprint = require('./fingerprint');
9
+ var Signature = require('./signature');
10
+ var DiffieHellman = require('./dhe');
11
+ var errs = require('./errors');
12
+ var utils = require('./utils');
13
+ var PrivateKey = require('./private-key');
14
+ var edCompat;
15
+
16
+ try {
17
+ edCompat = require('./ed-compat');
18
+ } catch (e) {
19
+ /* Just continue through, and bail out if we try to use it. */
20
+ }
21
+
22
+ var InvalidAlgorithmError = errs.InvalidAlgorithmError;
23
+ var KeyParseError = errs.KeyParseError;
24
+
25
+ var formats = {};
26
+ formats['auto'] = require('./formats/auto');
27
+ formats['pem'] = require('./formats/pem');
28
+ formats['pkcs1'] = require('./formats/pkcs1');
29
+ formats['pkcs8'] = require('./formats/pkcs8');
30
+ formats['rfc4253'] = require('./formats/rfc4253');
31
+ formats['ssh'] = require('./formats/ssh');
32
+ formats['ssh-private'] = require('./formats/ssh-private');
33
+ formats['openssh'] = formats['ssh-private'];
34
+
35
+ function Key(opts) {
36
+ assert.object(opts, 'options');
37
+ assert.arrayOfObject(opts.parts, 'options.parts');
38
+ assert.string(opts.type, 'options.type');
39
+ assert.optionalString(opts.comment, 'options.comment');
40
+
41
+ var algInfo = algs.info[opts.type];
42
+ if (typeof (algInfo) !== 'object')
43
+ throw (new InvalidAlgorithmError(opts.type));
44
+
45
+ var partLookup = {};
46
+ for (var i = 0; i < opts.parts.length; ++i) {
47
+ var part = opts.parts[i];
48
+ partLookup[part.name] = part;
49
+ }
50
+
51
+ this.type = opts.type;
52
+ this.parts = opts.parts;
53
+ this.part = partLookup;
54
+ this.comment = undefined;
55
+ this.source = opts.source;
56
+
57
+ /* for speeding up hashing/fingerprint operations */
58
+ this._rfc4253Cache = opts._rfc4253Cache;
59
+ this._hashCache = {};
60
+
61
+ var sz;
62
+ this.curve = undefined;
63
+ if (this.type === 'ecdsa') {
64
+ var curve = this.part.curve.data.toString();
65
+ this.curve = curve;
66
+ sz = algs.curves[curve].size;
67
+ } else if (this.type === 'ed25519') {
68
+ sz = 256;
69
+ this.curve = 'curve25519';
70
+ } else {
71
+ var szPart = this.part[algInfo.sizePart];
72
+ sz = szPart.data.length;
73
+ sz = sz * 8 - utils.countZeros(szPart.data);
74
+ }
75
+ this.size = sz;
76
+ }
77
+
78
+ Key.formats = formats;
79
+
80
+ Key.prototype.toBuffer = function (format) {
81
+ if (format === undefined)
82
+ format = 'ssh';
83
+ assert.string(format, 'format');
84
+ assert.object(formats[format], 'formats[format]');
85
+
86
+ if (format === 'rfc4253') {
87
+ if (this._rfc4253Cache === undefined)
88
+ this._rfc4253Cache = formats['rfc4253'].write(this);
89
+ return (this._rfc4253Cache);
90
+ }
91
+
92
+ return (formats[format].write(this));
93
+ };
94
+
95
+ Key.prototype.toString = function (format) {
96
+ return (this.toBuffer(format).toString());
97
+ };
98
+
99
+ Key.prototype.hash = function (algo) {
100
+ assert.string(algo, 'algorithm');
101
+ algo = algo.toLowerCase();
102
+ if (algs.hashAlgs[algo] === undefined)
103
+ throw (new InvalidAlgorithmError(algo));
104
+
105
+ if (this._hashCache[algo])
106
+ return (this._hashCache[algo]);
107
+
108
+ var hash = crypto.createHash(algo).
109
+ update(this.toBuffer('rfc4253')).digest();
110
+ /* Workaround for node 0.8 */
111
+ if (typeof (hash) === 'string')
112
+ hash = new Buffer(hash, 'binary');
113
+ this._hashCache[algo] = hash;
114
+ return (hash);
115
+ };
116
+
117
+ Key.prototype.fingerprint = function (algo) {
118
+ if (algo === undefined)
119
+ algo = 'sha256';
120
+ assert.string(algo, 'algorithm');
121
+ var opts = {
122
+ hash: this.hash(algo),
123
+ algorithm: algo
124
+ };
125
+ return (new Fingerprint(opts));
126
+ };
127
+
128
+ Key.prototype.defaultHashAlgorithm = function () {
129
+ var hashAlgo = 'sha1';
130
+ if (this.type === 'rsa')
131
+ hashAlgo = 'sha256';
132
+ if (this.type === 'dsa' && this.size > 1024)
133
+ hashAlgo = 'sha256';
134
+ if (this.type === 'ed25519')
135
+ hashAlgo = 'sha512';
136
+ if (this.type === 'ecdsa') {
137
+ if (this.size <= 256)
138
+ hashAlgo = 'sha256';
139
+ else if (this.size <= 384)
140
+ hashAlgo = 'sha384';
141
+ else
142
+ hashAlgo = 'sha512';
143
+ }
144
+ return (hashAlgo);
145
+ };
146
+
147
+ Key.prototype.createVerify = function (hashAlgo) {
148
+ if (hashAlgo === undefined)
149
+ hashAlgo = this.defaultHashAlgorithm();
150
+ assert.string(hashAlgo, 'hash algorithm');
151
+
152
+ /* ED25519 is not supported by OpenSSL, use a javascript impl. */
153
+ if (this.type === 'ed25519' && edCompat !== undefined)
154
+ return (new edCompat.Verifier(this, hashAlgo));
155
+ if (this.type === 'curve25519')
156
+ throw (new Error('Curve25519 keys are not suitable for ' +
157
+ 'signing or verification'));
158
+
159
+ var v, nm, err;
160
+ try {
161
+ nm = this.type.toUpperCase() + '-';
162
+ if (this.type === 'ecdsa')
163
+ nm = 'ecdsa-with-';
164
+ nm += hashAlgo.toUpperCase();
165
+ v = crypto.createVerify(nm);
166
+ } catch (e) {
167
+ err = e;
168
+ }
169
+ if (v === undefined || (err instanceof Error &&
170
+ err.message.match(/Unknown message digest/))) {
171
+ nm = 'RSA-';
172
+ nm += hashAlgo.toUpperCase();
173
+ v = crypto.createVerify(nm);
174
+ }
175
+ assert.ok(v, 'failed to create verifier');
176
+ var oldVerify = v.verify.bind(v);
177
+ var key = this.toBuffer('pkcs8');
178
+ v.verify = function (signature, fmt) {
179
+ if (Signature.isSignature(signature, [2, 0])) {
180
+ return (oldVerify(key, signature.toBuffer('asn1')));
181
+
182
+ } else if (typeof (signature) === 'string' ||
183
+ Buffer.isBuffer(signature)) {
184
+ return (oldVerify(key, signature, fmt));
185
+
186
+ /*
187
+ * Avoid doing this on valid arguments, walking the prototype
188
+ * chain can be quite slow.
189
+ */
190
+ } else if (Signature.isSignature(signature, [1, 0])) {
191
+ throw (new Error('signature was created by too old ' +
192
+ 'a version of sshpk and cannot be verified'));
193
+
194
+ } else {
195
+ throw (new TypeError('signature must be a string, ' +
196
+ 'Buffer, or Signature object'));
197
+ }
198
+ };
199
+ return (v);
200
+ };
201
+
202
+ Key.prototype.createDiffieHellman = function () {
203
+ if (this.type === 'rsa')
204
+ throw (new Error('RSA keys do not support Diffie-Hellman'));
205
+
206
+ return (new DiffieHellman(this));
207
+ };
208
+ Key.prototype.createDH = Key.prototype.createDiffieHellman;
209
+
210
+ Key.parse = function (data, format, name) {
211
+ if (typeof (data) !== 'string')
212
+ assert.buffer(data, 'data');
213
+ if (format === undefined)
214
+ format = 'auto';
215
+ assert.string(format, 'format');
216
+ if (name === undefined)
217
+ name = '(unnamed)';
218
+
219
+ assert.object(formats[format], 'formats[format]');
220
+
221
+ try {
222
+ var k = formats[format].read(data);
223
+ if (k instanceof PrivateKey)
224
+ k = k.toPublic();
225
+ if (!k.comment)
226
+ k.comment = name;
227
+ return (k);
228
+ } catch (e) {
229
+ throw (new KeyParseError(name, format, e));
230
+ }
231
+ };
232
+
233
+ Key.isKey = function (obj, ver) {
234
+ return (utils.isCompatible(obj, Key, ver));
235
+ };
236
+
237
+ /*
238
+ * API versions for Key:
239
+ * [1,0] -- initial ver, may take Signature for createVerify or may not
240
+ * [1,1] -- added pkcs1, pkcs8 formats
241
+ * [1,2] -- added auto, ssh-private, openssh formats
242
+ * [1,3] -- added defaultHashAlgorithm
243
+ * [1,4] -- added ed support, createDH
244
+ * [1,5] -- first explicitly tagged version
245
+ */
246
+ Key.prototype._sshpkApiVersion = [1, 5];
247
+
248
+ Key._oldVersionDetect = function (obj) {
249
+ assert.func(obj.toBuffer);
250
+ assert.func(obj.fingerprint);
251
+ if (obj.createDH)
252
+ return ([1, 4]);
253
+ if (obj.defaultHashAlgorithm)
254
+ return ([1, 3]);
255
+ if (obj.formats['auto'])
256
+ return ([1, 2]);
257
+ if (obj.formats['pkcs1'])
258
+ return ([1, 1]);
259
+ return ([1, 0]);
260
+ };