inspec 4.3.2 → 4.6.3

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 (368) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +36 -38
  3. data/README.md +37 -21
  4. data/etc/deprecations.json +10 -0
  5. data/etc/plugin_filters.json +8 -0
  6. data/inspec.gemspec +38 -39
  7. data/lib/bundles/inspec-compliance/api.rb +1 -1
  8. data/lib/bundles/inspec-compliance/configuration.rb +1 -1
  9. data/lib/bundles/inspec-compliance/http.rb +1 -1
  10. data/lib/bundles/inspec-compliance/support.rb +1 -1
  11. data/lib/bundles/inspec-compliance/target.rb +1 -1
  12. data/lib/bundles/inspec-supermarket.rb +3 -7
  13. data/lib/bundles/inspec-supermarket/api.rb +10 -13
  14. data/lib/bundles/inspec-supermarket/cli.rb +12 -15
  15. data/lib/bundles/inspec-supermarket/target.rb +7 -11
  16. data/lib/fetchers/git.rb +14 -15
  17. data/lib/fetchers/local.rb +6 -10
  18. data/lib/fetchers/mock.rb +3 -5
  19. data/lib/fetchers/url.rb +42 -44
  20. data/lib/inspec.rb +23 -24
  21. data/lib/inspec/archive/tar.rb +2 -6
  22. data/lib/inspec/archive/zip.rb +3 -7
  23. data/lib/inspec/backend.rb +8 -9
  24. data/lib/inspec/base_cli.rb +64 -65
  25. data/lib/inspec/cached_fetcher.rb +2 -3
  26. data/lib/inspec/cli.rb +136 -97
  27. data/lib/inspec/config.rb +71 -61
  28. data/lib/inspec/control_eval_context.rb +22 -18
  29. data/lib/inspec/dependencies/cache.rb +2 -3
  30. data/lib/inspec/dependencies/dependency_set.rb +2 -3
  31. data/lib/inspec/dependencies/lockfile.rb +8 -9
  32. data/lib/inspec/dependencies/requirement.rb +7 -8
  33. data/lib/inspec/dependencies/resolver.rb +5 -7
  34. data/lib/inspec/describe.rb +2 -6
  35. data/lib/inspec/dist.rb +20 -0
  36. data/lib/inspec/dsl.rb +4 -7
  37. data/lib/inspec/dsl_shared.rb +1 -2
  38. data/lib/inspec/env_printer.rb +11 -12
  39. data/lib/inspec/errors.rb +0 -4
  40. data/lib/inspec/exceptions.rb +0 -1
  41. data/lib/inspec/expect.rb +5 -8
  42. data/lib/inspec/fetcher.rb +7 -10
  43. data/lib/inspec/file_provider.rb +24 -24
  44. data/lib/inspec/formatters.rb +3 -3
  45. data/lib/inspec/formatters/base.rb +8 -8
  46. data/lib/inspec/globals.rb +2 -2
  47. data/lib/inspec/impact.rb +5 -7
  48. data/lib/inspec/input_registry.rb +84 -33
  49. data/lib/inspec/library_eval_context.rb +3 -6
  50. data/lib/inspec/log.rb +1 -5
  51. data/lib/inspec/metadata.rb +17 -16
  52. data/lib/inspec/method_source.rb +5 -9
  53. data/lib/inspec/objects.rb +10 -12
  54. data/lib/inspec/objects/control.rb +7 -9
  55. data/lib/inspec/objects/describe.rb +9 -11
  56. data/lib/inspec/objects/each_loop.rb +1 -3
  57. data/lib/inspec/objects/input.rb +24 -26
  58. data/lib/inspec/objects/list.rb +4 -6
  59. data/lib/inspec/objects/or_test.rb +2 -4
  60. data/lib/inspec/objects/ruby_helper.rb +3 -5
  61. data/lib/inspec/objects/tag.rb +0 -2
  62. data/lib/inspec/objects/test.rb +9 -11
  63. data/lib/inspec/objects/value.rb +3 -5
  64. data/lib/inspec/plugin/v1.rb +2 -2
  65. data/lib/inspec/plugin/v1/plugin_types/cli.rb +1 -5
  66. data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +2 -5
  67. data/lib/inspec/plugin/v1/plugin_types/resource.rb +4 -6
  68. data/lib/inspec/plugin/v1/plugin_types/secret.rb +1 -5
  69. data/lib/inspec/plugin/v1/plugin_types/source_reader.rb +1 -5
  70. data/lib/inspec/plugin/v1/plugins.rb +15 -19
  71. data/lib/inspec/plugin/v1/registry.rb +0 -4
  72. data/lib/inspec/plugin/v2.rb +8 -8
  73. data/lib/inspec/plugin/v2/activator.rb +1 -1
  74. data/lib/inspec/plugin/v2/config_file.rb +6 -6
  75. data/lib/inspec/plugin/v2/filter.rb +13 -13
  76. data/lib/inspec/plugin/v2/installer.rb +36 -24
  77. data/lib/inspec/plugin/v2/loader.rb +28 -28
  78. data/lib/inspec/plugin/v2/plugin_base.rb +15 -2
  79. data/lib/inspec/plugin/v2/plugin_types/cli.rb +5 -5
  80. data/lib/inspec/plugin/v2/plugin_types/input.rb +34 -0
  81. data/lib/inspec/plugin/v2/plugin_types/mock.rb +1 -1
  82. data/lib/inspec/plugin/v2/registry.rb +7 -7
  83. data/lib/inspec/polyfill.rb +0 -3
  84. data/lib/inspec/profile.rb +55 -63
  85. data/lib/inspec/profile_context.rb +27 -30
  86. data/lib/inspec/profile_vendor.rb +6 -9
  87. data/lib/inspec/reporters.rb +24 -24
  88. data/lib/inspec/reporters/automate.rb +17 -19
  89. data/lib/inspec/reporters/base.rb +1 -1
  90. data/lib/inspec/reporters/cli.rb +88 -91
  91. data/lib/inspec/reporters/json.rb +2 -4
  92. data/lib/inspec/reporters/json_automate.rb +1 -3
  93. data/lib/inspec/reporters/json_min.rb +1 -3
  94. data/lib/inspec/reporters/junit.rb +26 -28
  95. data/lib/inspec/reporters/yaml.rb +1 -3
  96. data/lib/inspec/require_loader.rb +0 -4
  97. data/lib/inspec/resource.rb +4 -125
  98. data/lib/inspec/resources.rb +121 -0
  99. data/lib/{resources → inspec/resources}/aide_conf.rb +24 -25
  100. data/lib/{resources → inspec/resources}/apache.rb +13 -14
  101. data/lib/{resources → inspec/resources}/apache_conf.rb +16 -17
  102. data/lib/{resources → inspec/resources}/apt.rb +17 -17
  103. data/lib/{resources → inspec/resources}/audit_policy.rb +7 -6
  104. data/lib/{resources → inspec/resources}/auditd.rb +62 -64
  105. data/lib/{resources → inspec/resources}/auditd_conf.rb +7 -8
  106. data/lib/{resources → inspec/resources}/bash.rb +6 -8
  107. data/lib/{resources → inspec/resources}/bond.rb +15 -14
  108. data/lib/{resources → inspec/resources}/bridge.rb +8 -8
  109. data/lib/{resources → inspec/resources}/chocolatey_package.rb +10 -8
  110. data/lib/{resources → inspec/resources}/command.rb +11 -10
  111. data/lib/{resources → inspec/resources}/cpan.rb +12 -12
  112. data/lib/{resources → inspec/resources}/cran.rb +9 -9
  113. data/lib/{resources → inspec/resources}/crontab.rb +47 -48
  114. data/lib/{resources → inspec/resources}/csv.rb +5 -5
  115. data/lib/{resources → inspec/resources}/dh_params.rb +5 -7
  116. data/lib/{resources → inspec/resources}/directory.rb +5 -7
  117. data/lib/{resources → inspec/resources}/docker.rb +63 -63
  118. data/lib/{resources → inspec/resources}/docker_container.rb +6 -6
  119. data/lib/{resources → inspec/resources}/docker_image.rb +9 -9
  120. data/lib/{resources → inspec/resources}/docker_object.rb +8 -13
  121. data/lib/{resources → inspec/resources}/docker_plugin.rb +6 -6
  122. data/lib/{resources → inspec/resources}/docker_service.rb +7 -7
  123. data/lib/{resources → inspec/resources}/elasticsearch.rb +40 -42
  124. data/lib/{resources → inspec/resources}/etc_fstab.rb +23 -24
  125. data/lib/{resources → inspec/resources}/etc_group.rb +26 -27
  126. data/lib/{resources → inspec/resources}/etc_hosts.rb +11 -13
  127. data/lib/{resources → inspec/resources}/etc_hosts_allow_deny.rb +25 -27
  128. data/lib/{resources → inspec/resources}/file.rb +80 -79
  129. data/lib/{resources → inspec/resources}/filesystem.rb +20 -15
  130. data/lib/{resources → inspec/resources}/firewalld.rb +26 -26
  131. data/lib/{resources → inspec/resources}/gem.rb +12 -12
  132. data/lib/{resources → inspec/resources}/groups.rb +28 -27
  133. data/lib/{resources → inspec/resources}/grub_conf.rb +46 -48
  134. data/lib/{resources → inspec/resources}/host.rb +31 -29
  135. data/lib/{resources → inspec/resources}/http.rb +24 -24
  136. data/lib/{resources → inspec/resources}/iis_app.rb +6 -7
  137. data/lib/{resources → inspec/resources}/iis_app_pool.rb +21 -19
  138. data/lib/{resources → inspec/resources}/iis_site.rb +17 -15
  139. data/lib/{resources → inspec/resources}/inetd_conf.rb +9 -10
  140. data/lib/{resources → inspec/resources}/ini.rb +7 -8
  141. data/lib/{resources → inspec/resources}/interface.rb +30 -30
  142. data/lib/{resources → inspec/resources}/iptables.rb +8 -8
  143. data/lib/{resources → inspec/resources}/json.rb +8 -10
  144. data/lib/{resources → inspec/resources}/kernel_module.rb +15 -15
  145. data/lib/{resources → inspec/resources}/kernel_parameter.rb +8 -8
  146. data/lib/{resources → inspec/resources}/key_rsa.rb +8 -10
  147. data/lib/{resources → inspec/resources}/ksh.rb +6 -8
  148. data/lib/{resources → inspec/resources}/limits_conf.rb +8 -9
  149. data/lib/{resources/login_def.rb → inspec/resources/login_defs.rb} +9 -10
  150. data/lib/{resources → inspec/resources}/mount.rb +6 -8
  151. data/lib/{resources → inspec/resources}/mssql_session.rb +16 -18
  152. data/lib/inspec/resources/mysql.rb +81 -0
  153. data/lib/{resources → inspec/resources}/mysql_conf.rb +13 -14
  154. data/lib/{resources → inspec/resources}/mysql_session.rb +16 -16
  155. data/lib/{resources → inspec/resources}/nginx.rb +16 -17
  156. data/lib/{resources → inspec/resources}/nginx_conf.rb +26 -27
  157. data/lib/{resources → inspec/resources}/npm.rb +9 -10
  158. data/lib/{resources → inspec/resources}/ntp_conf.rb +9 -10
  159. data/lib/{resources → inspec/resources}/oneget.rb +8 -8
  160. data/lib/{resources → inspec/resources}/oracledb_session.rb +33 -34
  161. data/lib/{resources → inspec/resources}/os.rb +6 -8
  162. data/lib/{resources → inspec/resources}/os_env.rb +11 -12
  163. data/lib/{resources → inspec/resources}/package.rb +66 -65
  164. data/lib/{resources → inspec/resources}/packages.rb +13 -13
  165. data/lib/{resources → inspec/resources}/parse_config.rb +8 -8
  166. data/lib/{resources → inspec/resources}/passwd.rb +18 -19
  167. data/lib/{resources → inspec/resources}/pip.rb +19 -19
  168. data/lib/{resources → inspec/resources}/platform.rb +9 -11
  169. data/lib/{resources → inspec/resources}/port.rb +134 -136
  170. data/lib/{resources → inspec/resources}/postgres.rb +40 -32
  171. data/lib/{resources → inspec/resources}/postgres_conf.rb +17 -17
  172. data/lib/{resources → inspec/resources}/postgres_hba_conf.rb +21 -23
  173. data/lib/{resources → inspec/resources}/postgres_ident_conf.rb +12 -14
  174. data/lib/{resources → inspec/resources}/postgres_session.rb +8 -9
  175. data/lib/{resources → inspec/resources}/powershell.rb +17 -13
  176. data/lib/{resources → inspec/resources}/processes.rb +29 -29
  177. data/lib/{resources/rabbitmq_conf.rb → inspec/resources/rabbitmq_config.rb} +10 -11
  178. data/lib/{resources → inspec/resources}/registry_key.rb +14 -14
  179. data/lib/inspec/resources/script.rb +1 -0
  180. data/lib/{resources → inspec/resources}/security_identifier.rb +11 -10
  181. data/lib/{resources → inspec/resources}/security_policy.rb +59 -58
  182. data/lib/{resources → inspec/resources}/service.rb +74 -75
  183. data/lib/{resources → inspec/resources}/shadow.rb +44 -45
  184. data/lib/{resources/ssh_conf.rb → inspec/resources/ssh_config.rb} +16 -17
  185. data/lib/{resources → inspec/resources}/ssl.rb +28 -29
  186. data/lib/inspec/resources/sys_info.rb +30 -0
  187. data/lib/{resources → inspec/resources}/toml.rb +5 -7
  188. data/lib/{resources → inspec/resources}/users.rb +65 -65
  189. data/lib/{resources → inspec/resources}/vbscript.rb +8 -9
  190. data/lib/{resources → inspec/resources}/virtualization.rb +60 -62
  191. data/lib/{resources → inspec/resources}/windows_feature.rb +9 -9
  192. data/lib/{resources → inspec/resources}/windows_hotfix.rb +5 -5
  193. data/lib/{resources → inspec/resources}/windows_task.rb +16 -15
  194. data/lib/{resources → inspec/resources}/wmi.rb +7 -8
  195. data/lib/{resources → inspec/resources}/x509_certificate.rb +9 -11
  196. data/lib/{resources/xinetd.rb → inspec/resources/xinetd_conf.rb} +27 -29
  197. data/lib/{resources → inspec/resources}/xml.rb +7 -7
  198. data/lib/{resources → inspec/resources}/yaml.rb +5 -6
  199. data/lib/{resources → inspec/resources}/yum.rb +10 -10
  200. data/lib/{resources → inspec/resources}/zfs_dataset.rb +6 -6
  201. data/lib/{resources → inspec/resources}/zfs_pool.rb +4 -4
  202. data/lib/inspec/rspec_extensions.rb +24 -8
  203. data/lib/inspec/rule.rb +14 -15
  204. data/lib/inspec/runner.rb +28 -28
  205. data/lib/inspec/runner_mock.rb +1 -5
  206. data/lib/inspec/runner_rspec.rb +18 -20
  207. data/lib/inspec/runtime_profile.rb +2 -5
  208. data/lib/inspec/schema.rb +142 -143
  209. data/lib/inspec/secrets.rb +3 -7
  210. data/lib/inspec/secrets/yaml.rb +3 -5
  211. data/lib/inspec/shell.rb +11 -15
  212. data/lib/inspec/shell_detector.rb +6 -7
  213. data/lib/inspec/source_reader.rb +4 -8
  214. data/lib/inspec/ui.rb +33 -39
  215. data/lib/inspec/ui_table_helper.rb +12 -0
  216. data/lib/{utils → inspec/utils}/command_wrapper.rb +4 -8
  217. data/lib/{utils → inspec/utils}/convert.rb +0 -4
  218. data/lib/{utils → inspec/utils}/database_helpers.rb +4 -8
  219. data/lib/inspec/utils/deprecation.rb +6 -0
  220. data/lib/{utils → inspec/utils}/deprecation/config_file.rb +19 -19
  221. data/lib/{utils → inspec/utils}/deprecation/deprecator.rb +12 -12
  222. data/lib/{utils → inspec/utils}/deprecation/errors.rb +1 -1
  223. data/lib/{utils → inspec/utils}/deprecation/global_method.rb +2 -2
  224. data/lib/{utils → inspec/utils}/enumerable_delegation.rb +0 -2
  225. data/lib/{utils → inspec/utils}/erlang_parser.rb +61 -65
  226. data/lib/{utils → inspec/utils}/file_reader.rb +1 -2
  227. data/lib/{utils → inspec/utils}/filter.rb +30 -33
  228. data/lib/{utils → inspec/utils}/filter_array.rb +0 -2
  229. data/lib/{utils → inspec/utils}/find_files.rb +9 -12
  230. data/lib/{utils → inspec/utils}/hash.rb +1 -5
  231. data/lib/inspec/utils/json_log.rb +15 -0
  232. data/lib/inspec/utils/latest_version.rb +13 -0
  233. data/lib/{utils → inspec/utils}/modulator.rb +0 -3
  234. data/lib/{utils → inspec/utils}/nginx_parser.rb +31 -35
  235. data/lib/{utils → inspec/utils}/object_traversal.rb +0 -3
  236. data/lib/{utils → inspec/utils}/parser.rb +45 -45
  237. data/lib/{utils → inspec/utils}/pkey_reader.rb +4 -2
  238. data/lib/{utils → inspec/utils}/simpleconfig.rb +8 -10
  239. data/lib/{utils → inspec/utils}/spdx.rb +1 -4
  240. data/lib/{utils → inspec/utils}/spdx.txt +0 -0
  241. data/lib/inspec/utils/telemetry.rb +3 -3
  242. data/lib/inspec/utils/telemetry/collector.rb +30 -9
  243. data/lib/inspec/utils/telemetry/data_series.rb +3 -1
  244. data/lib/inspec/utils/telemetry/global_methods.rb +1 -1
  245. data/lib/inspec/version.rb +1 -1
  246. data/lib/matchers/matchers.rb +22 -25
  247. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +1 -1
  248. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +52 -45
  249. data/lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb +18 -16
  250. data/lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb +12 -11
  251. data/lib/plugins/inspec-compliance/lib/inspec-compliance.rb +1 -1
  252. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +73 -73
  253. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb +66 -62
  254. data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +59 -57
  255. data/lib/plugins/inspec-compliance/lib/inspec-compliance/configuration.rb +11 -11
  256. data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +20 -22
  257. data/lib/plugins/inspec-compliance/lib/inspec-compliance/support.rb +2 -4
  258. data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +30 -27
  259. data/lib/plugins/inspec-compliance/test/functional/inspec_compliance_test.rb +12 -14
  260. data/lib/plugins/inspec-compliance/test/integration/default/cli.rb +39 -41
  261. data/lib/plugins/inspec-compliance/test/unit/api/login_test.rb +64 -64
  262. data/lib/plugins/inspec-compliance/test/unit/api_test.rb +157 -156
  263. data/lib/plugins/inspec-compliance/test/unit/target_test.rb +85 -85
  264. data/lib/plugins/inspec-habitat/Berksfile +2 -2
  265. data/lib/plugins/inspec-habitat/lib/inspec-habitat.rb +1 -1
  266. data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +15 -13
  267. data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +64 -63
  268. data/lib/plugins/inspec-habitat/templates/habitat/hooks/run.erb +3 -3
  269. data/lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb +11 -11
  270. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/Berksfile +1 -1
  271. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/metadata.rb +8 -8
  272. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/recipes/default.rb +17 -17
  273. data/lib/plugins/inspec-habitat/test/functional/inspec_habitat_test.rb +9 -8
  274. data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/controls/inspec_habitat.rb +14 -14
  275. data/lib/plugins/inspec-habitat/test/support/example_profile/controls/example.rb +4 -4
  276. data/lib/plugins/inspec-habitat/test/unit/profile_test.rb +42 -41
  277. data/lib/plugins/inspec-init/lib/inspec-init.rb +1 -1
  278. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +6 -8
  279. data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +72 -74
  280. data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +9 -11
  281. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +4 -4
  282. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +0 -1
  283. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec +0 -2
  284. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template.rb +0 -2
  285. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.rb +0 -2
  286. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.rb +0 -2
  287. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.rb +0 -2
  288. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/functional/inspec_plugin_template_test.rb +5 -5
  289. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/helper.rb +1 -3
  290. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/cli_args_test.rb +2 -2
  291. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/plugin_def_test.rb +2 -2
  292. data/lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb +10 -11
  293. data/lib/plugins/inspec-init/templates/profiles/azure/controls/example.rb +4 -5
  294. data/lib/plugins/inspec-init/templates/profiles/gcp/controls/example.rb +10 -11
  295. data/lib/plugins/inspec-init/templates/profiles/os/controls/example.rb +6 -7
  296. data/lib/plugins/inspec-init/test/functional/inspec_init_plugin_test.rb +51 -50
  297. data/lib/plugins/inspec-init/test/functional/inspec_init_profile_test.rb +35 -33
  298. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb +1 -2
  299. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +72 -70
  300. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb +1 -1
  301. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/wrong-name/lib/wrong-name.rb +1 -1
  302. data/lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb +281 -271
  303. data/lib/plugins/inspec-plugin-manager-cli/test/unit/cli_args_test.rb +41 -41
  304. data/lib/plugins/inspec-plugin-manager-cli/test/unit/plugin_def_test.rb +25 -6
  305. data/lib/plugins/shared/core_plugin_test_helper.rb +43 -38
  306. data/lib/resource_support/aws.rb +67 -67
  307. data/lib/resource_support/aws/aws_plural_resource_mixin.rb +4 -1
  308. data/lib/resource_support/aws/aws_resource_mixin.rb +4 -3
  309. data/lib/resource_support/aws/aws_singular_resource_mixin.rb +4 -1
  310. data/lib/resources/aws/aws_billing_report.rb +15 -8
  311. data/lib/resources/aws/aws_billing_reports.rb +10 -7
  312. data/lib/resources/aws/aws_cloudtrail_trail.rb +9 -5
  313. data/lib/resources/aws/aws_cloudtrail_trails.rb +9 -5
  314. data/lib/resources/aws/aws_cloudwatch_alarm.rb +9 -5
  315. data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +12 -8
  316. data/lib/resources/aws/aws_config_delivery_channel.rb +13 -9
  317. data/lib/resources/aws/aws_config_recorder.rb +10 -6
  318. data/lib/resources/aws/aws_ebs_volume.rb +12 -8
  319. data/lib/resources/aws/aws_ebs_volumes.rb +9 -5
  320. data/lib/resources/aws/aws_ec2_instance.rb +14 -11
  321. data/lib/resources/aws/aws_ec2_instances.rb +9 -5
  322. data/lib/resources/aws/aws_ecs_cluster.rb +11 -7
  323. data/lib/resources/aws/aws_eks_cluster.rb +13 -9
  324. data/lib/resources/aws/aws_elb.rb +9 -5
  325. data/lib/resources/aws/aws_elbs.rb +9 -5
  326. data/lib/resources/aws/aws_flow_log.rb +17 -13
  327. data/lib/resources/aws/aws_iam_access_key.rb +15 -11
  328. data/lib/resources/aws/aws_iam_access_keys.rb +19 -15
  329. data/lib/resources/aws/aws_iam_group.rb +9 -5
  330. data/lib/resources/aws/aws_iam_groups.rb +9 -5
  331. data/lib/resources/aws/aws_iam_password_policy.rb +13 -10
  332. data/lib/resources/aws/aws_iam_policies.rb +9 -5
  333. data/lib/resources/aws/aws_iam_policy.rb +16 -12
  334. data/lib/resources/aws/aws_iam_role.rb +9 -5
  335. data/lib/resources/aws/aws_iam_root_user.rb +12 -8
  336. data/lib/resources/aws/aws_iam_user.rb +12 -12
  337. data/lib/resources/aws/aws_iam_users.rb +10 -10
  338. data/lib/resources/aws/aws_kms_key.rb +12 -8
  339. data/lib/resources/aws/aws_kms_keys.rb +9 -5
  340. data/lib/resources/aws/aws_rds_instance.rb +11 -8
  341. data/lib/resources/aws/aws_route_table.rb +11 -7
  342. data/lib/resources/aws/aws_route_tables.rb +10 -6
  343. data/lib/resources/aws/aws_s3_bucket.rb +14 -11
  344. data/lib/resources/aws/aws_s3_bucket_object.rb +12 -9
  345. data/lib/resources/aws/aws_s3_buckets.rb +9 -7
  346. data/lib/resources/aws/aws_security_group.rb +16 -12
  347. data/lib/resources/aws/aws_security_groups.rb +12 -8
  348. data/lib/resources/aws/aws_sns_subscription.rb +15 -11
  349. data/lib/resources/aws/aws_sns_topic.rb +10 -6
  350. data/lib/resources/aws/aws_sns_topics.rb +9 -5
  351. data/lib/resources/aws/aws_sqs_queue.rb +18 -14
  352. data/lib/resources/aws/aws_subnet.rb +11 -7
  353. data/lib/resources/aws/aws_subnets.rb +9 -5
  354. data/lib/resources/aws/aws_vpc.rb +10 -6
  355. data/lib/resources/aws/aws_vpcs.rb +9 -5
  356. data/lib/resources/azure/azure_backend.rb +20 -18
  357. data/lib/resources/azure/azure_generic_resource.rb +13 -15
  358. data/lib/resources/azure/azure_resource_group.rb +17 -19
  359. data/lib/resources/azure/azure_virtual_machine.rb +6 -8
  360. data/lib/resources/azure/azure_virtual_machine_data_disk.rb +6 -8
  361. data/lib/source_readers/flat.rb +6 -10
  362. data/lib/source_readers/inspec.rb +8 -12
  363. metadata +141 -142
  364. data/lib/resources/mysql.rb +0 -82
  365. data/lib/resources/sys_info.rb +0 -28
  366. data/lib/utils/deprecation.rb +0 -6
  367. data/lib/utils/json_log.rb +0 -18
  368. data/lib/utils/latest_version.rb +0 -22
