class Ed25519PublicKeyDelegate implements PublicKeyDelegate {

    @Override
    public byte[] generatePublicKeySeed(PrivateKey privateKey) {
        if (!(privateKey instanceof PrivateKeyEd25519)) {
            throw new IllegalArgumentException("Public key on Curve25519 must be " +
                    CURVE.getPublicKeyByteLength() + " byte length. Length: " + privateKey.getRaw().length);
        }

        BigInteger s = privateKey.getScalarSeed(this);

        Point point = CURVE.getBasePoint().scalarMultiply(s);
        return point.encode().getValue();
    }

    public  Ed25519PublicKeyDelegate(HashAlgorithm hashAlgorithm);

}