func()

in plugin/v2/plugin.go [107:133]


func (g *Plugin) Encrypt(ctx context.Context, request *EncryptRequest) (*EncryptResponse, error) {
	glog.V(4).Infof("Processing request for encryption %s using %s", request.Uid, g.keyURI)
	defer plugin.RecordCloudKMSOperation("encrypt", time.Now().UTC())

	resp, err := g.keyService.Encrypt(g.keyURI, &cloudkms.EncryptRequest{
		Plaintext: base64.StdEncoding.EncodeToString(request.Plaintext),
	}).Context(ctx).Do()
	if err != nil {
		plugin.CloudKMSOperationalFailuresTotal.WithLabelValues("encrypt").Inc()
		return nil, err
	}

	cipher, err := base64.StdEncoding.DecodeString(resp.Ciphertext)
	if err != nil {
		return nil, err
	}

	keyID := g.setKeyID(resp.Name)

	glog.V(4).Infof("Processed request for encryption %s using %s",
		request.Uid, keyID)

	return &EncryptResponse{
		Ciphertext: cipher,
		KeyId:      keyID,
	}, nil
}