/******************************************************************************* D language bindings for libsodium's crypto_scalarmult_curve25519.h License: ISC (see LICENSE.txt) *******************************************************************************/ module libsodium.crypto_scalarmult_curve25519; @nogc nothrow: import libsodium.export_; extern (C): enum crypto_scalarmult_curve25519_BYTES = 32U; size_t crypto_scalarmult_curve25519_bytes (); enum crypto_scalarmult_curve25519_SCALARBYTES = 32U; size_t crypto_scalarmult_curve25519_scalarbytes (); /* * NOTE: Do not use the result of this function directly for key exchange. * * Hash the result with the public keys in order to compute a shared * secret key: H(q || client_pk || server_pk) * * Or unless this is not an option, use the crypto_kx() API instead. */ int crypto_scalarmult_curve25519 (ubyte* q, const(ubyte)* n, const(ubyte)* p); int crypto_scalarmult_curve25519_base (ubyte* q, const(ubyte)* n);