rubygems-update 2.7.11 → 3.0.9

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 (359) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +67 -0
  3. data/.travis.yml +24 -18
  4. data/CODE_OF_CONDUCT.md +10 -8
  5. data/CONTRIBUTING.md +148 -0
  6. data/History.txt +458 -8
  7. data/MAINTAINERS.txt +1 -0
  8. data/Manifest.txt +16 -9
  9. data/POLICIES.md +92 -0
  10. data/README.md +53 -26
  11. data/Rakefile +77 -211
  12. data/{UPGRADING.rdoc → UPGRADING.md} +31 -32
  13. data/appveyor.yml +20 -45
  14. data/bin/gem +1 -2
  15. data/bin/update_rubygems +2 -3
  16. data/bundler/CHANGELOG.md +65 -0
  17. data/bundler/bundler.gemspec +7 -1
  18. data/bundler/lib/bundler/build_metadata.rb +1 -1
  19. data/bundler/lib/bundler/cli/add.rb +15 -5
  20. data/bundler/lib/bundler/cli/binstubs.rb +8 -2
  21. data/bundler/lib/bundler/cli/doctor.rb +47 -1
  22. data/bundler/lib/bundler/cli/install.rb +8 -5
  23. data/bundler/lib/bundler/cli/list.rb +41 -5
  24. data/bundler/lib/bundler/cli/outdated.rb +7 -1
  25. data/bundler/lib/bundler/cli/pristine.rb +4 -0
  26. data/bundler/lib/bundler/cli/remove.rb +18 -0
  27. data/bundler/lib/bundler/cli.rb +63 -21
  28. data/bundler/lib/bundler/definition.rb +15 -16
  29. data/bundler/lib/bundler/dependency.rb +2 -2
  30. data/bundler/lib/bundler/dsl.rb +19 -3
  31. data/bundler/lib/bundler/feature_flag.rb +7 -0
  32. data/bundler/lib/bundler/gem_version_promoter.rb +4 -2
  33. data/bundler/lib/bundler/injector.rb +168 -9
  34. data/bundler/lib/bundler/installer/parallel_installer.rb +5 -0
  35. data/bundler/lib/bundler/installer.rb +29 -6
  36. data/bundler/lib/bundler/plugin/events.rb +61 -0
  37. data/bundler/lib/bundler/plugin.rb +10 -3
  38. data/bundler/lib/bundler/resolver.rb +2 -2
  39. data/bundler/lib/bundler/rubygems_gem_installer.rb +7 -0
  40. data/bundler/lib/bundler/runtime.rb +8 -2
  41. data/bundler/lib/bundler/settings/validator.rb +23 -0
  42. data/bundler/lib/bundler/settings.rb +24 -3
  43. data/bundler/lib/bundler/shared_helpers.rb +19 -3
  44. data/bundler/lib/bundler/source/metadata.rb +2 -3
  45. data/bundler/lib/bundler/source.rb +9 -9
  46. data/bundler/lib/bundler/templates/newgem/lib/newgem.rb.tt +1 -0
  47. data/bundler/lib/bundler/version.rb +1 -1
  48. data/bundler/lib/bundler.rb +26 -8
  49. data/bundler/man/bundle-add.ronn +13 -2
  50. data/bundler/man/bundle-config.ronn +21 -0
  51. data/bundler/man/bundle-install.ronn +1 -1
  52. data/bundler/man/bundle-list.ronn +19 -1
  53. data/bundler/man/bundle-outdated.ronn +4 -0
  54. data/bundler/man/bundle-remove.ronn +23 -0
  55. data/bundler/man/bundle-update.ronn +1 -1
  56. data/bundler/man/bundle.ronn +3 -0
  57. data/lib/rubygems/available_set.rb +1 -1
  58. data/lib/rubygems/basic_specification.rb +12 -12
  59. data/lib/rubygems/bundler_version_finder.rb +3 -3
  60. data/lib/rubygems/command.rb +22 -15
  61. data/lib/rubygems/command_manager.rb +22 -5
  62. data/lib/rubygems/commands/build_command.rb +41 -7
  63. data/lib/rubygems/commands/cert_command.rb +45 -24
  64. data/lib/rubygems/commands/check_command.rb +1 -1
  65. data/lib/rubygems/commands/cleanup_command.rb +14 -7
  66. data/lib/rubygems/commands/contents_command.rb +14 -15
  67. data/lib/rubygems/commands/dependency_command.rb +17 -17
  68. data/lib/rubygems/commands/environment_command.rb +20 -1
  69. data/lib/rubygems/commands/fetch_command.rb +2 -3
  70. data/lib/rubygems/commands/generate_index_command.rb +2 -3
  71. data/lib/rubygems/commands/help_command.rb +12 -13
  72. data/lib/rubygems/commands/info_command.rb +33 -0
  73. data/lib/rubygems/commands/install_command.rb +21 -17
  74. data/lib/rubygems/commands/list_command.rb +0 -1
  75. data/lib/rubygems/commands/lock_command.rb +3 -4
  76. data/lib/rubygems/commands/open_command.rb +16 -10
  77. data/lib/rubygems/commands/owner_command.rb +21 -7
  78. data/lib/rubygems/commands/pristine_command.rb +23 -16
  79. data/lib/rubygems/commands/push_command.rb +19 -8
  80. data/lib/rubygems/commands/query_command.rb +24 -24
  81. data/lib/rubygems/commands/rdoc_command.rb +3 -4
  82. data/lib/rubygems/commands/search_command.rb +0 -1
  83. data/lib/rubygems/commands/server_command.rb +1 -2
  84. data/lib/rubygems/commands/setup_command.rb +86 -48
  85. data/lib/rubygems/commands/signin_command.rb +2 -1
  86. data/lib/rubygems/commands/signout_command.rb +2 -2
  87. data/lib/rubygems/commands/sources_command.rb +11 -12
  88. data/lib/rubygems/commands/specification_command.rb +7 -7
  89. data/lib/rubygems/commands/uninstall_command.rb +50 -18
  90. data/lib/rubygems/commands/unpack_command.rb +16 -7
  91. data/lib/rubygems/commands/update_command.rb +28 -23
  92. data/lib/rubygems/commands/which_command.rb +5 -8
  93. data/lib/rubygems/commands/yank_command.rb +1 -2
  94. data/lib/rubygems/compatibility.rb +1 -21
  95. data/lib/rubygems/config_file.rb +36 -36
  96. data/lib/rubygems/core_ext/kernel_require.rb +6 -6
  97. data/lib/rubygems/core_ext/kernel_warn.rb +45 -0
  98. data/lib/rubygems/defaults.rb +31 -19
  99. data/lib/rubygems/dependency.rb +15 -15
  100. data/lib/rubygems/dependency_installer.rb +30 -33
  101. data/lib/rubygems/dependency_list.rb +9 -10
  102. data/lib/rubygems/deprecate.rb +2 -3
  103. data/lib/rubygems/doctor.rb +5 -6
  104. data/lib/rubygems/errors.rb +3 -3
  105. data/lib/rubygems/exceptions.rb +11 -8
  106. data/lib/rubygems/ext/build_error.rb +0 -1
  107. data/lib/rubygems/ext/builder.rb +50 -23
  108. data/lib/rubygems/ext/cmake_builder.rb +2 -2
  109. data/lib/rubygems/ext/configure_builder.rb +2 -3
  110. data/lib/rubygems/ext/ext_conf_builder.rb +8 -7
  111. data/lib/rubygems/ext/rake_builder.rb +16 -18
  112. data/lib/rubygems/ext.rb +0 -1
  113. data/lib/rubygems/gem_runner.rb +2 -2
  114. data/lib/rubygems/gemcutter_utilities.rb +46 -12
  115. data/lib/rubygems/indexer.rb +19 -12
  116. data/lib/rubygems/install_default_message.rb +0 -1
  117. data/lib/rubygems/install_message.rb +0 -1
  118. data/lib/rubygems/install_update_options.rb +3 -29
  119. data/lib/rubygems/installer.rb +97 -55
  120. data/lib/rubygems/installer_test_case.rb +2 -16
  121. data/lib/rubygems/local_remote_options.rb +5 -4
  122. data/lib/rubygems/mock_gem_ui.rb +3 -4
  123. data/lib/rubygems/name_tuple.rb +4 -4
  124. data/lib/rubygems/package/digest_io.rb +3 -4
  125. data/lib/rubygems/package/file_source.rb +3 -4
  126. data/lib/rubygems/package/io_source.rb +1 -2
  127. data/lib/rubygems/package/old.rb +8 -16
  128. data/lib/rubygems/package/source.rb +0 -1
  129. data/lib/rubygems/package/tar_header.rb +13 -4
  130. data/lib/rubygems/package/tar_reader/entry.rb +20 -4
  131. data/lib/rubygems/package/tar_reader.rb +2 -4
  132. data/lib/rubygems/package/tar_test_case.rb +2 -8
  133. data/lib/rubygems/package/tar_writer.rb +13 -15
  134. data/lib/rubygems/package.rb +90 -63
  135. data/lib/rubygems/package_task.rb +0 -1
  136. data/lib/rubygems/path_support.rb +16 -6
  137. data/lib/rubygems/platform.rb +4 -5
  138. data/lib/rubygems/psych_tree.rb +1 -1
  139. data/lib/rubygems/rdoc.rb +2 -313
  140. data/lib/rubygems/remote_fetcher.rb +29 -82
  141. data/lib/rubygems/request/connection_pools.rb +24 -13
  142. data/lib/rubygems/request/http_pool.rb +3 -4
  143. data/lib/rubygems/request/https_pool.rb +1 -3
  144. data/lib/rubygems/request.rb +17 -16
  145. data/lib/rubygems/request_set/gem_dependency_api.rb +46 -49
  146. data/lib/rubygems/request_set/lockfile/parser.rb +18 -29
  147. data/lib/rubygems/request_set/lockfile/tokenizer.rb +9 -9
  148. data/lib/rubygems/request_set/lockfile.rb +12 -12
  149. data/lib/rubygems/request_set.rb +52 -25
  150. data/lib/rubygems/requirement.rb +32 -21
  151. data/lib/rubygems/resolver/activation_request.rb +6 -6
  152. data/lib/rubygems/resolver/api_set.rb +5 -6
  153. data/lib/rubygems/resolver/api_specification.rb +2 -3
  154. data/lib/rubygems/resolver/best_set.rb +5 -6
  155. data/lib/rubygems/resolver/composed_set.rb +5 -6
  156. data/lib/rubygems/resolver/conflict.rb +5 -5
  157. data/lib/rubygems/resolver/current_set.rb +1 -2
  158. data/lib/rubygems/resolver/dependency_request.rb +4 -4
  159. data/lib/rubygems/resolver/git_set.rb +5 -6
  160. data/lib/rubygems/resolver/git_specification.rb +4 -5
  161. data/lib/rubygems/resolver/index_set.rb +5 -6
  162. data/lib/rubygems/resolver/index_specification.rb +3 -4
  163. data/lib/rubygems/resolver/installed_specification.rb +3 -4
  164. data/lib/rubygems/resolver/installer_set.rb +12 -12
  165. data/lib/rubygems/resolver/local_specification.rb +1 -2
  166. data/lib/rubygems/resolver/lock_set.rb +5 -6
  167. data/lib/rubygems/resolver/lock_specification.rb +7 -8
  168. data/lib/rubygems/resolver/requirement_list.rb +1 -1
  169. data/lib/rubygems/resolver/set.rb +2 -2
  170. data/lib/rubygems/resolver/source_set.rb +4 -5
  171. data/lib/rubygems/resolver/spec_specification.rb +1 -2
  172. data/lib/rubygems/resolver/specification.rb +10 -7
  173. data/lib/rubygems/resolver/stats.rb +1 -1
  174. data/lib/rubygems/resolver/vendor_set.rb +4 -5
  175. data/lib/rubygems/resolver/vendor_specification.rb +2 -3
  176. data/lib/rubygems/resolver.rb +14 -16
  177. data/lib/rubygems/s3_uri_signer.rb +183 -0
  178. data/lib/rubygems/safe_yaml.rb +18 -10
  179. data/lib/rubygems/security/policies.rb +1 -2
  180. data/lib/rubygems/security/policy.rb +25 -25
  181. data/lib/rubygems/security/signer.rb +72 -24
  182. data/lib/rubygems/security/trust_dir.rb +10 -10
  183. data/lib/rubygems/security.rb +21 -22
  184. data/lib/rubygems/security_option.rb +0 -1
  185. data/lib/rubygems/server.rb +21 -21
  186. data/lib/rubygems/source/git.rb +9 -10
  187. data/lib/rubygems/source/installed.rb +3 -4
  188. data/lib/rubygems/source/local.rb +7 -7
  189. data/lib/rubygems/source/lock.rb +4 -4
  190. data/lib/rubygems/source/specific_file.rb +5 -5
  191. data/lib/rubygems/source/vendor.rb +2 -3
  192. data/lib/rubygems/source.rb +16 -25
  193. data/lib/rubygems/source_list.rb +2 -2
  194. data/lib/rubygems/source_local.rb +0 -1
  195. data/lib/rubygems/spec_fetcher.rb +5 -6
  196. data/lib/rubygems/specification.rb +219 -558
  197. data/lib/rubygems/specification_policy.rb +407 -0
  198. data/lib/rubygems/stub_specification.rb +12 -17
  199. data/lib/rubygems/test_case.rb +161 -75
  200. data/lib/rubygems/test_utilities.rb +20 -35
  201. data/lib/rubygems/text.rb +6 -6
  202. data/lib/rubygems/uninstaller.rb +38 -27
  203. data/lib/rubygems/uri_formatter.rb +1 -2
  204. data/lib/rubygems/user_interaction.rb +37 -89
  205. data/lib/rubygems/util/licenses.rb +27 -1
  206. data/lib/rubygems/util/list.rb +1 -1
  207. data/lib/rubygems/util.rb +32 -14
  208. data/lib/rubygems/validator.rb +4 -5
  209. data/lib/rubygems/version.rb +15 -15
  210. data/lib/rubygems/version_option.rb +2 -3
  211. data/lib/rubygems.rb +71 -102
  212. data/rubygems-update.gemspec +43 -0
  213. data/setup.rb +2 -8
  214. data/test/rubygems/ca_cert.pem +74 -65
  215. data/test/rubygems/client.pem +103 -45
  216. data/test/rubygems/rubygems_plugin.rb +0 -1
  217. data/test/rubygems/simple_gem.rb +1 -1
  218. data/test/rubygems/ssl_cert.pem +78 -17
  219. data/test/rubygems/ssl_key.pem +25 -13
  220. data/test/rubygems/test_bundled_ca.rb +1 -1
  221. data/test/rubygems/test_config.rb +7 -2
  222. data/test/rubygems/test_gem.rb +205 -132
  223. data/test/rubygems/test_gem_bundler_version_finder.rb +4 -0
  224. data/test/rubygems/test_gem_command.rb +0 -1
  225. data/test/rubygems/test_gem_command_manager.rb +18 -3
  226. data/test/rubygems/test_gem_commands_build_command.rb +220 -15
  227. data/test/rubygems/test_gem_commands_cert_command.rb +69 -8
  228. data/test/rubygems/test_gem_commands_check_command.rb +1 -1
  229. data/test/rubygems/test_gem_commands_cleanup_command.rb +27 -1
  230. data/test/rubygems/test_gem_commands_contents_command.rb +1 -2
  231. data/test/rubygems/test_gem_commands_dependency_command.rb +33 -34
  232. data/test/rubygems/test_gem_commands_environment_command.rb +1 -0
  233. data/test/rubygems/test_gem_commands_fetch_command.rb +0 -1
  234. data/test/rubygems/test_gem_commands_generate_index_command.rb +0 -1
  235. data/test/rubygems/test_gem_commands_help_command.rb +7 -4
  236. data/test/rubygems/test_gem_commands_info_command.rb +44 -0
  237. data/test/rubygems/test_gem_commands_install_command.rb +79 -12
  238. data/test/rubygems/test_gem_commands_lock_command.rb +0 -1
  239. data/test/rubygems/test_gem_commands_open_command.rb +29 -0
  240. data/test/rubygems/test_gem_commands_outdated_command.rb +0 -1
  241. data/test/rubygems/test_gem_commands_owner_command.rb +93 -57
  242. data/test/rubygems/test_gem_commands_pristine_command.rb +65 -30
  243. data/test/rubygems/test_gem_commands_push_command.rb +54 -0
  244. data/test/rubygems/test_gem_commands_query_command.rb +102 -100
  245. data/test/rubygems/test_gem_commands_search_command.rb +0 -1
  246. data/test/rubygems/test_gem_commands_server_command.rb +0 -1
  247. data/test/rubygems/test_gem_commands_setup_command.rb +50 -15
  248. data/test/rubygems/test_gem_commands_signin_command.rb +1 -1
  249. data/test/rubygems/test_gem_commands_sources_command.rb +0 -1
  250. data/test/rubygems/test_gem_commands_specification_command.rb +2 -3
  251. data/test/rubygems/test_gem_commands_stale_command.rb +3 -2
  252. data/test/rubygems/test_gem_commands_uninstall_command.rb +161 -8
  253. data/test/rubygems/test_gem_commands_unpack_command.rb +17 -1
  254. data/test/rubygems/test_gem_commands_update_command.rb +19 -2
  255. data/test/rubygems/test_gem_commands_which_command.rb +0 -1
  256. data/test/rubygems/test_gem_commands_yank_command.rb +0 -1
  257. data/test/rubygems/test_gem_config_file.rb +4 -2
  258. data/test/rubygems/test_gem_dependency.rb +0 -1
  259. data/test/rubygems/test_gem_dependency_installer.rb +8 -5
  260. data/test/rubygems/test_gem_dependency_list.rb +6 -7
  261. data/test/rubygems/test_gem_dependency_resolution_error.rb +0 -1
  262. data/test/rubygems/test_gem_doctor.rb +1 -2
  263. data/test/rubygems/test_gem_ext_builder.rb +10 -23
  264. data/test/rubygems/test_gem_ext_cmake_builder.rb +5 -4
  265. data/test/rubygems/test_gem_ext_configure_builder.rb +3 -3
  266. data/test/rubygems/test_gem_ext_ext_conf_builder.rb +8 -9
  267. data/test/rubygems/test_gem_ext_rake_builder.rb +20 -5
  268. data/test/rubygems/test_gem_gem_runner.rb +0 -1
  269. data/test/rubygems/test_gem_gemcutter_utilities.rb +32 -6
  270. data/test/rubygems/test_gem_impossible_dependencies_error.rb +0 -1
  271. data/test/rubygems/test_gem_indexer.rb +16 -10
  272. data/test/rubygems/test_gem_install_update_options.rb +1 -20
  273. data/test/rubygems/test_gem_installer.rb +154 -119
  274. data/test/rubygems/test_gem_local_remote_options.rb +3 -3
  275. data/test/rubygems/test_gem_name_tuple.rb +0 -1
  276. data/test/rubygems/test_gem_package.rb +77 -31
  277. data/test/rubygems/test_gem_package_old.rb +0 -1
  278. data/test/rubygems/test_gem_package_tar_header.rb +42 -2
  279. data/test/rubygems/test_gem_package_tar_reader.rb +0 -1
  280. data/test/rubygems/test_gem_package_tar_reader_entry.rb +11 -0
  281. data/test/rubygems/test_gem_package_tar_writer.rb +43 -7
  282. data/test/rubygems/test_gem_package_task.rb +2 -2
  283. data/test/rubygems/test_gem_path_support.rb +28 -11
  284. data/test/rubygems/test_gem_platform.rb +4 -5
  285. data/test/rubygems/test_gem_rdoc.rb +1 -136
  286. data/test/rubygems/test_gem_remote_fetcher.rb +241 -141
  287. data/test/rubygems/test_gem_request.rb +9 -9
  288. data/test/rubygems/test_gem_request_connection_pools.rb +24 -3
  289. data/test/rubygems/test_gem_request_set.rb +5 -5
  290. data/test/rubygems/test_gem_request_set_gem_dependency_api.rb +82 -64
  291. data/test/rubygems/test_gem_request_set_lockfile.rb +1 -2
  292. data/test/rubygems/test_gem_request_set_lockfile_parser.rb +4 -9
  293. data/test/rubygems/test_gem_request_set_lockfile_tokenizer.rb +1 -1
  294. data/test/rubygems/test_gem_requirement.rb +24 -4
  295. data/test/rubygems/test_gem_resolver.rb +13 -17
  296. data/test/rubygems/test_gem_resolver_activation_request.rb +0 -1
  297. data/test/rubygems/test_gem_resolver_api_set.rb +0 -1
  298. data/test/rubygems/test_gem_resolver_api_specification.rb +0 -1
  299. data/test/rubygems/test_gem_resolver_best_set.rb +0 -1
  300. data/test/rubygems/test_gem_resolver_composed_set.rb +0 -1
  301. data/test/rubygems/test_gem_resolver_conflict.rb +0 -1
  302. data/test/rubygems/test_gem_resolver_dependency_request.rb +0 -1
  303. data/test/rubygems/test_gem_resolver_git_set.rb +0 -1
  304. data/test/rubygems/test_gem_resolver_git_specification.rb +0 -1
  305. data/test/rubygems/test_gem_resolver_index_set.rb +0 -1
  306. data/test/rubygems/test_gem_resolver_index_specification.rb +0 -1
  307. data/test/rubygems/test_gem_resolver_installed_specification.rb +0 -1
  308. data/test/rubygems/test_gem_resolver_installer_set.rb +2 -3
  309. data/test/rubygems/test_gem_resolver_local_specification.rb +0 -1
  310. data/test/rubygems/test_gem_resolver_lock_set.rb +0 -1
  311. data/test/rubygems/test_gem_resolver_lock_specification.rb +0 -1
  312. data/test/rubygems/test_gem_resolver_requirement_list.rb +0 -1
  313. data/test/rubygems/test_gem_resolver_specification.rb +1 -2
  314. data/test/rubygems/test_gem_resolver_vendor_set.rb +0 -1
  315. data/test/rubygems/test_gem_resolver_vendor_specification.rb +0 -1
  316. data/test/rubygems/test_gem_security.rb +1 -3
  317. data/test/rubygems/test_gem_security_policy.rb +5 -6
  318. data/test/rubygems/test_gem_security_signer.rb +4 -3
  319. data/test/rubygems/test_gem_security_trust_dir.rb +1 -2
  320. data/test/rubygems/test_gem_server.rb +4 -4
  321. data/test/rubygems/test_gem_source.rb +0 -13
  322. data/test/rubygems/test_gem_source_fetch_problem.rb +0 -1
  323. data/test/rubygems/test_gem_source_git.rb +0 -1
  324. data/test/rubygems/test_gem_source_installed.rb +0 -1
  325. data/test/rubygems/test_gem_source_lock.rb +0 -1
  326. data/test/rubygems/test_gem_source_vendor.rb +0 -1
  327. data/test/rubygems/test_gem_spec_fetcher.rb +0 -1
  328. data/test/rubygems/test_gem_specification.rb +366 -198
  329. data/test/rubygems/test_gem_stream_ui.rb +15 -32
  330. data/test/rubygems/test_gem_stub_specification.rb +0 -2
  331. data/test/rubygems/test_gem_text.rb +4 -0
  332. data/test/rubygems/test_gem_uninstaller.rb +42 -3
  333. data/test/rubygems/test_gem_unsatisfiable_dependency_error.rb +0 -1
  334. data/test/rubygems/test_gem_uri_formatter.rb +0 -1
  335. data/test/rubygems/test_gem_util.rb +31 -11
  336. data/test/rubygems/test_gem_validator.rb +0 -1
  337. data/test/rubygems/test_gem_version.rb +11 -11
  338. data/test/rubygems/test_gem_version_option.rb +0 -1
  339. data/test/rubygems/test_remote_fetch_error.rb +0 -1
  340. data/test/rubygems/test_require.rb +67 -52
  341. data/util/CL2notes +1 -2
  342. data/util/ci +20 -12
  343. data/util/cops/deprecations.rb +52 -0
  344. data/util/create_certs.rb +6 -7
  345. data/util/create_certs.sh +27 -0
  346. data/util/create_encrypted_key.rb +4 -5
  347. data/util/patch_with_prs.rb +1 -1
  348. data/util/rubocop +8 -0
  349. data/util/update_bundled_ca_certificates.rb +12 -13
  350. data/util/update_changelog.rb +1 -1
  351. metadata +61 -51
  352. data/.autotest +0 -71
  353. data/.document +0 -5
  354. data/CONTRIBUTING.rdoc +0 -130
  355. data/CVE-2013-4287.txt +0 -35
  356. data/CVE-2013-4363.txt +0 -45
  357. data/CVE-2015-3900.txt +0 -40
  358. data/POLICIES.rdoc +0 -74
  359. data/test/rubygems/fix_openssl_warnings.rb +0 -13
