aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat/rtmpdh.c
diff options
context:
space:
mode:
authorMartin Storsjö <martin@martin.st>2015-05-31 23:46:56 +0300
committerMartin Storsjö <martin@martin.st>2015-06-01 10:38:54 +0300
commit63ce9fd23cfa5ac0d9a862be0da138108dc1c505 (patch)
tree989301804d28fa26eb3a3a1a7c0b861c69469f8d /libavformat/rtmpdh.c
parent84c5ff911f3f0557c8f97a964f74ceb01dd6d214 (diff)
downloadffmpeg-63ce9fd23cfa5ac0d9a862be0da138108dc1c505.tar.gz
rtmpdh: Use GMP functions directly, instead of nettle wrappers
mpz_import and mpz_export were added in GMP 4.1, in 2002. This simplifies the DH code by clarifying that it only uses pure bignum functions, no other parts of nettle/hogweed. Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/rtmpdh.c')
-rw-r--r--libavformat/rtmpdh.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/libavformat/rtmpdh.c b/libavformat/rtmpdh.c
index 12a64bcdd9..df06bece2f 100644
--- a/libavformat/rtmpdh.c
+++ b/libavformat/rtmpdh.c
@@ -46,8 +46,8 @@
"F71C35FDAD44CFD2D74F9208BE258FF324943328F67329C0" \
"FFFFFFFFFFFFFFFF"
-#if CONFIG_NETTLE || CONFIG_GCRYPT
-#if CONFIG_NETTLE
+#if CONFIG_GMP || CONFIG_GCRYPT
+#if CONFIG_GMP
#define bn_new(bn) \
do { \
bn = av_malloc(sizeof(*bn)); \
@@ -65,12 +65,17 @@
#define bn_sub_word(bn, w) mpz_sub_ui(bn, bn, w)
#define bn_cmp_1(bn) mpz_cmp_ui(bn, 1)
#define bn_num_bytes(bn) (mpz_sizeinbase(bn, 2) + 7) / 8
-#define bn_bn2bin(bn, buf, len) nettle_mpz_get_str_256(len, buf, bn)
+#define bn_bn2bin(bn, buf, len) \
+ do { \
+ memset(buf, 0, len); \
+ if (bn_num_bytes(bn) <= len) \
+ mpz_export(buf, NULL, 1, 1, 0, 0, bn); \
+ } while (0)
#define bn_bin2bn(bn, buf, len) \
do { \
bn_new(bn); \
if (bn) \
- nettle_mpz_set_str_256_u(bn, len, buf); \
+ mpz_import(bn, len, 1, 1, 0, 0, buf); \
} while (0)
#define bn_hex2bn(bn, buf, ret) \
do { \