@@ -1,9 +1,7 @@
1
- # encoding: utf-8
2
1
  # copyright: 2015, Dominik Richter
3
- # author: Dominik Richter
4
- # author: Christoph Hartmann
5
2
 
6
- require 'utils/parser'
3
+ require "inspec/utils/parser"
4
+ require "hashie"
7
5
 
8
6
  class SimpleConfig
9
7
  include CommentParser
@@ -86,18 +84,18 @@ class SimpleConfig
86
84
  if opts[:multiple_values]
87
85
  @vals[line.strip] ||= []
88
86
  else
89
- @vals[line.strip] = ''
87
+ @vals[line.strip] = ""
90
88
  end
91
89
  end
92
90
 
93
91
  def parse_rest(rest, opts)
94
92
  line, idx_nl = parse_comment_line(rest, opts)
95
- parse_params_line(line, opts) or
96
- parse_group_line(line, opts) or
93
+ parse_params_line(line, opts) ||
94
+ parse_group_line(line, opts) ||
97
95
  parse_implicit_assignment_line(line, opts)
98
96
 
99
97
  # return whatever is left
100
- rest[(idx_nl + 1)..-1] || ''
98
+ rest[(idx_nl + 1)..-1] || ""
101
99
  end
102
100
 
103
101
  def is_empty_line(l)