data/lib/rubygems.rb CHANGED
@@ -7,10 +7,9 @@
7
7
  #++
8
8
 
9
9
  require 'rbconfig'
10
- require 'thread'
11
10
 
12
11
  module Gem
13
- VERSION = "2.7.11"
12
+ VERSION = "3.0.9".freeze
14
13
  end
15
14
 
16
15
  # Must be first since it unloads the prelude from 1.9.2
@@ -19,6 +18,7 @@ require 'rubygems/compatibility'
19
18
  require 'rubygems/defaults'
20
19
  require 'rubygems/deprecate'
21
20
  require 'rubygems/errors'
21
+ require 'rubygems/path_support'
22
22
 
23
23
  ##
24
24
  # RubyGems is the Ruby standard for publishing and managing third party
@@ -127,14 +127,14 @@ module Gem
127
127
  /mingw/i,
128
128
  /mswin/i,
129
129
  /wince/i,
130
- ]
130
+ ].freeze
131
131
 
132
132
  GEM_DEP_FILES = %w[
133
133
  gem.deps.rb
134
134
  gems.rb
135
135
  Gemfile
136
136
  Isolate
137
- ]
137
+ ].freeze
138
138
 
139
139
  ##
140
140
  # Subdirectories in a gem repository
@@ -146,7 +146,7 @@ module Gem
146
146
  extensions
