diff --git a/README.md b/README.md new file mode 100644 index 0000000..d03cea9 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# secret + +Package secret provides a simple interface for fetching secrets from a secrets provider. + +The basic interface is: + +```go +type Provider interface { + GetSecret(key string) (value []byte, err error) +} +``` + +## Providers + +This package is targeting the following secrets providers: + * [x] Environment variables + * [x] Environment variables files + * [x] AWS [Key Management Service (KMS)](https://aws.amazon.com/kms/) + * [x] AWS [Session Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) + * [ ] Azure [Key Vault](https://azure.microsoft.com/nl-nl/products/key-vault) + * [ ] GCP [Secret Manager](https://cloud.google.com/security/products/secret-manager) + * [x] Hashicorp [Vault ](https://www.hashicorp.com/en/products/vault) + * [x] Keyring: Linux + * [x] Keyring: macOS [Keychain Access](https://support.apple.com/en-gb/guide/keychain-access/kyca1083/mac) + * [x] Keyring: Windows [SecretStore](https://learn.microsoft.com/en-us/powershell/utility-modules/secretmanagement/get-started/using-secretstore) + +## Decryption + +The secret provider may return encrypted values, which can be transparently descrypted +by this package. + +Supported decryption methods: + * [x] `AES-GCM` (`AES-128-GCM`, `AES-256-GCM`) Authenticated Encryption with Associated Data + * [x] `RSA-OAEP` Optimal Asymmetric Encryption Padding ([RFC8017](https://www.rfc-editor.org/rfc/rfc8017.html)) + * [x] `RSA-PKCS#1` version 1.5 ([RFC2313](https://www.rfc-editor.org/rfc/rfc2313.html)) + * [x] `ChaCha20-Poly1305` and `XChaCha20-Poly1305` Authenticated Encryption with Associated Data ([RFC8439](https://datatracker.ietf.org/doc/html/rfc8439)) + * [x] `NaCL Secretbox` Secret-key authenticated encryption \ No newline at end of file