@@ -106,9 +104,9 @@ class SimpleConfig
106
104
 
107
105
  def default_options
108
106
  {
109
- quotes: '',
107
+ quotes: "",
110
108
  multiline: false,
111
- comment_char: '#',
109
+ comment_char: "#",
112
110
  line_separator: nil, # uses this char to seperate lines before parsing
113
111
  assignment_regex: /^\s*([^=]*?)\s*=\s*(.*?)\s*$/,
114
112
  group_re: /\[([^\]]+)\]\s*$/,
@@ -1,9 +1,6 @@
1
- # encoding: utf-8
2
- # author: Christoph Hartmann
3
- # author: Dominik Richter
4
1
  class Spdx
5
2
  def self.licenses
6
- spdx_file = File.join(File.dirname(__FILE__), 'spdx.txt').freeze
3
+ spdx_file = File.join(File.dirname(__FILE__), "spdx.txt").freeze
7
4
  File.read(spdx_file).split("\n")
8
5
  end
9
6
 
File without changes
@@ -1,3 +1,3 @@
1
- require 'inspec/utils/telemetry/collector'
2
- require 'inspec/utils/telemetry/data_series'
3
- require 'inspec/utils/telemetry/global_methods'
1
+ require "inspec/utils/telemetry/collector"
2
+ require "inspec/utils/telemetry/data_series"
3
+ require "inspec/utils/telemetry/global_methods"
@@ -1,14 +1,23 @@
1
- require 'inspec/utils/telemetry/data_series'
2
- require 'singleton'
1
+ require "inspec/config"
2
+ require "inspec/utils/telemetry/data_series"
3
+ require "singleton"
3
4
 