147
147
  gems
148
148
  specifications
149
- ]
149
+ ].freeze
150
150
 
151
151
  ##
152
152
  # Subdirectories in a gem repository for default gems
@@ -154,7 +154,7 @@ module Gem
154
154
  REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES = %w[
155
155
  gems
156
156
  specifications/default
157
- ]
157
+ ].freeze
158
158
 
159
159
  ##
160
160
  # Exception classes used in a Gem.read_binary +rescue+ statement. Not all of
@@ -203,7 +203,7 @@ module Gem
203
203
  # activation succeeded or wasn't needed because it was already
204
204
  # activated. Returns false if it can't find the path in a gem.
205
205
 
206
- def self.try_activate path
206
+ def self.try_activate(path)
207
207
  # finds the _latest_ version... regardless of loaded specs and their deps
208
208
  # if another gem had a requirement that would mean we shouldn't
209
209
  # activate the latest version, then either it would already be activated
@@ -263,7 +263,7 @@ module Gem
263
263
  find_spec_for_exe(name, exec_name, requirements).bin_file exec_name
264
264
  end
265
265
 
266
- def self.find_spec_for_exe name, exec_name, requirements
266
+ def self.find_spec_for_exe(name, exec_name, requirements)
267
267
  dep = Gem::Dependency.new name, requirements
