mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
Merge pull request #3358 from Infisical/daniel/go-sdk-kms-docs
docs(sdk): go sdk kms docs
This commit is contained in:
@@ -284,7 +284,7 @@ if err != nil {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Working With Secrets
|
## Secrets
|
||||||
|
|
||||||
### List Secrets
|
### List Secrets
|
||||||
|
|
||||||
@@ -591,7 +591,7 @@ Create multiple secrets in Infisical.
|
|||||||
</Expandable>
|
</Expandable>
|
||||||
</ParamField>
|
</ParamField>
|
||||||
|
|
||||||
## Working With Folders
|
## Folders
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
@@ -748,3 +748,353 @@ deletedFolder, err := client.Folders().Delete(infisical.DeleteFolderOptions{
|
|||||||
</Expandable>
|
</Expandable>
|
||||||
|
|
||||||
</ParamField>
|
</ParamField>
|
||||||
|
|
||||||
|
## KMS
|
||||||
|
|
||||||
|
### Create Key
|
||||||
|
|
||||||
|
`client.Kms().Keys().Create(options)`
|
||||||
|
|
||||||
|
Create a new key in Infisical.
|
||||||
|
|
||||||
|
```go
|
||||||
|
newKey, err := client.Kms().Keys().Create(infisical.KmsCreateKeyOptions{
|
||||||
|
KeyUsage: "<sign-verify>|<encrypt-decrypt>",
|
||||||
|
Description: "<key-description>",
|
||||||
|
Name: "<key-name>",
|
||||||
|
EncryptionAlgorithm: "<rsa-4096>|<ecc-nist-p256>|<aes-256-gcm>|<aes-128-gcm>",
|
||||||
|
ProjectId: "<project-id>",
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
<ParamField query="Parameters" type="object" optional>
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyUsage" type="string" required>
|
||||||
|
The usage of the key. Valid options are `sign-verify` or `encrypt-decrypt`.
|
||||||
|
The usage dictates what the key can be used for.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Description" type="string" optional>
|
||||||
|
The description of the key.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Name" type="string" required>
|
||||||
|
The name of the key.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="EncryptionAlgorithm" type="string" required>
|
||||||
|
The encryption algorithm of the key.
|
||||||
|
|
||||||
|
Valid options for Signing/Verifying keys are:
|
||||||
|
- `rsa-4096`
|
||||||
|
- `ecc-nist-p256`
|
||||||
|
|
||||||
|
Valid options for Encryption/Decryption keys are:
|
||||||
|
- `aes-256-gcm`
|
||||||
|
- `aes-128-gcm`
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="ProjectId" type="string" required>
|
||||||
|
The ID of the project where the key will be created.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
#### Return (object)
|
||||||
|
<ParamField query="Return" type="object">
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key that was created.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Name" type="string" required>
|
||||||
|
The name of the key that was created.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Description" type="string" required>
|
||||||
|
The description of the key that was created.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="IsDisabled" type="boolean" required>
|
||||||
|
Whether or not the key is disabled.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="OrgId" type="string" required>
|
||||||
|
The ID of the organization that the key belongs to.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="ProjectId" type="string" required>
|
||||||
|
The ID of the project that the key belongs to.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="KeyUsage" type="string" required>
|
||||||
|
The intended usage of the key that was created.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="EncryptionAlgorithm" type="string" required>
|
||||||
|
The encryption algorithm of the key that was created.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Version" type="string" required>
|
||||||
|
The version of the key that was created.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
### Delete Key
|
||||||
|
|
||||||
|
`client.Kms().Keys().Delete(options)`
|
||||||
|
|
||||||
|
Delete a key in Infisical.
|
||||||
|
|
||||||
|
```go
|
||||||
|
deletedKey, err = client.Kms().Keys().Delete(infisical.KmsDeleteKeyOptions{
|
||||||
|
KeyId: "<key-id>",
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
<ParamField query="Parameters" type="object" optional>
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key to delete.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
#### Return (object)
|
||||||
|
<ParamField query="Return" type="object">
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key that was deleted
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Name" type="string" required>
|
||||||
|
The name of the key that was deleted.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Description" type="string" required>
|
||||||
|
The description of the key that was deleted.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="IsDisabled" type="boolean" required>
|
||||||
|
Whether or not the key is disabled.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="OrgId" type="string" required>
|
||||||
|
The ID of the organization that the key belonged to.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="ProjectId" type="string" required>
|
||||||
|
The ID of the project that the key belonged to.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="KeyUsage" type="string" required>
|
||||||
|
The intended usage of the key that was deleted.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="EncryptionAlgorithm" type="string" required>
|
||||||
|
The encryption algorithm of the key that was deleted.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Version" type="string" required>
|
||||||
|
The version of the key that was deleted.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
### Signing Data
|
||||||
|
|
||||||
|
`client.Kms().Signing().Sign(options)`
|
||||||
|
Sign data in Infisical.
|
||||||
|
|
||||||
|
```go
|
||||||
|
res, err := client.Kms().Signing().SignData(infisical.KmsSignDataOptions{
|
||||||
|
KeyId: "<key-id>",
|
||||||
|
Data: "<data-to-sign>", // Must be a base64 encoded string.
|
||||||
|
SigningAlgorithm: "<signing-algorithm>", // The signing algorithm that will be used to sign the data.
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
<ParamField query="Parameters" type="object" optional>
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key to sign the data with.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Data" type="string" required>
|
||||||
|
The data to sign. Must be a base64 encoded string.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="IsDigest" type="boolean" optional>
|
||||||
|
Whether the data is already digested or not.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="SigningAlgorithm" type="string" required>
|
||||||
|
The signing algorithm to use. You must use a signing algorithm that matches the key usage.
|
||||||
|
|
||||||
|
<Note>
|
||||||
|
If you are unsure about which signing algorithms are available for your key, you can use the `client.Kms().Signing().ListSigningAlgorithms()` method. It will return an array of signing algorithms that are available for your key.
|
||||||
|
</Note>
|
||||||
|
|
||||||
|
Valid options for `RSA 4096` keys are:
|
||||||
|
- `RSASSA_PSS_SHA_512`
|
||||||
|
- `RSASSA_PSS_SHA_384`
|
||||||
|
- `RSASSA_PSS_SHA_256`
|
||||||
|
- `RSASSA_PKCS1_V1_5_SHA_512`
|
||||||
|
- `RSASSA_PKCS1_V1_5_SHA_384`
|
||||||
|
- `RSASSA_PKCS1_V1_5_SHA_256`
|
||||||
|
|
||||||
|
Valid options for `ECC NIST P256` keys are:
|
||||||
|
- `ECDSA_SHA_512`
|
||||||
|
- `ECDSA_SHA_384`
|
||||||
|
- `ECDSA_SHA_256`
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
#### Return ([]byte)
|
||||||
|
<ParamField query="Return" type="[]byte">
|
||||||
|
The signature of the data that was signed.
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
### Verifying Data
|
||||||
|
|
||||||
|
`client.Kms().Signing().Verify(options)`
|
||||||
|
Verify data in Infisical.
|
||||||
|
|
||||||
|
```go
|
||||||
|
res, err := client.Kms().Signing().Verify(infisical.KmsVerifyDataOptions{
|
||||||
|
KeyId: "<key-id>",
|
||||||
|
Data: "<data-to-verify>", // Must be a base64 encoded string.
|
||||||
|
SigningAlgorithm: "<signing-algorithm>", // The signing algorithm that was used to sign the data.
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
<ParamField query="Parameters" type="object" optional>
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key to verify the data with.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Data" type="string" required>
|
||||||
|
The data to verify. Must be a base64 encoded string.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="IsDigest" type="boolean" optional>
|
||||||
|
Whether the data is already digested or not.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="SigningAlgorithm" type="string" required>
|
||||||
|
The signing algorithm that was used to sign the data.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
#### Return (object)
|
||||||
|
<ParamField query="Return" type="object">
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="SignatureValid" type="boolean" required>
|
||||||
|
Whether or not the data is valid.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key that was used to verify the data.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="SigningAlgorithm" type="string" required>
|
||||||
|
The signing algorithm that was used to verify the data.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
### List Signing Algorithms
|
||||||
|
|
||||||
|
`client.Kms().Signing().ListSigningAlgorithms(options)`
|
||||||
|
List signing algorithms in Infisical.
|
||||||
|
|
||||||
|
```go
|
||||||
|
res, err := client.Kms().Signing().ListSigningAlgorithms(infisical.KmsListSigningAlgorithmsOptions{
|
||||||
|
KeyId: "<key-id>",
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
<ParamField query="Parameters" type="object" optional>
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key to list signing algorithms for.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
#### Return ([]string)
|
||||||
|
<ParamField query="Return" type="[]string">
|
||||||
|
The signing algorithms that are available for the key.
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
### Get Public Key
|
||||||
|
<Note>
|
||||||
|
This method is only available for keys with key usage `sign-verify`. If you attempt to use this method on a key that is intended for encryption/decryption, it will return an error.
|
||||||
|
</Note>
|
||||||
|
|
||||||
|
`client.Kms().Signing().GetPublicKey(options)`
|
||||||
|
Get the public key in Infisical.
|
||||||
|
|
||||||
|
```go
|
||||||
|
publicKey, err := client.Kms().Signing().GetPublicKey(infisical.KmsGetPublicKeyOptions{
|
||||||
|
KeyId: "<key-id>",
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
<ParamField query="Parameters" type="object" optional>
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key to get the public key for.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
#### Return (string)
|
||||||
|
<ParamField query="Return" type="string">
|
||||||
|
The public key for the key.
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
### Encrypt Data
|
||||||
|
|
||||||
|
`client.Kms().Encryption().Encrypt(options)`
|
||||||
|
Encrypt data with a key in Infisical KMS.
|
||||||
|
|
||||||
|
```go
|
||||||
|
res, err := client.Kms().EncryptData(infisical.KmsEncryptDataOptions{
|
||||||
|
KeyId: "<key-id>",
|
||||||
|
Plaintext: "<data-to-encrypt>",
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
<ParamField query="Parameters" type="object" optional>
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key to encrypt the data with.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
#### Return (string)
|
||||||
|
<ParamField query="Return" type="string">
|
||||||
|
The encrypted data.
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
### Decrypt Data
|
||||||
|
|
||||||
|
`client.Kms().DecryptData(options)`
|
||||||
|
Decrypt data with a key in Infisical KMS.
|
||||||
|
|
||||||
|
```go
|
||||||
|
res, err := client.Kms().DecryptData(infisical.KmsDecryptDataOptions{
|
||||||
|
KeyId: "<key-id>",
|
||||||
|
Ciphertext: "<encrypted-data>",
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
<ParamField query="Parameters" type="object" optional>
|
||||||
|
<Expandable title="properties">
|
||||||
|
<ParamField query="KeyId" type="string" required>
|
||||||
|
The ID of the key to decrypt the data with.
|
||||||
|
</ParamField>
|
||||||
|
<ParamField query="Ciphertext" type="string" required>
|
||||||
|
The encrypted data to decrypt.
|
||||||
|
</ParamField>
|
||||||
|
</Expandable>
|
||||||
|
</ParamField>
|
||||||
|
|
||||||
|
#### Return (string)
|
||||||
|
<ParamField query="Return" type="string">
|
||||||
|
The decrypted data.
|
||||||
|
</ParamField>
|
||||||
|
|||||||
Reference in New Issue
Block a user