4
5
  module Inspec::Telemetry
5
6
  # A Singleton collection of data series objects.
6
7
  class Collector
7
8
  include Singleton
8
9
 
10
+ attr_reader :config
11
+
9
12
  def initialize
10
13
  @data_series = []
11
- @enabled = true
14
+ @telemetry_toggled_off = false
15
+ load_config
16
+ end
17
+
18
+ # Allow loading a configuration, useful when testing.
19
+ def load_config(config = Inspec::Config.cached)
20
+ @config = config
12
21
  end
13
22
 
14
23
  # Add a data series to the collection.
@@ -17,17 +26,20 @@ module Inspec::Telemetry
17
26
  @data_series << data_series
18
27
  end
19
28
 
20
- # Is the Telemetry system enabled or disabled?
21
- # Always true until we add configuration parsing.
29
+ # The loaded configuration should have a option to configure
30
+ # telemetry, if not default to false.
22
31
  # @return [True, False]
23
32
  def telemetry_enabled?
24
- @enabled
33
+ if @telemetry_toggled_off
34
+ false
35
+ else
36
+ config_telemetry_options.fetch("enable_telemetry", false)
37
+ end
25
38
  end
26
39
 
27
40
  # A way to disable the telemetry system.
28
- # @return [True]
29
41
  def disable_telemetry
30
- @enabled = false
42
+ @telemetry_toggled_off = true
31
43
  end
32
44
 
33
45
  # The entire data series collection.
@@ -52,9 +64,18 @@ module Inspec::Telemetry
52
64
  end
53
65
 
54
66
  # Blanks the contents of the data series collection.
67
+ # Reset telemetry toggle
55
68
  # @return [True]
56
- def reset
69
+ def reset!
57
70
  @data_series = []
71
+ @telemetry_toggled_off = false
72
+ end
73
+
74
+ private
75
+
76
+ # Minimize exposure of Inspec::Config interface
77
+ def config_telemetry_options
78
+ config.telemetry_options
58
79
  end
59
80
  end
60
81
  end
@@ -1,4 +1,6 @@
1
- require 'json'
1
+ require "json"
2
+
3
+ module Inspec; end
2
4
 
3
5
  # A minimal Dataseries Object
4
6
  # Stores the name of the data series and an array of data.
@@ -1,4 +1,4 @@
1
- require 'inspec/utils/telemetry'
1
+ require "inspec/utils/telemetry/collector"
2
2
 
3
3
  module Inspec
4
4
  # A Global method to add a data series object to the Telemetry Collection.
@@ -1,3 +1,3 @@
1
1
  module Inspec
2
- VERSION = '4.3.2'.freeze
2
+ VERSION = "4.6.3".freeze
3
3
  end
