diff options
author | Samuel Pitoiset <samuel.pitoiset@gmail.com> | 2012-08-17 00:27:15 +0400 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2012-08-18 00:51:53 +0400 |
commit | 8337b5db967ecadab4bb65c272cb47d350ecb83b (patch) | |
tree | aa0f9c51f96baa4ceb30a00f3edffe1b049ac5a0 /libavformat/rtmpdh.c | |
parent | a2dd4f7780f5b968067d3db728ac64ae444eedab (diff) |
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>
Diffstat (limited to 'libavformat/rtmpdh.c')
-rw-r--r-- | libavformat/rtmpdh.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libavformat/rtmpdh.c b/libavformat/rtmpdh.c index 92bce7a0bc..38c2f3df63 100644 --- a/libavformat/rtmpdh.c +++ b/libavformat/rtmpdh.c @@ -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) |