Curva elíptica con algoritmo de firma digital (ECDSA), implementación en BouncyCastle

Estoy tratando de implementar ECDSA (algoritmo de firma digital de curva elíptica) pero no pude encontrar ningún ejemplo en Java que use Bouncy Castle. Creé las claves, pero realmente no sé qué tipo de funciones debo usar para crear una firma y verificarla.

public static KeyPair GenerateKeys()
    throws NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException
{
    ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("B-571");
    KeyPairGenerator g = KeyPairGenerator.getInstance("ECDSA", "BC");
    g.initialize(ecSpec, new SecureRandom());
    return g.generateKeyPair();
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta