in pkg/plugin/keyvault.go [190:221]
func (kvc *KeyVaultClient) Decrypt(
ctx context.Context,
cipher []byte,
encryptionAlgorithm kv.JSONWebKeyEncryptionAlgorithm,
apiVersion string,
annotations map[string][]byte,
decryptRequestKeyID string,
) ([]byte, error) {
if apiVersion == version.KMSv2APIVersion {
err := kvc.validateAnnotations(annotations, decryptRequestKeyID, encryptionAlgorithm)
if err != nil {
return nil, err
}
}
value := string(cipher)
params := kv.KeyOperationsParameters{
Algorithm: encryptionAlgorithm,
Value: &value,
}
result, err := kvc.baseClient.Decrypt(ctx, kvc.vaultURL, kvc.keyName, kvc.keyVersion, params)
if err != nil {
return nil, fmt.Errorf("failed to decrypt, error: %+v", err)
}
bytes, err := base64.RawURLEncoding.DecodeString(*result.Result)
if err != nil {
return nil, fmt.Errorf("failed to base64 decode result, error: %+v", err)
}
return bytes, nil
}