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,140 @@
1
+ // Copyright 2015 Joyent, Inc.
2
+
3
+ module.exports = Fingerprint;
4
+
5
+ var assert = require('assert-plus');
6
+ var algs = require('./algs');
7
+ var crypto = require('crypto');
8
+ var errs = require('./errors');
9
+ var Key = require('./key');
10
+ var utils = require('./utils');
11
+
12
+ var FingerprintFormatError = errs.FingerprintFormatError;
13
+ var InvalidAlgorithmError = errs.InvalidAlgorithmError;
14
+
15
+ function Fingerprint(opts) {
16
+ assert.object(opts, 'options');
17
+ assert.buffer(opts.hash, 'options.hash');
18
+ assert.string(opts.algorithm, 'options.algorithm');
19
+
20
+ this.algorithm = opts.algorithm.toLowerCase();
21
+ if (algs.hashAlgs[this.algorithm] !== true)
22
+ throw (new InvalidAlgorithmError(this.algorithm));
23
+
24
+ this.hash = opts.hash;
25
+ }
26
+
27
+ Fingerprint.prototype.toString = function (format) {
28
+ if (format === undefined) {
29
+ if (this.algorithm === 'md5')
30
+ format = 'hex';
31
+ else
32
+ format = 'base64';
33
+ }
34
+ assert.string(format);
35
+
36
+ switch (format) {
37
+ case 'hex':
38
+ return (addColons(this.hash.toString('hex')));
39
+ case 'base64':
40
+ return (sshBase64Format(this.algorithm,
41
+ this.hash.toString('base64')));
42
+ default:
43
+ throw (new FingerprintFormatError(undefined, format));
44
+ }
45
+ };
46
+
47
+ Fingerprint.prototype.matches = function (key) {
48
+ assert.object(key, 'key');
49
+ utils.assertCompatible(key, Key, [1, 0], 'key');
50
+
51
+ var theirHash = key.hash(this.algorithm);
52
+ var theirHash2 = crypto.createHash(this.algorithm).
53
+ update(theirHash).digest('base64');
54
+
55
+ if (this.hash2 === undefined)
56
+ this.hash2 = crypto.createHash(this.algorithm).
57
+ update(this.hash).digest('base64');
58
+
59
+ return (this.hash2 === theirHash2);
60
+ };
61
+
62
+ Fingerprint.parse = function (fp, enAlgs) {
63
+ assert.string(fp, 'fingerprint');
64
+
65
+ var alg, hash;
66
+ assert.optionalArrayOfString(enAlgs, 'algorithms');
67
+
68
+ var parts = fp.split(':');
69
+ if (parts.length == 2) {
70
+ alg = parts[0].toLowerCase();
71
+ /*JSSTYLED*/
72
+ var base64RE = /^[A-Za-z0-9+\/=]+$/;
73
+ if (!base64RE.test(parts[1]))
74
+ throw (new FingerprintFormatError(fp));
75
+ try {
76
+ hash = new Buffer(parts[1], 'base64');
77
+ } catch (e) {
78
+ throw (new FingerprintFormatError(fp));
79
+ }
80
+ } else if (parts.length > 2) {
81
+ alg = 'md5';
82
+ if (parts[0].toLowerCase() === 'md5')
83
+ parts = parts.slice(1);
84
+ parts = parts.join('');
85
+ /*JSSTYLED*/
86
+ var md5RE = /^[a-fA-F0-9]+$/;
87
+ if (!md5RE.test(parts))
88
+ throw (new FingerprintFormatError(fp));
89
+ try {
90
+ hash = new Buffer(parts, 'hex');
91
+ } catch (e) {
92
+ throw (new FingerprintFormatError(fp));
93
+ }
94
+ }
95
+
96
+ if (alg === undefined)
97
+ throw (new FingerprintFormatError(fp));
98
+
99
+ if (algs.hashAlgs[alg] === undefined)
100
+ throw (new InvalidAlgorithmError(alg));
101
+
102
+ if (enAlgs !== undefined) {
103
+ enAlgs = enAlgs.map(function (a) { return a.toLowerCase(); });
104
+ if (enAlgs.indexOf(alg) === -1)
105
+ throw (new InvalidAlgorithmError(alg));
106
+ }
107
+
108
+ return (new Fingerprint({algorithm: alg, hash: hash}));
109
+ };
110
+
111
+ function addColons(s) {
112
+ /*JSSTYLED*/
113
+ return (s.replace(/(.{2})(?=.)/g, '$1:'));
114
+ }
115
+
116
+ function base64Strip(s) {
117
+ /*JSSTYLED*/
118
+ return (s.replace(/=*$/, ''));
119
+ }
120
+
121
+ function sshBase64Format(alg, h) {
122
+ return (alg.toUpperCase() + ':' + base64Strip(h));
123
+ }
124
+
125
+ Fingerprint.isFingerprint = function (obj, ver) {
126
+ return (utils.isCompatible(obj, Fingerprint, ver));
127
+ };
128
+
129
+ /*
130
+ * API versions for Fingerprint:
131
+ * [1,0] -- initial ver
132
+ * [1,1] -- first tagged ver
133
+ */
134
+ Fingerprint.prototype._sshpkApiVersion = [1, 1];
135
+
136
+ Fingerprint._oldVersionDetect = function (obj) {
137
+ assert.func(obj.toString);
138
+ assert.func(obj.matches);
139
+ return ([1, 0]);
140
+ };
@@ -0,0 +1,73 @@
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 utils = require('../utils');
10
+ var Key = require('../key');
11
+ var PrivateKey = require('../private-key');
12
+
13
+ var pem = require('./pem');
14
+ var ssh = require('./ssh');
15
+ var rfc4253 = require('./rfc4253');
16
+
17
+ function read(buf) {
18
+ if (typeof (buf) === 'string') {
19
+ if (buf.trim().match(/^[-]+[ ]*BEGIN/))
20
+ return (pem.read(buf));
21
+ if (buf.match(/^\s*ssh-[a-z]/))
22
+ return (ssh.read(buf));
23
+ if (buf.match(/^\s*ecdsa-/))
24
+ return (ssh.read(buf));
25
+ buf = new Buffer(buf, 'binary');
26
+ } else {
27
+ assert.buffer(buf);
28
+ if (findPEMHeader(buf))
29
+ return (pem.read(buf));
30
+ if (findSSHHeader(buf))
31
+ return (ssh.read(buf));
32
+ }
33
+ if (buf.readUInt32BE(0) < buf.length)
34
+ return (rfc4253.read(buf));
35
+ throw (new Error('Failed to auto-detect format of key'));
36
+ }
37
+
38
+ function findSSHHeader(buf) {
39
+ var offset = 0;
40
+ while (offset < buf.length &&
41
+ (buf[offset] === 32 || buf[offset] === 10 || buf[offset] === 9))
42
+ ++offset;
43
+ if (offset + 4 <= buf.length &&
44
+ buf.slice(offset, offset + 4).toString('ascii') === 'ssh-')
45
+ return (true);
46
+ if (offset + 6 <= buf.length &&
47
+ buf.slice(offset, offset + 6).toString('ascii') === 'ecdsa-')
48
+ return (true);
49
+ return (false);
50
+ }
51
+
52
+ function findPEMHeader(buf) {
53
+ var offset = 0;
54
+ while (offset < buf.length &&
55
+ (buf[offset] === 32 || buf[offset] === 10))
56
+ ++offset;
57
+ if (buf[offset] !== 45)
58
+ return (false);
59
+ while (offset < buf.length &&
60
+ (buf[offset] === 45))
61
+ ++offset;
62
+ while (offset < buf.length &&
63
+ (buf[offset] === 32))
64
+ ++offset;
65
+ if (offset + 5 > buf.length ||
66
+ buf.slice(offset, offset + 5).toString('ascii') !== 'BEGIN')
67
+ return (false);
68
+ return (true);
69
+ }
70
+
71
+ function write(key) {
72
+ throw (new Error('"auto" format cannot be used for writing'));
73
+ }
@@ -0,0 +1,152 @@
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 asn1 = require('asn1');
10
+ var algs = require('../algs');
11
+ var utils = require('../utils');
12
+ var Key = require('../key');
13
+ var PrivateKey = require('../private-key');
14
+
15
+ var pkcs1 = require('./pkcs1');
16
+ var pkcs8 = require('./pkcs8');
17
+ var sshpriv = require('./ssh-private');
18
+ var rfc4253 = require('./rfc4253');
19
+
20
+ /*
21
+ * For reading we support both PKCS#1 and PKCS#8. If we find a private key,
22
+ * we just take the public component of it and use that.
23
+ */
24
+ function read(buf, forceType) {
25
+ var input = buf;
26
+ if (typeof (buf) !== 'string') {
27
+ assert.buffer(buf, 'buf');
28
+ buf = buf.toString('ascii');
29
+ }
30
+
31
+ var lines = buf.trim().split('\n');
32
+
33
+ var m = lines[0].match(/*JSSTYLED*/
34
+ /[-]+[ ]*BEGIN ([A-Z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
35
+ assert.ok(m, 'invalid PEM header');
36
+
37
+ var m2 = lines[lines.length - 1].match(/*JSSTYLED*/
38
+ /[-]+[ ]*END ([A-Z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
39
+ assert.ok(m2, 'invalid PEM footer');
40
+
41
+ /* Begin and end banners must match key type */
42
+ assert.equal(m[2], m2[2]);
43
+ var type = m[2].toLowerCase();
44
+
45
+ var alg;
46
+ if (m[1]) {
47
+ /* They also must match algorithms, if given */
48
+ assert.equal(m[1], m2[1], 'PEM header and footer mismatch');
49
+ alg = m[1].trim();
50
+ }
51
+
52
+ var headers = {};
53
+ while (true) {
54
+ lines = lines.slice(1);
55
+ m = lines[0].match(/*JSSTYLED*/
56
+ /^([A-Za-z0-9-]+): (.+)$/);
57
+ if (!m)
58
+ break;
59
+ headers[m[1].toLowerCase()] = m[2];
60
+ }
61
+ if (headers['proc-type']) {
62
+ var parts = headers['proc-type'].split(',');
63
+ if (parts[0] === '4' && parts[1] === 'ENCRYPTED') {
64
+ throw (new Error('PEM key is encrypted ' +
65
+ '(password-protected). Please use the ' +
66
+ 'SSH agent or decrypt the key.'));
67
+ }
68
+ }
69
+
70
+ /* Chop off the first and last lines */
71
+ lines = lines.slice(0, -1).join('');
72
+ buf = new Buffer(lines, 'base64');
73
+
74
+ /* The new OpenSSH internal format abuses PEM headers */
75
+ if (alg && alg.toLowerCase() === 'openssh')
76
+ return (sshpriv.readSSHPrivate(type, buf));
77
+ if (alg && alg.toLowerCase() === 'ssh2')
78
+ return (rfc4253.readType(type, buf));
79
+
80
+ var der = new asn1.BerReader(buf);
81
+ der.originalInput = input;
82
+
83
+ /*
84
+ * All of the PEM file types start with a sequence tag, so chop it
85
+ * off here
86
+ */
87
+ der.readSequence();
88
+
89
+ /* PKCS#1 type keys name an algorithm in the banner explicitly */
90
+ if (alg) {
91
+ if (forceType)
92
+ assert.strictEqual(forceType, 'pkcs1');
93
+ return (pkcs1.readPkcs1(alg, type, der));
94
+ } else {
95
+ if (forceType)
96
+ assert.strictEqual(forceType, 'pkcs8');
97
+ return (pkcs8.readPkcs8(alg, type, der));
98
+ }
99
+ }
100
+
101
+ function write(key, type) {
102
+ assert.object(key);
103
+
104
+ var alg = {'ecdsa': 'EC', 'rsa': 'RSA', 'dsa': 'DSA'}[key.type];
105
+ var header;
106
+
107
+ var der = new asn1.BerWriter();
108
+
109
+ if (PrivateKey.isPrivateKey(key)) {
110
+ if (type && type === 'pkcs8') {
111
+ header = 'PRIVATE KEY';
112
+ pkcs8.writePkcs8(der, key);
113
+ } else {
114
+ if (type)
115
+ assert.strictEqual(type, 'pkcs1');
116
+ header = alg + ' PRIVATE KEY';
117
+ pkcs1.writePkcs1(der, key);
118
+ }
119
+
120
+ } else if (Key.isKey(key)) {
121
+ if (type && type === 'pkcs1') {
122
+ header = alg + ' PUBLIC KEY';
123
+ pkcs1.writePkcs1(der, key);
124
+ } else {
125
+ if (type)
126
+ assert.strictEqual(type, 'pkcs8');
127
+ header = 'PUBLIC KEY';
128
+ pkcs8.writePkcs8(der, key);
129
+ }
130
+
131
+ } else {
132
+ throw (new Error('key is not a Key or PrivateKey'));
133
+ }
134
+
135
+ var tmp = der.buffer.toString('base64');
136
+ var len = tmp.length + (tmp.length / 64) +
137
+ 18 + 16 + header.length*2 + 10;
138
+ var buf = new Buffer(len);
139
+ var o = 0;
140
+ o += buf.write('-----BEGIN ' + header + '-----\n', o);
141
+ for (var i = 0; i < tmp.length; ) {
142
+ var limit = i + 64;
143
+ if (limit > tmp.length)
144
+ limit = tmp.length;
145
+ o += buf.write(tmp.slice(i, limit), o);
146
+ buf[o++] = 10;
147
+ i = limit;
148
+ }
149
+ o += buf.write('-----END ' + header + '-----\n', o);
150
+
151
+ return (buf.slice(0, o));
152
+ }
@@ -0,0 +1,320 @@
1
+ // Copyright 2015 Joyent, Inc.
2
+
3
+ module.exports = {
4
+ read: read,
5
+ readPkcs1: readPkcs1,
6
+ write: write,
7
+ writePkcs1: writePkcs1
8
+ };
9
+
10
+ var assert = require('assert-plus');
11
+ var asn1 = require('asn1');
12
+ var algs = require('../algs');
13
+ var utils = require('../utils');
14
+
15
+ var Key = require('../key');
16
+ var PrivateKey = require('../private-key');
17
+ var pem = require('./pem');
18
+
19
+ var pkcs8 = require('./pkcs8');
20
+ var readECDSACurve = pkcs8.readECDSACurve;
21
+
22
+ function read(buf) {
23
+ return (pem.read(buf, 'pkcs1'));
24
+ }
25
+
26
+ function write(key) {
27
+ return (pem.write(key, 'pkcs1'));
28
+ }
29
+
30
+ /* Helper to read in a single mpint */
31
+ function readMPInt(der, nm) {
32
+ assert.strictEqual(der.peek(), asn1.Ber.Integer,
33
+ nm + ' is not an Integer');
34
+ return (utils.mpNormalize(der.readString(asn1.Ber.Integer, true)));
35
+ }
36
+
37
+ function readPkcs1(alg, type, der) {
38
+ switch (alg) {
39
+ case 'RSA':
40
+ if (type === 'public')
41
+ return (readPkcs1RSAPublic(der));
42
+ else if (type === 'private')
43
+ return (readPkcs1RSAPrivate(der));
44
+ throw (new Error('Unknown key type: ' + type));
45
+ case 'DSA':
46
+ if (type === 'public')
47
+ return (readPkcs1DSAPublic(der));
48
+ else if (type === 'private')
49
+ return (readPkcs1DSAPrivate(der));
50
+ throw (new Error('Unknown key type: ' + type));
51
+ case 'EC':
52
+ case 'ECDSA':
53
+ if (type === 'private')
54
+ return (readPkcs1ECDSAPrivate(der));
55
+ else if (type === 'public')
56
+ return (readPkcs1ECDSAPublic(der));
57
+ throw (new Error('Unknown key type: ' + type));
58
+ default:
59
+ throw (new Error('Unknown key algo: ' + alg));
60
+ }
61
+ }
62
+
63
+ function readPkcs1RSAPublic(der) {
64
+ // modulus and exponent
65
+ var n = readMPInt(der, 'modulus');
66
+ var e = readMPInt(der, 'exponent');
67
+
68
+ // now, make the key
69
+ var key = {
70
+ type: 'rsa',
71
+ parts: [
72
+ { name: 'e', data: e },
73
+ { name: 'n', data: n }
74
+ ]
75
+ };
76
+
77
+ return (new Key(key));
78
+ }
79
+
80
+ function readPkcs1RSAPrivate(der) {
81
+ var version = readMPInt(der, 'version');
82
+ assert.strictEqual(version[0], 0);
83
+
84
+ // modulus then public exponent
85
+ var n = readMPInt(der, 'modulus');
86
+ var e = readMPInt(der, 'public exponent');
87
+ var d = readMPInt(der, 'private exponent');
88
+ var p = readMPInt(der, 'prime1');
89
+ var q = readMPInt(der, 'prime2');
90
+ var dmodp = readMPInt(der, 'exponent1');
91
+ var dmodq = readMPInt(der, 'exponent2');
92
+ var iqmp = readMPInt(der, 'iqmp');
93
+
94
+ // now, make the key
95
+ var key = {
96
+ type: 'rsa',
97
+ parts: [
98
+ { name: 'n', data: n },
99
+ { name: 'e', data: e },
100
+ { name: 'd', data: d },
101
+ { name: 'iqmp', data: iqmp },
102
+ { name: 'p', data: p },
103
+ { name: 'q', data: q },
104
+ { name: 'dmodp', data: dmodp },
105
+ { name: 'dmodq', data: dmodq }
106
+ ]
107
+ };
108
+
109
+ return (new PrivateKey(key));
110
+ }
111
+
112
+ function readPkcs1DSAPrivate(der) {
113
+ var version = readMPInt(der, 'version');
114
+ assert.strictEqual(version.readUInt8(0), 0);
115
+
116
+ var p = readMPInt(der, 'p');
117
+ var q = readMPInt(der, 'q');
118
+ var g = readMPInt(der, 'g');
119
+ var y = readMPInt(der, 'y');
120
+ var x = readMPInt(der, 'x');
121
+
122
+ // now, make the key
123
+ var key = {
124
+ type: 'dsa',
125
+ parts: [
126
+ { name: 'p', data: p },
127
+ { name: 'q', data: q },
128
+ { name: 'g', data: g },
129
+ { name: 'y', data: y },
130
+ { name: 'x', data: x }
131
+ ]
132
+ };
133
+
134
+ return (new PrivateKey(key));
135
+ }
136
+
137
+ function readPkcs1DSAPublic(der) {
138
+ var y = readMPInt(der, 'y');
139
+ var p = readMPInt(der, 'p');
140
+ var q = readMPInt(der, 'q');
141
+ var g = readMPInt(der, 'g');
142
+
143
+ var key = {
144
+ type: 'dsa',
145
+ parts: [
146
+ { name: 'y', data: y },
147
+ { name: 'p', data: p },
148
+ { name: 'q', data: q },
149
+ { name: 'g', data: g }
150
+ ]
151
+ };
152
+
153
+ return (new Key(key));
154
+ }
155
+
156
+ function readPkcs1ECDSAPublic(der) {
157
+ der.readSequence();
158
+
159
+ var oid = der.readOID();
160
+ assert.strictEqual(oid, '1.2.840.10045.2.1', 'must be ecPublicKey');
161
+
162
+ var curveOid = der.readOID();
163
+
164
+ var curve;
165
+ var curves = Object.keys(algs.curves);
166
+ for (var j = 0; j < curves.length; ++j) {
167
+ var c = curves[j];
168
+ var cd = algs.curves[c];
169
+ if (cd.pkcs8oid === curveOid) {
170
+ curve = c;
171
+ break;
172
+ }
173
+ }
174
+ assert.string(curve, 'a known ECDSA named curve');
175
+
176
+ var Q = der.readString(asn1.Ber.BitString, true);
177
+ Q = utils.ecNormalize(Q);
178
+
179
+ var key = {
180
+ type: 'ecdsa',
181
+ parts: [
182
+ { name: 'curve', data: new Buffer(curve) },
183
+ { name: 'Q', data: Q }
184
+ ]
185
+ };
186
+
187
+ return (new Key(key));
188
+ }
189
+
190
+ function readPkcs1ECDSAPrivate(der) {
191
+ var version = readMPInt(der, 'version');
192
+ assert.strictEqual(version.readUInt8(0), 1);
193
+
194
+ // private key
195
+ var d = der.readString(asn1.Ber.OctetString, true);
196
+
197
+ der.readSequence(0xa0);
198
+ var curve = readECDSACurve(der);
199
+ assert.string(curve, 'a known elliptic curve');
200
+
201
+ der.readSequence(0xa1);
202
+ var Q = der.readString(asn1.Ber.BitString, true);
203
+ Q = utils.ecNormalize(Q);
204
+
205
+ var key = {
206
+ type: 'ecdsa',
207
+ parts: [
208
+ { name: 'curve', data: new Buffer(curve) },
209
+ { name: 'Q', data: Q },
210
+ { name: 'd', data: d }
211
+ ]
212
+ };
213
+
214
+ return (new PrivateKey(key));
215
+ }
216
+
217
+ function writePkcs1(der, key) {
218
+ der.startSequence();
219
+
220
+ switch (key.type) {
221
+ case 'rsa':
222
+ if (PrivateKey.isPrivateKey(key))
223
+ writePkcs1RSAPrivate(der, key);
224
+ else
225
+ writePkcs1RSAPublic(der, key);
226
+ break;
227
+ case 'dsa':
228
+ if (PrivateKey.isPrivateKey(key))
229
+ writePkcs1DSAPrivate(der, key);
230
+ else
231
+ writePkcs1DSAPublic(der, key);
232
+ break;
233
+ case 'ecdsa':
234
+ if (PrivateKey.isPrivateKey(key))
235
+ writePkcs1ECDSAPrivate(der, key);
236
+ else
237
+ writePkcs1ECDSAPublic(der, key);
238
+ break;
239
+ default:
240
+ throw (new Error('Unknown key algo: ' + key.type));
241
+ }
242
+
243
+ der.endSequence();
244
+ }
245
+
246
+ function writePkcs1RSAPublic(der, key) {
247
+ der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
248
+ der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
249
+ }
250
+
251
+ function writePkcs1RSAPrivate(der, key) {
252
+ var ver = new Buffer(1);
253
+ ver[0] = 0;
254
+ der.writeBuffer(ver, asn1.Ber.Integer);
255
+
256
+ der.writeBuffer(key.part.n.data, asn1.Ber.Integer);
257
+ der.writeBuffer(key.part.e.data, asn1.Ber.Integer);
258
+ der.writeBuffer(key.part.d.data, asn1.Ber.Integer);
259
+ der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
260
+ der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
261
+ if (!key.part.dmodp || !key.part.dmodq)
262
+ utils.addRSAMissing(key);
263
+ der.writeBuffer(key.part.dmodp.data, asn1.Ber.Integer);
264
+ der.writeBuffer(key.part.dmodq.data, asn1.Ber.Integer);
265
+ der.writeBuffer(key.part.iqmp.data, asn1.Ber.Integer);
266
+ }
267
+
268
+ function writePkcs1DSAPrivate(der, key) {
269
+ var ver = new Buffer(1);
270
+ ver[0] = 0;
271
+ der.writeBuffer(ver, asn1.Ber.Integer);
272
+
273
+ der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
274
+ der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
275
+ der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
276
+ der.writeBuffer(key.part.y.data, asn1.Ber.Integer);
277
+ der.writeBuffer(key.part.x.data, asn1.Ber.Integer);
278
+ }
279
+
280
+ function writePkcs1DSAPublic(der, key) {
281
+ der.writeBuffer(key.part.y.data, asn1.Ber.Integer);
282
+ der.writeBuffer(key.part.p.data, asn1.Ber.Integer);
283
+ der.writeBuffer(key.part.q.data, asn1.Ber.Integer);
284
+ der.writeBuffer(key.part.g.data, asn1.Ber.Integer);
285
+ }
286
+
287
+ function writePkcs1ECDSAPublic(der, key) {
288
+ der.startSequence();
289
+
290
+ der.writeOID('1.2.840.10045.2.1'); /* ecPublicKey */
291
+ var curve = key.part.curve.data.toString();
292
+ var curveOid = algs.curves[curve].pkcs8oid;
293
+ assert.string(curveOid, 'a known ECDSA named curve');
294
+ der.writeOID(curveOid);
295
+
296
+ der.endSequence();
297
+
298
+ var Q = utils.ecNormalize(key.part.Q.data, true);
299
+ der.writeBuffer(Q, asn1.Ber.BitString);
300
+ }
301
+
302
+ function writePkcs1ECDSAPrivate(der, key) {
303
+ var ver = new Buffer(1);
304
+ ver[0] = 1;
305
+ der.writeBuffer(ver, asn1.Ber.Integer);
306
+
307
+ der.writeBuffer(key.part.d.data, asn1.Ber.OctetString);
308
+
309
+ der.startSequence(0xa0);
310
+ var curve = key.part.curve.data.toString();
311
+ var curveOid = algs.curves[curve].pkcs8oid;
312
+ assert.string(curveOid, 'a known ECDSA named curve');
313
+ der.writeOID(curveOid);
314
+ der.endSequence();
315
+
316
+ der.startSequence(0xa1);
317
+ var Q = utils.ecNormalize(key.part.Q.data, true);
318
+ der.writeBuffer(Q, asn1.Ber.BitString);
319
+ der.endSequence();
320
+ }