268
268
 
269
269
  loaded = Gem.loaded_specs[name]
@@ -299,7 +299,7 @@ module Gem
299
299
  #
300
300
  # This method should *only* be used in bin stub files.
301
301
 
302
- def self.activate_bin_path name, exec_name, requirement # :nodoc:
302
+ def self.activate_bin_path(name, exec_name, requirement) # :nodoc:
303
303
  spec = find_spec_for_exe name, exec_name, [requirement]
304
304
  Gem::LOADED_SPECS_MUTEX.synchronize do
305
305
  spec.activate
@@ -368,11 +368,6 @@ module Gem
368
368
  spec.datadir
369
369
  end
370
370
 
371
- class << self
372
- extend Gem::Deprecate
373
- deprecate :datadir, "spec.datadir", 2016, 10
374
- end
375
-
376
371
  ##
377
372
  # A Zlib::Deflate.deflate wrapper
378
373
 
@@ -447,7 +442,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
447
442
  #
448
443
  # World-writable directories will never be created.
449
444
 
450
- def self.ensure_gem_subdirectories dir = Gem.dir, mode = nil
445
+ def self.ensure_gem_subdirectories(dir = Gem.dir, mode = nil)
451
446
  ensure_subdirectories(dir, mode, REPOSITORY_SUBDIRECTORIES)
452
447
  end
453
448
 
@@ -460,11 +455,11 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
460
455
  #
461
456
  # World-writable directories will never be created.
462
457
 
463
- def self.ensure_default_gem_subdirectories dir = Gem.dir, mode = nil
458
+ def self.ensure_default_gem_subdirectories(dir = Gem.dir, mode = nil)
464
459
  ensure_subdirectories(dir, mode, REPOSITORY_DEFAULT_GEM_SUBDIRECTORIES)
