INNER CODE UNIT · C
keypair
jedisct1/libsodium-php · libsodium.c:3294
keypair = zend_string_checked_alloc(crypto_kx_SECRETKEYBYTES + crypto_kx_PUBLICKEYBYTES, 0);
sk = (unsigned char *) ZSTR_VAL(keypair);
pk = sk + crypto_kx_SECRETKEYBYTES;
crypto_generichash(sk, crypto_kx_SECRETKEYBYTES,
seed, crypto_kx_SEEDBYTES, NULL, 0);
if (crypto_scalarmult_base(pk, sk) != 0) {
zend_throw_exception(sodium_exception_ce, "internal error", 0);
return;
}
RETURN_STR(keypair);
}
PHP_FUNCTION(sodium_crypto_kx_keypair)
{
unsigned char *sk;
unsigned char *pk;
zend_string *keypair;