  Let $G$ be a classical group defined over a finite field. We consider the
following fundamental problems concerning conjugacy in $G$:
  1. List a representative for each conjugacy class of $G$.
  2. Given $x \in G$, describe the centralizer of $x$ in $G$, by giving its
group structure and a generating set.
  3. Given $x,y \in G$, establish whether $x$ and $y$ are conjugate in $G$ and,
if so, then find explicit $z \in G$ such that $z^{-1}xz = y$.
  We present comprehensive theoretical solutions to all three problems, and use
our solutions to formulate practical algorithms. In parallel to our theoretical
work, we have developed in Magma complete implementations of our algorithms.
They form a critical component of various general algorithms in computational
group theory - for example, computing character tables and solving conjugacy
problems in arbitrary finite groups.