465
460
  end
466
461
 
467
- def self.ensure_subdirectories dir, mode, subdirs # :nodoc:
462
+ def self.ensure_subdirectories(dir, mode, subdirs) # :nodoc:
468
463
  old_umask = File.umask
469
464
  File.umask old_umask | 002
470
465
 
@@ -488,7 +483,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
488
483
  # distinction as extensions cannot be shared between the two.
489
484
 
490
485
  def self.extension_api_version # :nodoc:
491
- if 'no' == RbConfig::CONFIG['ENABLE_SHARED'] then
486
+ if 'no' == RbConfig::CONFIG['ENABLE_SHARED']
492
487
  "#{ruby_api_version}-static"
493
488
  else
494
489
  ruby_api_version
@@ -525,9 +520,10 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
525
520
  return files
526
521
  end
527
522
 
528
- def self.find_files_from_load_path glob # :nodoc:
523
+ def self.find_files_from_load_path(glob) # :nodoc:
524
+ glob_with_suffixes = "#{glob}#{Gem.suffix_pattern}"
529
525
  $LOAD_PATH.map { |load_path|
530
- Dir["#{File.expand_path glob, load_path}#{Gem.suffix_pattern}"]
526
+ Gem::Util.glob_files_in_dir(glob_with_suffixes, load_path)
531
527
  }.flatten.select { |file| File.file? file.untaint }
532
528
  end
533
529
 
@@ -572,25 +568,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
572
568
  #++
573
569
  #--
574
570
  #
575
- # FIXME move to pathsupport
576
- #
577
571
  #++
578
572
 
579
573
  def self.find_home
580
- windows = File::ALT_SEPARATOR
581
- if not windows or RUBY_VERSION >= '1.9' then
582
- File.expand_path "~"
583
- else
584
- ['HOME', 'USERPROFILE'].each do |key|
585
- return File.expand_path ENV[key] if ENV[key]
586
- end
587
-
588
- if ENV['HOMEDRIVE'] && ENV['HOMEPATH'] then
589
- File.expand_path "#{ENV['HOMEDRIVE']}#{ENV['HOMEPATH']}"
590
- end
591
- end
574
+ Dir.home.dup
592
575
  rescue
593
- if windows then
576
+ if Gem.win_platform?
594
577
  File.expand_path File.join(ENV['HOMEDRIVE'] || ENV['SystemDrive'], '/')
595
578
  else
596
579
  File.expand_path "/"
@@ -645,7 +628,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
645
628
  # Fetching: minitest-3.0.1.gem (100%)
646
629
  # => [#<Gem::Specification:0x1013b4528 @name="minitest", ...>]
647
630
 
648
- def self.install name, version = Gem::Requirement.default, *options
631
+ def self.install(name, version = Gem::Requirement.default, *options)
649
632
  require "rubygems/dependency_installer"
650
633
  inst = Gem::DependencyInstaller.new(*options)
651
634
  inst.install name, version
@@ -657,14 +640,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
657
640
  # <tt>https://rubygems.org</tt>.
658
641
 
659
642
  def self.host
660
- # TODO: move to utils
661
643
  @host ||= Gem::DEFAULT_HOST
662
644
  end
663
645
 
664
646
  ## Set the default RubyGems API host.
665
647
 
666
- def self.host= host
667
- # TODO: move to utils
648
+ def self.host=(host)
668
649
  @host = host
669
650
  end
670
651
 
@@ -691,45 +672,32 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
691
672
  return if @yaml_loaded
692
673
  return unless defined?(gem)
693
674
 
694
- test_syck = ENV['TEST_SYCK']
695
-
696
- # Only Ruby 1.8 and 1.9 have syck
697
- test_syck = false unless /^1\./ =~ RUBY_VERSION
675
+ begin
676
+ gem 'psych', '>= 2.0.0'
677
+ rescue Gem::LoadError
678
+ # It's OK if the user does not have the psych gem installed. We will
679
+ # attempt to require the stdlib version
680
+ end
698
681
 
699
- unless test_syck
700
- begin
701
- gem 'psych', '>= 2.0.0'
702
- rescue Gem::LoadError
703
- # It's OK if the user does not have the psych gem installed. We will
704
- # attempt to require the stdlib version
682
+ begin
683
+ # Try requiring the gem version *or* stdlib version of psych.
684
+ require 'psych'
685
+ rescue ::LoadError
686
+ # If we can't load psych, thats fine, go on.
687
+ else
688
+ # If 'yaml' has already been required, then we have to
689
+ # be sure to switch it over to the newly loaded psych.
690
+ if defined?(YAML::ENGINE) && YAML::ENGINE.yamler != "psych"
691
+ YAML::ENGINE.yamler = "psych"
705
692
  end
706
693
 
707
- begin
708
- # Try requiring the gem version *or* stdlib version of psych.
709
- require 'psych'
710
- rescue ::LoadError
711
- # If we can't load psych, thats fine, go on.
712
- else
713
- # If 'yaml' has already been required, then we have to
714
- # be sure to switch it over to the newly loaded psych.
715
- if defined?(YAML::ENGINE) && YAML::ENGINE.yamler != "psych"
716
- YAML::ENGINE.yamler = "psych"
717
- end
718
-
719
- require 'rubygems/psych_additions'
720
- require 'rubygems/psych_tree'
721
- end
694
+ require 'rubygems/psych_additions'
695
+ require 'rubygems/psych_tree'
722
696
  end
723
697
 
724
698
  require 'yaml'
725
699
  require 'rubygems/safe_yaml'
726
700
 
727
- # If we're supposed to be using syck, then we may have to force
728
- # activate it via the YAML::ENGINE API.
729
- if test_syck and defined?(YAML::ENGINE)
730
- YAML::ENGINE.yamler = "syck" unless YAML::ENGINE.syck?
731
- end
732
-
733
701
  # Now that we're sure some kind of yaml library is loaded, pull
734
702
  # in our hack to deal with Syck's DefaultKey ugliness.
735
703
  require 'rubygems/syck_hack'
@@ -865,7 +833,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
865
833
 
866
834
  if prefix != File.expand_path(RbConfig::CONFIG['sitelibdir']) and
867
835
  prefix != File.expand_path(RbConfig::CONFIG['libdir']) and
868
- 'lib' == File.basename(RUBYGEMS_DIR) then
836
+ 'lib' == File.basename(RUBYGEMS_DIR)
869
837
  prefix
870
838
  end
871
839
  end
@@ -923,7 +891,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
923
891
  # The path to the running Ruby interpreter.
924
892
 
925
893
  def self.ruby
926
- if @ruby.nil? then
894
+ if @ruby.nil?
927
895
  @ruby = File.join(RbConfig::CONFIG['bindir'],
928
896
  "#{RbConfig::CONFIG['ruby_install_name']}#{RbConfig::CONFIG['EXEEXT']}")
929
897
 
@@ -952,7 +920,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
952
920
  ##
953
921
  # Returns the latest release-version specification for the gem +name+.
954
922
 
955
- def self.latest_spec_for name
923
+ def self.latest_spec_for(name)
956
924
  dependency = Gem::Dependency.new name
957
925
  fetcher = Gem::SpecFetcher.fetcher
958
926
  spec_tuples, = fetcher.spec_for_dependency dependency
@@ -973,7 +941,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
973
941
  ##
974
942
  # Returns the version of the latest release-version of gem +name+
