in plugin/v1/plugin.go [92:112]
func (g *Plugin) Decrypt(ctx context.Context, request *DecryptRequest) (*DecryptResponse, error) {
glog.V(4).Infoln("Processing request for decryption.")
defer plugin.RecordCloudKMSOperation("decrypt", time.Now().UTC())
resp, err := g.keyService.Decrypt(g.keyURI, &cloudkms.DecryptRequest{
Ciphertext: base64.StdEncoding.EncodeToString(request.Cipher),
}).Context(ctx).Do()
if err != nil {
plugin.CloudKMSOperationalFailuresTotal.WithLabelValues("decrypt").Inc()
return nil, err
}
plain, err := base64.StdEncoding.DecodeString(resp.Plaintext)
if err != nil {
return nil, fmt.Errorf("failed to decode from base64, error: %w", err)
}
return &DecryptResponse{
Plain: plain,
}, nil
}