@Override
  public void verify(final byte[] signature, final byte[] data) throws GeneralSecurityException {
    if (outputPrefix.length == 0 && messageSuffix.length == 0) {
      noPrefixVerify(signature, data);
      return;
    }
    if (!isPrefix(outputPrefix, signature)) {
      throw new GeneralSecurityException("Invalid signature (output prefix mismatch)");
    }
    byte[] dataCopy = data;
    if (messageSuffix.length != 0) {
      dataCopy = com.google.crypto.tink.subtle.Bytes.concat(data, messageSuffix);
    }
    byte[] signatureNoPrefix = Arrays.copyOfRange(signature, outputPrefix.length, signature.length);
    noPrefixVerify(signatureNoPrefix, dataCopy);
  }
Ed25519 verifying.

<p>The first call to this function may take longer, because Ed25519Constants needs to be
initialized.

<h3>Usage</h3>

<pre>{@code
// get the publicKey from the other party.
Ed25519Verify verifier = new Ed25519Verify(publicKey);
try {
  verifier.verify(signature, message);
} catch (GeneralSecurityException e) {
  // all the rest of security exceptions.
}
}</pre>

@since 1.1.0
java_src/src/main/java/com/google/crypto/tink/subtle/Ed25519Verify.java