975
943
 
976
- def self.latest_version_for name
944
+ def self.latest_version_for(name)
977
945
  spec = latest_spec_for name
978
946
  spec and spec.version
979
947
  end
@@ -985,10 +953,15 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
985
953
  return @ruby_version if defined? @ruby_version
986
954
  version = RUBY_VERSION.dup
987
955
 
988
- if defined?(RUBY_PATCHLEVEL) && RUBY_PATCHLEVEL != -1 then
956
+ if defined?(RUBY_PATCHLEVEL) && RUBY_PATCHLEVEL != -1
989
957
  version << ".#{RUBY_PATCHLEVEL}"
990
- elsif defined?(RUBY_REVISION) then
991
- version << ".dev.#{RUBY_REVISION}"
958
+ elsif defined?(RUBY_DESCRIPTION)
959
+ if RUBY_ENGINE == "ruby"
960
+ desc = RUBY_DESCRIPTION[/\Aruby #{Regexp.quote(RUBY_VERSION)}([^ ]+) /, 1]
961
+ else
962
+ desc = RUBY_DESCRIPTION[/\A#{RUBY_ENGINE} #{Regexp.quote(RUBY_ENGINE_VERSION)} \(#{RUBY_VERSION}([^ ]+)\) /, 1]
963
+ end
964
+ version << ".#{desc}" if desc
992
965
  end
993
966
 
994
967
  @ruby_version = Gem::Version.new version
@@ -1018,7 +991,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1018
991
  # DOC: This comment is not documentation about the method itself, it's
1019
992
  # more of a code comment about the implementation.
1020
993
 
1021
- def self.sources= new_sources
994
+ def self.sources=(new_sources)
1022
995
  if !new_sources
1023
996
  @sources = nil
1024
997
  else
@@ -1095,7 +1068,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1095
1068
  # Is this a windows platform?
1096
1069
 
1097
1070
  def self.win_platform?
1098
- if @@win_platform.nil? then
1071
+ if @@win_platform.nil?
1099
1072
  ruby_platform = RbConfig::CONFIG['host_os']
1100
1073
  @@win_platform = !!WIN_PATTERNS.find { |r| ruby_platform =~ r }
1101
1074
  end
@@ -1106,7 +1079,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1106
1079
  ##
1107
1080
  # Load +plugins+ as Ruby files
1108
1081
 
1109
- def self.load_plugin_files plugins # :nodoc:
1082
+ def self.load_plugin_files(plugins) # :nodoc:
1110
1083
  plugins.each do |plugin|
1111
1084
 
1112
1085
  # Skip older versions of the GemCutter plugin: Its commands are in
@@ -1143,8 +1116,9 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1143
1116
  path = "rubygems_plugin"
1144
1117
 
1145
1118
  files = []
1119
+ glob = "#{path}#{Gem.suffix_pattern}"
1146
1120
  $LOAD_PATH.each do |load_path|
1147
- globbed = Dir["#{File.expand_path path, load_path}#{Gem.suffix_pattern}"]
1121
+ globbed = Gem::Util.glob_files_in_dir(glob, load_path)
1148
1122
 
1149
1123
  globbed.each do |load_path_file|
1150
1124
  files << load_path_file if File.file?(load_path_file.untaint)
@@ -1174,7 +1148,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1174
1148
  # execution of arbitrary code when used from directories outside your
1175
1149
  # control.
1176
1150
 
1177
- def self.use_gemdeps path = nil
1151
+ def self.use_gemdeps(path = nil)
1178
1152
  raise_exception = path
1179
1153
 
1180
1154
  path ||= ENV['RUBYGEMS_GEMDEPS']
@@ -1182,7 +1156,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1182
1156
 
1183
1157
  path = path.dup
1184
1158
 
1185
- if path == "-" then
1159
+ if path == "-"
1186
1160
  Gem::Util.traverse_parents Dir.pwd do |directory|
1187
1161
  dep_file = GEM_DEP_FILES.find { |f| File.file?(f) }
1188
1162
 
@@ -1195,7 +1169,7 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1195
1169
 
1196
1170
  path.untaint
1197
1171
 
1198
- unless File.file? path then
1172
+ unless File.file? path
1199
1173
  return unless raise_exception
1200
1174
 
1201
1175
  raise ArgumentError, "Unable to find gem dependencies file at #{path}"
@@ -1365,13 +1339,12 @@ An Array (#{env.inspect}) was passed in from #{caller[3]}
1365
1339
  ##
1366
1340
  # Location of Marshal quick gemspecs on remote repositories
1367
1341
 
1368
- MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/"
1342
+ MARSHAL_SPEC_DIR = "quick/Marshal.#{Gem.marshal_version}/".freeze
1369
1343
 
1370
1344
  autoload :BundlerVersionFinder, 'rubygems/bundler_version_finder'
1371
1345
  autoload :ConfigFile, 'rubygems/config_file'
1372
1346
  autoload :Dependency, 'rubygems/dependency'
1373
1347
  autoload :DependencyList, 'rubygems/dependency_list'
1374
- autoload :DependencyResolver, 'rubygems/resolver'
1375
1348
  autoload :Installer, 'rubygems/installer'
1376
1349
  autoload :Licenses, 'rubygems/util/licenses'
1377
1350
  autoload :PathSupport, 'rubygems/path_support'
@@ -1392,25 +1365,20 @@ end
1392
1365
  require 'rubygems/exceptions'
1393
1366
 
1394
1367
  # REFACTOR: This should be pulled out into some kind of hacks file.
1395
- gem_preluded = Gem::GEM_PRELUDE_SUCKAGE and defined? Gem
1396
- unless gem_preluded then # TODO: remove guard after 1.9.2 dropped
1397
- begin
1398
- ##
1399
- # Defaults the operating system (or packager) wants to provide for RubyGems.
1368
+ begin
1369
+ ##
1370
+ # Defaults the operating system (or packager) wants to provide for RubyGems.
1400
1371
 
1401
- require 'rubygems/defaults/operating_system'
1402
- rescue LoadError
1403
- end
1372
+ require 'rubygems/defaults/operating_system'
1373
+ rescue LoadError
1374
+ end
1404
1375
 
1405
- if defined?(RUBY_ENGINE) then
1406
- begin
1407
- ##
1408
- # Defaults the Ruby implementation wants to provide for RubyGems
1376
+ begin
1377
+ ##
1378
+ # Defaults the Ruby implementation wants to provide for RubyGems
1409
1379
 
1410
- require "rubygems/defaults/#{RUBY_ENGINE}"
1411
- rescue LoadError
1412
- end
1413
- end
1380
+ require "rubygems/defaults/#{RUBY_ENGINE}"
1381
+ rescue LoadError
1414
1382
  end
1415
1383
 
1416
1384
  ##
@@ -1419,5 +1387,6 @@ Gem::Specification.load_defaults
1419
1387
 
1420
1388
  require 'rubygems/core_ext/kernel_gem'
1421
1389
  require 'rubygems/core_ext/kernel_require'
1390
+ require 'rubygems/core_ext/kernel_warn'
1422
1391
 
1423
1392
  Gem.use_gemdeps
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = "rubygems-update"
5
+ s.version = "3.0.9"
6
+ s.authors = ["Jim Weirich", "Chad Fowler", "Eric Hodel", "Luis Lavena", "Aaron Patterson", "Samuel Giddins", "André Arko", "Evan Phoenix", "Hiroshi SHIBATA"]
7
+ s.email = ["", "", "drbrain@segment7.net", "luislavena@gmail.com", "aaron@tenderlovemaking.com", "segiddins@segiddins.me", "andre@arko.net", "evan@phx.io", "hsbt@ruby-lang.org"]
8
+
9
+ s.summary = "RubyGems is a package management framework for Ruby."
10
+ s.description = "A package (also known as a library) contains a set of functionality
11
+ that can be invoked by a Ruby program, such as reading and parsing an XML file. We call
12
+ these packages 'gems' and RubyGems is a tool to install, create, manage and load these
13
+ packages in your Ruby environment. RubyGems is also a client for RubyGems.org, a public
14
+ repository of Gems that allows you to publish a Gem that can be shared and used by other
15
+ developers. See our guide on publishing a Gem at guides.rubygems.org"
16
+ s.homepage = "https://rubygems.org"
17
+ s.licenses = ["Ruby", "MIT"]
18
+
19
+ s.files = File.read('Manifest.txt').split
20
+ s.executables = ["update_rubygems"]
21
+ s.require_paths = ["hide_lib_for_update"]
22
+ s.rdoc_options = ["--main", "README.md", "--title=RubyGems Update Documentation"]
23
+ s.extra_rdoc_files = [
24
+ "History.txt", "LICENSE.txt", "MAINTAINERS.txt",
25
+ "MIT.txt", "Manifest.txt", "README.md",
26
+ "UPGRADING.md", "POLICIES.md", "CODE_OF_CONDUCT.md",
27
+ "CONTRIBUTING.md", "bundler/CHANGELOG.md", "bundler/CODE_OF_CONDUCT.md",
28
+ "bundler/CONTRIBUTING.md", "bundler/LICENSE.md", "bundler/README.md",
29
+ "hide_lib_for_update/note.txt", *Dir["bundler/man/*.1"]
30
+ ]
31
+
32
+ s.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
33
+ s.required_rubygems_version = Gem::Requirement.new(">= 0")
34
+
35
+ s.specification_version = 4
36
+
37
+ s.add_development_dependency(%q<builder>, ["~> 3.0"])
38
+ s.add_development_dependency(%q<rdoc>, ["~> 6.0"])
39
+ s.add_development_dependency(%q<rake>, ["~> 12.0"])
40
+ s.add_development_dependency(%q<minitest>, ["~> 5.0"])
41
+ s.add_development_dependency(%q<simplecov>, ["~> 0"])
42
+ s.add_development_dependency(%q<rubocop>, ["~> 0.60.0"])
43
+ end
data/setup.rb CHANGED
@@ -6,13 +6,8 @@
6
6
  # See LICENSE.txt for permissions.
7
7
  #++
8
8
 
9
- if RUBY_VERSION < "1.8.7"
10
- $stderr.puts "RubyGems now requires Ruby 1.8.7 or later"
11
- exit 1
12
- end
13
-
14
9
  # Make sure rubygems isn't already loaded.
15
- if ENV['RUBYOPT'] or defined? Gem then
10
+ if ENV['RUBYOPT'] or defined? Gem
16
11
  ENV.delete 'RUBYOPT'
17
12
 
18
13
  require 'rbconfig'
@@ -22,7 +17,7 @@ if ENV['RUBYOPT'] or defined? Gem then
22
17
  ruby << config::CONFIG['EXEEXT']
23
18
 
24
19
  cmd = [ruby, 'setup.rb', *ARGV].compact
25
- cmd[1,0] = "--disable-gems" if RUBY_VERSION > "1.9"
20
+ cmd[1,0] = "--disable-gems"
26
21
 
27
22
  exec(*cmd)
28
23
  end
@@ -47,4 +42,3 @@ begin
47
42
  rescue Gem::SystemExitException => e
48
43
  exit e.exit_code
49
44
  end
50
-
@@ -1,68 +1,77 @@
1
- -----BEGIN CERTIFICATE-----
2
- MIID0DCCArigAwIBAgIBADANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQGDAJKUDES
3
- MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
4
- DTA0MDEzMDAwNDIzMloXDTM2MDEyMjAwNDIzMlowPDELMAkGA1UEBgwCSlAxEjAQ
5
- BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMQswCQYDVQQDDAJDQTCCASIw
6
- DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbv0x42BTKFEQOE+KJ2XmiSdZpR
7
- wjzQLAkPLRnLB98tlzs4xo+y4RyY/rd5TT9UzBJTIhP8CJi5GbS1oXEerQXB3P0d
8
- L5oSSMwGGyuIzgZe5+vZ1kgzQxMEKMMKlzA73rbMd4Jx3u5+jdbP0EDrPYfXSvLY
9
- bS04n2aX7zrN3x5KdDrNBfwBio2/qeaaj4+9OxnwRvYP3WOvqdW0h329eMfHw0pi
10
- JI0drIVdsEqClUV4pebT/F+CPUPkEh/weySgo9wANockkYu5ujw2GbLFcO5LXxxm
11
- dEfcVr3r6t6zOA4bJwL0W/e6LBcrwiG/qPDFErhwtgTLYf6Er67SzLyA66UCAwEA
12
- AaOB3DCB2TAPBgNVHRMBAf8EBTADAQH/MDEGCWCGSAGG+EIBDQQkFiJSdWJ5L09w
13
- ZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBRJ7Xd380KzBV7f
14
- USKIQ+O/vKbhDzAOBgNVHQ8BAf8EBAMCAQYwZAYDVR0jBF0wW4AUSe13d/NCswVe
15
- 31EiiEPjv7ym4Q+hQKQ+MDwxCzAJBgNVBAYMAkpQMRIwEAYDVQQKDAlKSU4uR1Iu
16
- SlAxDDAKBgNVBAsMA1JSUjELMAkGA1UEAwwCQ0GCAQAwDQYJKoZIhvcNAQEFBQAD
17
- ggEBAIu/mfiez5XN5tn2jScgShPgHEFJBR0BTJBZF6xCk0jyqNx/g9HMj2ELCuK+
18
- r/Y7KFW5c5M3AQ+xWW0ZSc4kvzyTcV7yTVIwj2jZ9ddYMN3nupZFgBK1GB4Y05GY
19
- MJJFRkSu6d/Ph5ypzBVw2YMT/nsOo5VwMUGLgS7YVjU+u/HNWz80J3oO17mNZllj
20
- PvORJcnjwlroDnS58KoJ7GDgejv3ESWADvX1OHLE4cRkiQGeLoEU4pxdCxXRqX0U
21
- PbwIkZN9mXVcrmPHq8MWi4eC/V7hnbZETMHuWhUoiNdOEfsAXr3iP4KjyyRdwc7a
22
- d/xgcK06UVQRL/HbEYGiQL056mc=
23
- -----END CERTIFICATE-----
24
-
25
- -----BEGIN CERTIFICATE-----
26
- MIIDaDCCAlCgAwIBAgIBATANBgkqhkiG9w0BAQUFADA8MQswCQYDVQQGDAJKUDES
27
- MBAGA1UECgwJSklOLkdSLkpQMQwwCgYDVQQLDANSUlIxCzAJBgNVBAMMAkNBMB4X
28
- DTA0MDEzMDAwNDMyN1oXDTM1MDEyMjAwNDMyN1owPzELMAkGA1UEBgwCSlAxEjAQ
29
- BgNVBAoMCUpJTi5HUi5KUDEMMAoGA1UECwwDUlJSMQ4wDAYDVQQDDAVTdWJDQTCC
30
- ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ0Ou7AyRcRXnB/kVHv/6kwe
31
- ANzgg/DyJfsAUqW90m7Lu1nqyug8gK0RBd77yU0w5HOAMHTVSdpjZK0g2sgx4Mb1
32
- d/213eL9TTl5MRVEChTvQr8q5DVG/8fxPPE7fMI8eOAzd98/NOAChk+80r4Sx7fC
33
- kGVEE1bKwY1MrUsUNjOY2d6t3M4HHV3HX1V8ShuKfsHxgCmLzdI8U+5CnQedFgkm
34
- 3e+8tr8IX5RR1wA1Ifw9VadF7OdI/bGMzog/Q8XCLf+WPFjnK7Gcx6JFtzF6Gi4x
35
- 4dp1Xl45JYiVvi9zQ132wu8A1pDHhiNgQviyzbP+UjcB/tsOpzBQF8abYzgEkWEC
36
- AwEAAaNyMHAwDwYDVR0TAQH/BAUwAwEB/zAxBglghkgBhvhCAQ0EJBYiUnVieS9P
37
- cGVuU1NMIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUlCjXWLsReYzH
38
- LzsxwVnCXmKoB/owCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQCJ/OyN
39
- rT8Cq2Y+G2yA/L1EMRvvxwFBqxavqaqHl/6rwsIBFlB3zbqGA/0oec6MAVnYynq4
40
- c4AcHTjx3bQ/S4r2sNTZq0DH4SYbQzIobx/YW8PjQUJt8KQdKMcwwi7arHP7A/Ha
41
- LKu8eIC2nsUBnP4NhkYSGhbmpJK+PFD0FVtD0ZIRlY/wsnaZNjWWcnWF1/FNuQ4H
42
- ySjIblqVQkPuzebv3Ror6ZnVDukn96Mg7kP4u6zgxOeqlJGRe1M949SS9Vudjl8X
43
- SF4aZUUB9pQGhsqQJVqaz2OlhGOp9D0q54xko/rekjAIcuDjl1mdX4F2WRrzpUmZ
44
- uY/bPeOBYiVsOYVe
45
- -----END CERTIFICATE-----
1
+ Certificate:
2
+ Data:
3
+ Version: 3 (0x2)
4
+ Serial Number: 0 (0x0)
5
+ Signature Algorithm: sha256WithRSAEncryption
6
+ Issuer: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA
7
+ Validity
8
+ Not Before: Jan 1 00:00:00 2009 GMT
9
+ Not After : Dec 31 23:59:59 2049 GMT
10
+ Subject: C=JP, ST=Tokyo, O=RubyGemsTest, CN=CA
11
+ Subject Public Key Info:
12
+ Public Key Algorithm: rsaEncryption
13
+ RSA Public-Key: (2048 bit)
14
+ Modulus:
15
+ 00:c8:19:2c:5a:1d:4d:2a:65:1d:9a:0b:d6:3a:5c:
16
+ 5f:54:90:ac:17:6f:58:18:8f:e6:0f:33:36:ca:a0:
17
+ 92:02:b8:49:85:96:e9:74:16:14:40:67:98:4a:1f:
18
+ 4d:1c:d8:0b:c4:4e:f8:78:0a:68:70:39:d8:66:64:
19
+ c6:d5:ca:49:e9:02:c7:1a:1c:03:ba:a1:85:68:0a:
20
+ 03:05:27:b5:7f:97:21:94:20:f3:fe:ea:2e:f5:2e:
21
+ 99:34:6b:e0:e7:96:ca:51:4e:4d:40:48:09:d6:5f:
22
+ 64:7b:e5:df:eb:3d:44:bf:42:25:f7:84:c7:2d:22:
23
+ e0:7f:00:37:c6:c3:16:75:75:37:6a:e5:56:da:1c:
24
+ 77:37:3c:00:d3:1f:f4:9d:3b:27:08:ff:cd:cf:1e:
25
+ 60:74:65:90:c2:59:b4:12:3e:a0:7f:22:47:87:ff:
26
+ 52:f3:47:39:d1:91:02:1c:bb:8c:c9:20:1f:00:db:
27
+ d1:3a:b0:e0:ba:ee:55:05:8f:1a:f8:1e:dd:6d:83:
28
+ 1c:1d:18:01:44:92:27:22:f1:2a:07:fe:43:83:08:
29
+ 82:d3:2b:f1:ec:b1:68:b3:f8:94:1b:81:29:54:01:
30
+ 56:12:54:66:ba:60:e7:5c:27:04:4d:a3:61:e3:f9:
31
+ 8f:86:53:0b:83:eb:1f:1d:89:0c:83:66:88:c8:50:
32
+ 8d:c5
33
+ Exponent: 65537 (0x10001)
34
+ X509v3 extensions:
35
+ X509v3 Subject Key Identifier:
36
+ D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4
37
+ X509v3 Authority Key Identifier:
38
+ keyid:D6:DB:87:AD:D3:45:FC:D4:8D:6B:2B:97:F4:CF:95:08:B6:FA:62:A4
46
39
 
40
+ X509v3 Basic Constraints: critical
41
+ CA:TRUE
42
+ Signature Algorithm: sha256WithRSAEncryption
43
+ 06:92:f7:9a:0f:40:da:1a:7f:9f:0c:9e:04:37:4d:be:a4:1e:
44
+ 86:65:b3:4a:be:87:13:a1:e4:6b:3b:d6:58:9d:ca:f8:ba:6d:
45
+ e4:dd:de:c5:e3:a2:ec:ef:32:2d:c0:06:01:3a:d5:81:5a:e1:
46
+ e4:f7:5f:68:67:ea:cd:28:90:b1:9c:82:d3:4e:00:51:b6:eb:
47
+ d5:8d:ec:ab:c3:18:b2:8b:8d:5b:63:6d:f8:f5:40:c6:c6:7e:
48
+ 72:7b:ed:98:c5:5e:24:b9:ad:4f:5b:8f:1d:53:a3:d7:6a:4f:
49
+ 07:2e:6a:b6:63:5c:dc:05:22:ac:77:af:b0:72:9d:39:6f:77:
50
+ 9c:45:8b:ad:de:e8:bf:6a:b5:87:0b:58:47:af:11:1a:9e:84:
51
+ 25:21:68:48:2a:b3:3c:5a:97:54:20:03:bd:87:34:dd:db:24:
52
+ a6:c7:50:e9:6c:87:55:f2:e5:33:9c:83:8f:8c:9e:f3:3a:38:
53
+ a0:92:a1:a7:c4:89:31:bd:33:83:11:dd:ad:bb:e0:47:19:bb:
54
+ 62:6c:49:58:b3:13:12:c3:d0:dd:02:5f:6f:4f:13:07:6d:aa:
55
+ 7b:2c:46:5a:74:52:6d:13:10:9c:f7:3d:5d:84:5b:b8:5b:a9:
56
+ c5:ae:56:4b:9a:8c:e2:fd:7f:55:80:cb:b0:2d:56:d7:a4:3c:
57
+ cf:3c:b2:ff
47
58
  -----BEGIN CERTIFICATE-----
48
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- H/ZIkW3ngm1SrR0X/aTCwDB1BgNVHSMEbjBsgBS7B027H/ZIkW3ngm1SrR0X/aTC
60
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
68
77
  -----END CERTIFICATE-----