@Override
  public boolean verify(
      final Bytes data,
      final SECPSignature signature,
      final SECPPublicKey pub,
      final UnaryOperator<Bytes> preprocessor) {
    checkArgument(preprocessor != null, "preprocessor must not be null");
    return verify(preprocessor.apply(data), signature, pub);
  }
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