| // Copyright (c) The OpenTofu Authors | |
| // SPDX-License-Identifier: MPL-2.0 | |
| // Copyright (c) 2023 HashiCorp, Inc. | |
| // SPDX-License-Identifier: MPL-2.0 | |
| package method | |
| import "fmt" | |
| // ErrCryptoFailure indicates a generic cryptographic failure. This error should be embedded into | |
| // ErrEncryptionFailed, ErrDecryptionFailed, or ErrInvalidConfiguration. | |
| type ErrCryptoFailure struct { | |
| Message string | |
| Cause error | |
| SupplementalData string | |
| } | |
| func (e ErrCryptoFailure) Error() string { | |
| result := e.Message | |
| if e.Cause != nil { | |
| result += " (" + e.Cause.Error() + ")" | |
| } | |
| if e.SupplementalData != "" { | |
| result += "\n-----\n" + e.SupplementalData | |
| } | |
| return result | |
| } | |
| func (e ErrCryptoFailure) Unwrap() error { | |
| return e.Cause | |
| } | |
| // ErrEncryptionFailed indicates that encrypting a set of data failed. | |
| type ErrEncryptionFailed struct { | |
| Cause error | |
| } | |
| func (e ErrEncryptionFailed) Error() string { | |
| if e.Cause != nil { | |
| return fmt.Sprintf("encryption failed: %v", e.Cause) | |
| } | |
| return "encryption failed" | |
| } | |
| func (e ErrEncryptionFailed) Unwrap() error { | |
| return e.Cause | |
| } | |
| // ErrDecryptionFailed indicates that decrypting a set of data failed. | |
| type ErrDecryptionFailed struct { | |
| Cause error | |
| } | |
| func (e ErrDecryptionFailed) Error() string { | |
| if e.Cause != nil { | |
| return fmt.Sprintf("decryption failed: %v", e.Cause) | |
| } | |
| return "decryption failed" | |
| } | |
| func (e ErrDecryptionFailed) Unwrap() error { | |
| return e.Cause | |
| } | |
| // ErrDecryptionKeyUnavailable indicates that no decryption key is available. | |
| type ErrDecryptionKeyUnavailable struct { | |
| } | |
| func (e ErrDecryptionKeyUnavailable) Error() string { | |
| return "no decryption key available" | |
| } | |
| // ErrInvalidConfiguration indicates that the method configuration is incorrect. | |
| type ErrInvalidConfiguration struct { | |
| Cause error | |
| } | |
| func (e ErrInvalidConfiguration) Error() string { | |
| if e.Cause != nil { | |
| return fmt.Sprintf("invalid method configuration: %v", e.Cause) | |
| } | |
| return "invalid method configuration" | |
| } | |
| func (e ErrInvalidConfiguration) Unwrap() error { | |
| return e.Cause | |
| } |