rtmpdh: Do not generate the same private key every time when using libnettle

Replace mpz_random by mpz_urandomb with a random state initialization in
order to improve the randomness.

Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
Samuel Pitoiset 2012-08-16 22:27:15 +02:00 committed by Martin Storsjö
parent a2dd4f7780
commit 8337b5db96
1 changed files with 9 additions and 1 deletions

View File

@ -28,6 +28,7 @@
#include "config.h"
#include "rtmpdh.h"
#include "libavutil/random_seed.h"
#define P1024 \
"FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1" \
@ -78,7 +79,14 @@
ret = (mpz_set_str(bn, buf, 16) == 0); \
} while (0)
#define bn_modexp(bn, y, q, p) mpz_powm(bn, y, q, p)
#define bn_random(bn, num_bytes) mpz_random(bn, num_bytes);
#define bn_random(bn, num_bytes) \
do { \
gmp_randstate_t rs; \
gmp_randinit_mt(rs); \
gmp_randseed_ui(rs, av_get_random_seed()); \
mpz_urandomb(bn, rs, num_bytes); \
gmp_randclear(rs); \
} while (0)
#elif CONFIG_GCRYPT
#define bn_new(bn) bn = gcry_mpi_new(1)
#define bn_free(bn) gcry_mpi_release(bn)