@Override
  public Bytes compressPublicKey(final SECPPublicKey uncompressedPublicKey) {
    return Bytes.wrap(publicKeyAsEcPoint(uncompressedPublicKey).getEncoded(true));
  }
Verifies the given ECDSA signature using the public key bytes against the message bytes,
previously passed through a preprocessor function, which is normally a hashing function.

@param data The data to verify.
@param signature ASN.1 encoded signature.
@param pub The public key bytes to use.
@param preprocessor The function to apply to the data before verifying the signature, normally
    a hashing function.
@return True if the verification is successful.
crypto/algorithms/src/main/java/org/hyperledger/besu/crypto/AbstractSECP256.java