@@ -1,7 +1,4 @@
1
- # encoding: utf-8
2
1
  # copyright: 2015, Vulcano Security GmbH
3
- # author: Dominik Richter
4
- # author: Christoph Hartmann
5
2
 
6
3
  RSpec::Matchers.define :be_readable do
7
4
  match do |file|
@@ -17,7 +14,7 @@ RSpec::Matchers.define :be_readable do
17
14
  end
18
15
 
19
16
  description do
20
- res = 'be readable'
17
+ res = "be readable"
21
18
  res += " by #{@by}" unless @by.nil?
22
19
  res += " by user #{@by_user}" unless @by_user.nil?
23
20
  res
@@ -38,7 +35,7 @@ RSpec::Matchers.define :be_writable do
38
35
  end
39
36
 
40
37
  description do
41
- res = 'be writable'
38
+ res = "be writable"
42
39
  res += " by #{@by}" unless @by.nil?
43
40
  res += " by user #{@by_user}" unless @by_user.nil?
44
41
  res
@@ -59,7 +56,7 @@ RSpec::Matchers.define :be_executable do
59
56
  end
60
57
 
61
58
  description do
62
- res = 'be executable'
59
+ res = "be executable"
63
60
  res += " by #{@by}" unless @by.nil?
64
61
  res += " by user #{@by_user}" unless @by_user.nil?
65
62
  res
@@ -95,7 +92,7 @@ RSpec::Matchers.define :be_enabled do
95
92
  end
96
93
 
97
94
  chain :with_level do |_level|
98
- raise '[UNSUPPORTED] with level is not supported'
95
+ raise "[UNSUPPORTED] with level is not supported"
99
96
  end
100
97
 
101
98
  failure_message do |service|
@@ -107,12 +104,12 @@ end
107
104
  # Deprecated: You should not use this matcher anymore
108
105
  RSpec::Matchers.define :be_running do
109
106
  match do |service|
110
- Inspec.deprecate(:serverspec_compatibility, 'The service `be_running?` matcher is deprecated.')
107
+ Inspec.deprecate(:serverspec_compatibility, "The service `be_running?` matcher is deprecated.")
111
108
  service.running? == true
112
109
  end
113
110
 
114
111
  chain :under do |_under|
115
- raise '[UNSUPPORTED] under is not supported'
112
+ raise "[UNSUPPORTED] under is not supported"
116
113
  end
117
114
 
118
115
  failure_message do |service|
@@ -127,7 +124,7 @@ RSpec::Matchers.define :be_reachable do
127
124
  end
128
125
 
129
126
  chain :with do |_attr|
130
- raise '[UNSUPPORTED] `with` is not supported in combination with `be_reachable`'
127
+ raise "[UNSUPPORTED] `with` is not supported in combination with `be_reachable`"
131
128
  end
132
129
 
133
130
  failure_message do |host|
@@ -218,13 +215,13 @@ RSpec::Matchers.define :cmp do |first_expected| # rubocop:disable Metrics/BlockL
218
215
  def float?(value)
219
216
  Float(value)
220
217
  true
221
- rescue ArgumentError => _ex
218
+ rescue ArgumentError, TypeError
222
219
  false
223
220
  end
224
221
 
225
222
  def octal?(value)
226
223
  return false unless value.is_a?(String)
227
- !(value =~ /\A0+\d+\Z/).nil?
224
+ !(value =~ /\A0+[0-7]+\Z/).nil?
228
225
  end
229
226
 
230
227
  def boolean?(value)
@@ -240,33 +237,33 @@ RSpec::Matchers.define :cmp do |first_expected| # rubocop:disable Metrics/BlockL
240
237
 
241
238
  # expects that the values have been checked with boolean?
242
239
  def to_boolean(value)
243
- value.casecmp('true') == 0
240
+ value.casecmp("true") == 0
244
241
  end
245
242
 
246
243
  def try_match(actual, op, expected) # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity, Metrics/AbcSize
247
244
  # if actual and expected are strings
248
245
  if expected.is_a?(String) && actual.is_a?(String)
249
246
  return actual.casecmp(expected) == 0 if op == :==
250
- return Gem::Version.new(actual).method(op).call(Gem::Version.new(expected)) if
247
+ return Gem::Version.new(actual).send(op, Gem::Version.new(expected)) if
251
248
  version?(expected) && version?(actual)
252
249
  elsif expected.is_a?(Regexp) && (actual.is_a?(String) || actual.is_a?(Integer))
253
250
  return !actual.to_s.match(expected).nil?
254
251
  elsif expected.is_a?(String) && integer?(expected) && actual.is_a?(Integer)
255
- return actual.method(op).call(expected.to_i)
252
+ return actual.send(op, expected.to_i)
256
253
  elsif expected.is_a?(String) && boolean?(expected) && [true, false].include?(actual)
