@Override
  public byte[] sign(final byte[] data) throws GeneralSecurityException {
    byte[] signature;
    if (messageSuffix.length == 0) {
      signature = noPrefixSign(data);
    } else {
      signature = noPrefixSign(Bytes.concat(data, messageSuffix));
    }
    if (outputPrefix.length == 0) {
      return signature;
    } else {
      return Bytes.concat(outputPrefix, signature);
    }
  }
Constructs a Ed25519Sign with the {@code privateKey}.

@param privateKey 32-byte random sequence.
@throws GeneralSecurityException if there is no SHA-512 algorithm defined in {@link
    EngineFactory}.MESSAGE_DIGEST.
java_src/src/main/java/com/google/crypto/tink/subtle/Ed25519Sign.java