| // Copyright (c) The OpenTofu Authors | |
| // SPDX-License-Identifier: MPL-2.0 | |
| // Copyright (c) 2023 HashiCorp, Inc. | |
| // SPDX-License-Identifier: MPL-2.0 | |
| package registry | |
| import ( | |
| "fmt" | |
| "github.com/opentofu/opentofu/internal/encryption/keyprovider" | |
| "github.com/opentofu/opentofu/internal/encryption/method" | |
| ) | |
| // InvalidKeyProviderError indicates that the supplied keyprovider.Descriptor is invalid/misbehaving. Check the error | |
| // message for details. | |
| type InvalidKeyProviderError struct { | |
| KeyProvider keyprovider.Descriptor | |
| Cause error | |
| } | |
| func (k InvalidKeyProviderError) Error() string { | |
| return fmt.Sprintf("the supplied key provider %T is invalid (%v)", k.KeyProvider, k.Cause) | |
| } | |
| func (k InvalidKeyProviderError) Unwrap() error { | |
| return k.Cause | |
| } | |
| // KeyProviderNotFoundError indicates that the requested key provider was not found in the registry. | |
| type KeyProviderNotFoundError struct { | |
| ID keyprovider.ID | |
| } | |
| func (k KeyProviderNotFoundError) Error() string { | |
| return fmt.Sprintf("key provider with ID %s not found", k.ID) | |
| } | |
| // KeyProviderAlreadyRegisteredError indicates that the requested key provider was already registered in the registry. | |
| type KeyProviderAlreadyRegisteredError struct { | |
| ID keyprovider.ID | |
| CurrentProvider keyprovider.Descriptor | |
| PreviousProvider keyprovider.Descriptor | |
| } | |
| func (k KeyProviderAlreadyRegisteredError) Error() string { | |
| return fmt.Sprintf( | |
| "error while registering key provider ID %s to %T, this ID is already registered by %T", | |
| k.ID, k.CurrentProvider, k.PreviousProvider, | |
| ) | |
| } | |
| // InvalidMethodError indicates that the supplied method.Descriptor is invalid/misbehaving. Check the error message for | |
| // details. | |
| type InvalidMethodError struct { | |
| Method method.Descriptor | |
| Cause error | |
| } | |
| func (k InvalidMethodError) Error() string { | |
| return fmt.Sprintf("the supplied encryption method %T is invalid (%v)", k.Method, k.Cause) | |
| } | |
| func (k InvalidMethodError) Unwrap() error { | |
| return k.Cause | |
| } | |
| // MethodNotFoundError indicates that the requested encryption method was not found in the registry. | |
| type MethodNotFoundError struct { | |
| ID method.ID | |
| } | |
| func (m MethodNotFoundError) Error() string { | |
| return fmt.Sprintf("encryption method with ID %s not found", m.ID) | |
| } | |
| // MethodAlreadyRegisteredError indicates that the requested encryption method was already registered in the registry. | |
| type MethodAlreadyRegisteredError struct { | |
| ID method.ID | |
| CurrentMethod method.Descriptor | |
| PreviousMethod method.Descriptor | |
| } | |
| func (m MethodAlreadyRegisteredError) Error() string { | |
| return fmt.Sprintf( | |
| "error while registering encryption method ID %s to %T, this ID is already registered by %T", | |
| m.ID, m.CurrentMethod, m.PreviousMethod, | |
| ) | |
| } |