============= Cryptography ============= Signer key ---------- The 64 bytes private signer key is a concatination whose last 32 bytes is the public key. A convenience function ``crypto_sign_ed25519_sk_to_pk()`` can also be used to extract this public key. .. code-block:: c #included unsigned char skpk[crypto_sign_SECRETKEYBYTES]; // 64 unsigned char pk[crypto_sign_PUBLICKEYBYTES]; // 32 crypto_sign_keypair(pk, skpk); unsigned char pubkey[crypto_sign_PUBLICKEYBYTES]; crypto_sign_ed25519_sk_to_pk(pubkey, skpk); The value of the two arrays *pubkey* and *pk* should match. ---- Hash ---- We decide the hash ``h`` to be of size 13 bytes, and then compute the hash of the file. .. code-block:: c #included std::ifstream f("c:/stuff/buf-64.dat", std::ios::binary); std::vector buf(std::istreambuf_iterator {f}, {}); unsigned char h[13]; crypto_generichash(h, sizeof h, buf.data(), buf.size(), nullptr, 0);