func()

in pkg/plugin/kms_v2_server.go [80:108]


func (s *KeyManagementServiceV2Server) Encrypt(ctx context.Context, request *kmsv2.EncryptRequest) (*kmsv2.EncryptResponse, error) {
	mlog.Debug("encrypt request received", "uid", request.Uid)
	start := time.Now()

	var err error
	defer func() {
		errors := ""
		status := metrics.SuccessStatusTypeValue
		if err != nil {
			status = metrics.ErrorStatusTypeValue
			errors = err.Error()
		}
		s.reporter.ReportRequest(ctx, metrics.EncryptOperationTypeValue, status, time.Since(start).Seconds(), errors)
	}()

	mlog.Info("encrypt request started", "uid", request.Uid)
	encryptResponse, err := s.kvClient.Encrypt(ctx, request.Plaintext, s.encryptionAlgorithm)
	if err != nil {
		mlog.Error("failed to encrypt", err, "uid", request.Uid)
		return &kmsv2.EncryptResponse{}, err
	}
	mlog.Info("encrypt request complete", "uid", request.Uid)

	return &kmsv2.EncryptResponse{
		Ciphertext:  encryptResponse.Ciphertext,
		KeyId:       encryptResponse.KeyID,
		Annotations: encryptResponse.Annotations,
	}, nil
}