public static function crypto_kx_seed_keypair($seed) { ParagonIE_Sodium_Core_Util::
declareScalarType($seed, 'string', 1
);
$seed =
(string) $seed;
if (ParagonIE_Sodium_Core_Util::
strlen($seed) !== self::CRYPTO_KX_SEEDBYTES
) { throw new SodiumException('seed must be SODIUM_CRYPTO_KX_SEEDBYTES bytes'
);
} $sk = self::
crypto_generichash($seed, '', self::CRYPTO_KX_SECRETKEYBYTES
);
$pk = self::
crypto_scalarmult_base($sk);
return $sk .
$pk;
} /**
* @return string
* @throws Exception
*/
public static function crypto_kx_keypair() { $sk = self::
randombytes_buf(self::CRYPTO_KX_SECRETKEYBYTES
);
$pk = self::
crypto_scalarmult_base($sk);