257
- return actual.method(op).call(to_boolean(expected))
254
+ return actual.send(op, to_boolean(expected))
258
255
  elsif expected.is_a?(Integer) && integer?(actual)
259
- return actual.to_i.method(op).call(expected)
256
+ return actual.to_i.send(op, expected)
260
257
  elsif expected.is_a?(Float) && float?(actual)
261
- return actual.to_f.method(op).call(expected)
258
+ return actual.to_f.send(op, expected)
262
259
  elsif actual.is_a?(Symbol) && expected.is_a?(String)
263
- return actual.to_s.method(op).call(expected)
260
+ return try_match(actual.to_s, op, expected)
264
261
  elsif octal?(expected) && actual.is_a?(Integer)
265
- return actual.method(op).call(expected.to_i(8))
262
+ return actual.send(op, expected.to_i(8))
266
263
  end
267
264
 
268
265
  # fallback to simple operation
269
- actual.method(op).call(expected)
266
+ actual.send(op, expected)
270
267
  rescue NameError => _
271
268
  false
272
269
  rescue ArgumentError
@@ -289,18 +286,18 @@ RSpec::Matchers.define :cmp do |first_expected| # rubocop:disable Metrics/BlockL
289
286
  end
290
287
 
291
288
  def format_expectation(negate)
292
- return 'expected: '+@expected.inspect if @operation == :== && !negate
293
- negate_str = negate ? 'not ' : ''
289
+ return "expected: " + @expected.inspect if @operation == :== && !negate
290
+ negate_str = negate ? "not " : ""
294
291
  "expected it #{negate_str}to be #{@operation} #{@expected.inspect}"
295
292
  end
296
293
 
297
294
  failure_message do |actual|
298
- actual = ('0' + actual.to_s(8)) if octal?(@expected)
295
+ actual = ("0" + actual.to_s(8)) if octal?(@expected)
299
296
  "\n" + format_expectation(false) + "\n got: #{actual.inspect}\n\n(compared using `cmp` matcher)\n"
300
297
  end
301
298
 
302
299
  failure_message_when_negated do |actual|
303
- actual = ('0' + actual.to_s(8)).inspect if octal?(@expected)
300
+ actual = ("0" + actual.to_s(8)).inspect if octal?(@expected)
304
301
  "\n" + format_expectation(true) + "\n got: #{actual.inspect}\n\n(compared using `cmp` matcher)\n"
305
302
  end
306
303
 
@@ -4,7 +4,7 @@ module InspecPlugins
4
4
  plugin_name :'inspec-artifact'
5
5
 
6
6
  cli_command :artifact do
7
- require_relative 'inspec-artifact/cli'
7
+ require_relative "inspec-artifact/cli"
8
8
  InspecPlugins::Artifact::CLI
9
9
  end
10
10
  end
@@ -1,41 +1,48 @@
1
- require 'base64'
2
- require 'openssl'
3
- require 'pathname'
4
- require 'set'
5
- require 'tempfile'
6
- require 'yaml'
1
+ require "base64"
2
+ require "openssl"
3
+ require "pathname"
4
+ require "set"
5
+ require "tempfile"
6
+ require "yaml"
7
+ require "inspec/dist"
7
8
 
8
9
  module InspecPlugins
9
10
  module Artifact
10
11
  class Base
11
- KEY_BITS=2048
12
- KEY_ALG=OpenSSL::PKey::RSA
12
+ include Inspec::Dist
13
13
 
14
- INSPEC_PROFILE_VERSION_1='INSPEC-PROFILE-1'.freeze
15
- INSPEC_REPORT_VERSION_1='INSPEC-REPORT-1'.freeze
14
+ KEY_BITS = 2048
15
+ KEY_ALG = OpenSSL::PKey::RSA
16
16
 
17
- ARTIFACT_DIGEST=OpenSSL::Digest::SHA512
18
- ARTIFACT_DIGEST_NAME='SHA512'.freeze
17
+ INSPEC_PROFILE_VERSION_1 = "INSPEC-PROFILE-1".freeze
18
+ INSPEC_REPORT_VERSION_1 = "INSPEC-REPORT-1".freeze
19
19
 
20
- VALID_PROFILE_VERSIONS=Set.new [INSPEC_PROFILE_VERSION_1]
21
- VALID_PROFILE_DIGESTS=Set.new [ARTIFACT_DIGEST_NAME]
20
+ ARTIFACT_DIGEST = OpenSSL::Digest::SHA512
21
+ ARTIFACT_DIGEST_NAME = "SHA512".freeze
22
22
 
23
- SIGNED_PROFILE_SUFFIX='iaf'.freeze
24
- SIGNED_REPORT_SUFFIX='iar'.freeze
23
+ VALID_PROFILE_VERSIONS = Set.new [INSPEC_PROFILE_VERSION_1]
24
+ VALID_PROFILE_DIGESTS = Set.new [ARTIFACT_DIGEST_NAME]
25
+
26
+ SIGNED_PROFILE_SUFFIX = "iaf".freeze
27
+ SIGNED_REPORT_SUFFIX = "iar".freeze
25
28
 
26
29
  def self.keygen(options)
27
30
  key = KEY_ALG.new KEY_BITS
28
- puts 'Generating private key'
29
- open "#{options['keyname']}.pem.key", 'w' do |io| io.write key.to_pem end
30
- puts 'Generating public key'
31
- open "#{options['keyname']}.pem.pub", 'w' do |io| io.write key.public_key.to_pem end
31
+ puts "Generating private key"
32
+ open "#{options['keyname']}.pem.key", "w" do |io|
33
+ io.write key.to_pem
34
+ end
35
+ puts "Generating public key"
36
+ open "#{options['keyname']}.pem.pub", "w" do |io|
37
+ io.write key.public_key.to_pem
38
+ end
32
39
  end
33
40
 
34
41
  def self.profile_sign(options)
35
42
  artifact = new
36
43
  Dir.mktmpdir do |workdir|
37
44
  puts "Signing #{options['profile']} with key #{options['keyname']}"
38
- path_to_profile = options['profile']
45
+ path_to_profile = options["profile"]
39
46
  profile_md = artifact.read_profile_metadata(path_to_profile)
