opentofu/command
Alisdair McDiarmid a5b3d497cc internal: Verify provider signatures on install
Providers installed from the registry are accompanied by a list of
checksums (the "SHA256SUMS" file), which is cryptographically signed to
allow package authentication. The process of verifying this has multiple
steps:

- First we must verify that the SHA256 hash of the package archive
  matches the expected hash. This could be done for local installations
  too, in the future.
- Next we ensure that the expected hash returned as part of the registry
  API response matches an entry in the checksum list.
- Finally we verify the cryptographic signature of the checksum list,
  using the public keys provided by the registry.

Each of these steps is implemented as a separate PackageAuthentication
type. The local archive installation mechanism uses only the archive
checksum authenticator, and the HTTP installation uses all three in the
order given.

The package authentication system now also returns a result value, which
is used by command/init to display the result of the authentication
process.

There are three tiers of signature, each of which is presented
differently to the user:

- Signatures from the embedded HashiCorp public key indicate that the
  provider is officially supported by HashiCorp;
- If the signing key is not from HashiCorp, it may have an associated
  trust signature, which indicates that the provider is from one of
  HashiCorp's trusted partners;
- Otherwise, if the signature is valid, this is a community provider.
2020-04-17 13:57:19 -04:00
..
cliconfig command: Fix bug when using terraform login on Windows 2020-03-18 09:08:40 -04:00
clistate terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
e2etest command/e2etest: update "init" tests for abbreviated provider addresses 2020-04-06 09:24:23 -07:00
format Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
jsonconfig command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
jsonplan command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
jsonprovider Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
jsonstate command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
testdata provider source tests: added test suite to exercise hyphenated providers (#24685) 2020-04-16 15:54:33 -04:00
webbrowser command/login: Fix browser launcher for WSL users 2020-02-13 15:02:40 -05:00
012_config_upgrade_test.go command: remove 0.12upgrade (#24403) 2020-03-19 08:01:16 -04:00
012_config_upgrade.go command: remove 0.12upgrade (#24403) 2020-03-19 08:01:16 -04:00
013_config_upgrade_test.go command: Add scaffold for 0.13upgrade command 2020-03-16 12:50:24 -04:00
013_config_upgrade.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
apply_destroy_test.go command: apply and most of import tests passing 2020-04-06 09:24:23 -07:00
apply_test.go command: apply and most of import tests passing 2020-04-06 09:24:23 -07:00
apply.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
autocomplete_test.go command: use newer version of "complete" library 2017-12-05 10:24:04 -08:00
autocomplete.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
cli_ui_test.go command/*: colors on error messages (red) 2014-07-12 20:59:16 -07:00
cli_ui.go adding new AskSecret to ColorizeUi 2015-04-29 13:07:13 -05:00
command_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
command.go Implement the Enterprise enhanced remote backend 2018-08-03 22:22:55 +02:00
console_interactive_solaris.go command: split out and tag code so compilation works on Solaris 2016-11-14 00:32:01 -08:00
console_interactive.go command: update "terraform console" for HCL2 2018-10-16 18:46:46 -07:00
console_test.go backend: Allow certain commands to opt out of required variable checks 2019-10-10 10:07:01 -07:00
console.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
debug_command.go Add debug command with json2dot 2016-11-21 11:59:20 -05:00
flag_kv_test.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
flag_kv.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
fmt_test.go command/fmt: Include source snippets in errors 2020-03-26 14:00:26 -04:00
fmt.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
get_test.go command: Update "terraform get" to use the new module installer 2019-01-17 16:52:34 -08:00
get.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
graph_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
graph.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
hook_module_install.go Move module install functionality over to internal/initwd 2019-01-14 11:33:21 -08:00
hook_ui_test.go Merge pull request #18823 from minamijoyo/fix-multibyte-trucate 2019-08-06 14:24:24 -04:00
hook_ui.go Merge pull request #18823 from minamijoyo/fix-multibyte-trucate 2019-08-06 14:24:24 -04:00
import_test.go command/import: fix TestImport_initializationErrorShouldUnlock 2020-04-06 09:24:23 -07:00
import.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
init_test.go internal: Verify provider signatures on install 2020-04-17 13:57:19 -04:00
init.go internal: Verify provider signatures on install 2020-04-17 13:57:19 -04:00
internal_plugin_list.go provisioner: new Puppet provisioner (#18851) 2019-06-10 15:31:21 -04:00
internal_plugin_test.go command: Make the tests compile again 2020-04-06 09:24:23 -07:00
internal_plugin.go command/internal-plugin: Strip off TF_CLI_ARGS arguments 2019-12-05 15:00:51 -08:00
login_test.go Add token validation for manual terraform login 2020-02-04 17:24:25 -05:00
login.go remove race from closed-over err variable 2020-04-08 10:12:46 -04:00
logout_test.go command/logout: Add terraform logout command 2020-02-06 15:00:55 -05:00
logout.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
meta_backend_migrate.go don't store prepared backend config 2019-05-24 14:51:18 -04:00
meta_backend_test.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
meta_backend.go command: use backend config from state when backend=false is used. (#23802) 2020-01-07 15:07:06 -05:00
meta_config.go don't print just warnings when loading backend cfg 2019-12-06 10:20:23 -05:00
meta_new.go prune dead code from command/meta 2019-07-18 16:11:41 -04:00
meta_providers.go internal/providercache: Handle built-in providers 2020-04-06 09:24:23 -07:00
meta_test.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
meta_vars.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
meta.go Remove terraform.ResourceProvider, use providercache.Installer instead 2020-04-06 09:24:23 -07:00
output_test.go command/output: Absence of outputs is not an error 2019-11-06 16:26:32 -08:00
output.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
plan_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
plan.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
plugins_lock_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
plugins_lock.go Standardize on log level "WARN" rather than "WARNING" 2018-01-16 18:05:26 -08:00
plugins_test.go command: Make the tests compile again 2020-04-06 09:24:23 -07:00
plugins.go Remove terraform.ResourceProvider, use providercache.Installer instead 2020-04-06 09:24:23 -07:00
providers_schema_test.go command: Make the tests compile again 2020-04-06 09:24:23 -07:00
providers_schema.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
providers_test.go command/providers: refactor with new provider types and functions 2020-04-10 15:08:10 -04:00
providers.go command/providers: refactor with new provider types and functions 2020-04-10 15:08:10 -04:00
push.go command: remove "terraform push" 2018-10-16 18:24:47 -07:00
refresh_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
refresh.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
show_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
show.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_command.go Thread the environment through all commands 2017-02-28 16:35:46 -05:00
state_list_test.go command/state: update and fix the state list command 2018-10-19 16:31:12 +02:00
state_list.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_meta.go command: Add state replace-provider subcommand 2020-04-02 08:15:52 -04:00
state_mv_test.go use addrs.ConfigResource for dependency tracking 2020-03-25 17:03:06 -04:00
state_mv.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_pull_test.go command: Use statemgr.Import and statemgr.Export for state push and pull 2018-11-19 09:02:35 -08:00
state_pull.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_push_test.go command/state: lock when pushing state 2018-11-20 11:15:16 +01:00
state_push.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_replace_provider_test.go command: Add state replace-provider subcommand 2020-04-02 08:15:52 -04:00
state_replace_provider.go command: Add state replace-provider subcommand 2020-04-02 08:15:52 -04:00
state_rm_test.go finish provider ModuleInstance replacement 2020-03-11 14:19:52 -04:00
state_rm.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_show_test.go Mildwonkey/command tests (#24535) 2020-04-06 09:24:23 -07:00
state_show.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
state_test.go command: Allow tests to run to completion without panics or hangs 2018-10-16 19:14:11 -07:00
taint_test.go finish provider ModuleInstance replacement 2020-03-11 14:19:52 -04:00
taint.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
ui_input_test.go Make sure UIInput keeps working after being canceled 2019-04-29 15:15:26 +02:00
ui_input.go Make sure UIInput keeps working after being canceled 2019-04-29 15:15:26 +02:00
unlock_test.go check for errors when loading a backend config 2019-03-12 17:57:26 -04:00
unlock.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
untaint_test.go finish provider ModuleInstance replacement 2020-03-11 14:19:52 -04:00
untaint.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
validate_test.go vendor: go get github.com/hashicorp/hcl2@0b64543c968c 2019-06-18 17:37:24 -07:00
validate.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
version_test.go Implement CLI, version command 2014-05-24 12:04:43 -07:00
version.go Remove terraform.ResourceProvider, use providercache.Installer instead 2020-04-06 09:24:23 -07:00
workspace_command_test.go finish provider ModuleInstance replacement 2020-03-11 14:19:52 -04:00
workspace_command.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_delete.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_list.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_new.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_select.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
workspace_show.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00