func()

in pkg/plugin/kms_v2_server.go [111:145]


func (s *KeyManagementServiceV2Server) Decrypt(ctx context.Context, request *kmsv2.DecryptRequest) (*kmsv2.DecryptResponse, error) {
	mlog.Debug("decrypt 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.DecryptOperationTypeValue, status, time.Since(start).Seconds(), errors)
	}()

	mlog.Info("decrypt request started", "uid", request.Uid)

	plainText, err := s.kvClient.Decrypt(
		ctx,
		request.Ciphertext,
		s.encryptionAlgorithm,
		version.KMSv2APIVersion,
		request.Annotations,
		request.KeyId,
	)
	if err != nil {
		mlog.Error("failed to decrypt", err, "uid", request.Uid)
		return &kmsv2.DecryptResponse{}, err
	}
	mlog.Info("decrypt request complete", "uid", request.Uid)

	return &kmsv2.DecryptResponse{
		Plaintext: plainText,
	}, nil
}