40
47
  artifact_filename = "#{profile_md['name']}-#{profile_md['version']}.#{SIGNED_PROFILE_SUFFIX}"
41
48
  tarfile = artifact.profile_compress(path_to_profile, profile_md, workdir)
@@ -46,12 +53,12 @@ module InspecPlugins
46
53
  # convert the signature to Base64
47
54
  signature_base64 = Base64.encode64(signature)
48
55
  tar_content = IO.binread(tarfile)
49
- File.open(artifact_filename, 'wb') do |f|
56
+ File.open(artifact_filename, "wb") do |f|
50
57
  f.puts(INSPEC_PROFILE_VERSION_1)
51
- f.puts(options['keyname'])
58
+ f.puts(options["keyname"])
52
59
  f.puts(ARTIFACT_DIGEST_NAME)
53
60
  f.puts(signature_base64)
54
- f.puts('') # newline separates artifact header with body
61
+ f.puts("") # newline separates artifact header with body
55
62
  f.write(tar_content)
56
63
  end
57
64
  puts "Successfully generated #{artifact_filename}"
@@ -60,21 +67,21 @@ module InspecPlugins
60
67
 
61
68
  def self.profile_verify(options)
62
69
  artifact = new
63
- file_to_verifiy = options['infile']
70
+ file_to_verifiy = options["infile"]
64
71
  puts "Verifying #{file_to_verifiy}"
65
72
  artifact.verify(file_to_verifiy) do ||
66
- puts 'Artifact is valid'
73
+ puts "Artifact is valid"
67
74
  end
68
75
  end
69
76
 
70
77
  def self.profile_install(options)
71
78
  artifact = new
72
- puts 'Installing profile'
73
- file_to_verifiy = options['infile']
74
- dest_dir = options['destdir']
79
+ puts "Installing profile"
80
+ file_to_verifiy = options["infile"]
81
+ dest_dir = options["destdir"]
75
82
  artifact.verify(file_to_verifiy) do |content|
76
83
  Dir.mktmpdir do |workdir|
77
- tmpfile = Pathname.new(workdir).join('artifact_to_install.tar.gz')
84
+ tmpfile = Pathname.new(workdir).join("artifact_to_install.tar.gz")
78
85
  File.write(tmpfile, content)
79
86
  puts "Installing to #{dest_dir}"
80
87
  `tar xzf #{tmpfile} -C #{dest_dir}`
@@ -85,31 +92,31 @@ module InspecPlugins
85
92
  def read_profile_metadata(path_to_profile)
86
93
  begin
87
94
  p = Pathname.new(path_to_profile)
88
- p = p.join('inspec.yml')
95
+ p = p.join("inspec.yml")
89
96
  if not p.exist?
90
- raise "#{path_to_profile} doesn't appear to be a valid InSpec profile"
97
+ raise "#{path_to_profile} doesn't appear to be a valid #{PRODUCT_NAME} profile"
91
98
  end
92
99
  yaml = YAML.load_file(p.to_s)
93
100
  yaml = yaml.to_hash
94
101
 
95
- if not yaml.key? 'name'
96
- raise 'Profile is invalid, name is not defined'
102
+ if not yaml.key? "name"
103
+ raise "Profile is invalid, name is not defined"
97
104
  end
98
105
 
99
- if not yaml.key? 'version'
100
- raise 'Profile is invalid, version is not defined'
106
+ if not yaml.key? "version"
107
+ raise "Profile is invalid, version is not defined"
101
108
  end
102
109
  rescue => e
103
110
  # rewrap it and pass it up to the CLI
104
- raise "Error reading InSpec profile metadata: #{e}"
111
+ raise "Error reading #{PRODUCT_NAME} profile metadata: #{e}"
105
112
  end
106
113
 
107
114
  yaml
108
115
  end
109
116
 
110
117
  def profile_compress(path_to_profile, profile_md, workdir)
111
- profile_name = profile_md['name']
112
- profile_version = profile_md['version']
118
+ profile_name = profile_md["name"]
119
+ profile_version = profile_md["version"]
113
120
  outfile_name = "#{workdir}/#{profile_name}-#{profile_version}.tar.gz"
114
121
  `tar czf #{outfile_name} -C #{path_to_profile} .`
115
122
  outfile_name
@@ -122,17 +129,17 @@ module InspecPlugins
122
129
  raise "Can't find #{public_keyfile}"
123
130
  end
124
131
 
125
- raise 'Invalid artifact digest algorithm detected' if !VALID_PROFILE_DIGESTS.member?(file_alg)
126
- raise 'Invalid artifact version detected' if !VALID_PROFILE_VERSIONS.member?(file_version)
132
+ raise "Invalid artifact digest algorithm detected" if !VALID_PROFILE_DIGESTS.member?(file_alg)
133
+ raise "Invalid artifact version detected" if !VALID_PROFILE_VERSIONS.member?(file_version)
127
134
  end
128
135
 
129
136
  def verify(file_to_verifiy, &content_block)
130
- f = File.open(file_to_verifiy, 'r')
137
+ f = File.open(file_to_verifiy, "r")
131
138
  file_version = f.readline.strip!
132
139
  file_keyname = f.readline.strip!
133
140
  file_alg = f.readline.strip!
134
141
 
135
- file_sig = ''
142
+ file_sig = ""
136
143
  # the signature is multi-line
137
144
  while (line = f.readline) != "\n"
138
145
  file_sig += line
@@ -145,7 +152,7 @@ module InspecPlugins
145
152
  public_keyfile = "#{file_keyname}.pem.pub"
146
153
  verification_key = KEY_ALG.new File.read public_keyfile
147
154
 
148
- f = File.open(file_to_verifiy, 'r')
155
+ f = File.open(file_to_verifiy, "r")
149
156
  while f.readline != "\n" do end
150
157
  content = f.read
151
158
 
@@ -154,7 +161,7 @@ module InspecPlugins
154
161
  if verification_key.verify digest, signature, content
155
162
  content_block.yield(content)
156
163
  else
157
- puts 'Artifact is invalid'
164
+ puts "Artifact is invalid"
158
165
  end
159
166
  end
160
167
  end