From ae15d22ab59c8d01b7934d49d7cd40c7f76ca86a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Sat, 7 Feb 2004 18:13:44 +0100
Subject: [PATCH] * pgp-encode.c [!HAVE_LIBGMP]: Kludge around the pgp.h's
 dependency on gmp.h. (pgp_put_mpi): Condition on HAVE_LIBGMP.

* pgp.h: Don't include bignum.h, to make it possible to compile
the non-bignum parts of pgp-encode.c without bignum support. Needs
to be fixed properly before the pgp interface is advertised.

Rev: src/nettle/pgp-encode.c:1.8
Rev: src/nettle/pgp.h:1.6
---
 pgp-encode.c | 21 +++++++++++++++------
 pgp.h        |  4 +++-
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/pgp-encode.c b/pgp-encode.c
index 5154bce6..22d2281a 100644
--- a/pgp-encode.c
+++ b/pgp-encode.c
@@ -31,17 +31,24 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "pgp.h"
+#if HAVE_LIBGMP
+# include "bignum.h"
+# include "pgp.h"
+#else /* !HAVE_LIBGMP */
+/* Kludge to make it possible to include pgp.h */
+# define mpz_t int
+# include "pgp.h"
+# undef mpz_t
+#endif /* !HAVE_LIBGMP */
+
+#if WITH_PUBLIC_KEY
+# include "rsa.h"
+#endif
 
 #include "base64.h"
 #include "buffer.h"
 #include "macros.h"
 
-#if WITH_PUBLIC_KEY
-# include "bignum.h"
-# include "rsa.h"
-#endif /* WITH_PUBLIC_KEY */
-
 int
 pgp_put_uint32(struct nettle_buffer *buffer, uint32_t i)
 {
@@ -64,6 +71,7 @@ pgp_put_uint16(struct nettle_buffer *buffer, unsigned i)
   return 1;
 }
 
+#if HAVE_LIBGMP
 int
 pgp_put_mpi(struct nettle_buffer *buffer, const mpz_t x)
 {
@@ -85,6 +93,7 @@ pgp_put_mpi(struct nettle_buffer *buffer, const mpz_t x)
 
   return 1;
 }
+#endif
 
 int
 pgp_put_string(struct nettle_buffer *buffer,
diff --git a/pgp.h b/pgp.h
index b9103ebd..2bd9a30d 100644
--- a/pgp.h
+++ b/pgp.h
@@ -28,7 +28,9 @@
 
 #include <time.h>
 
-#include "bignum.h"
+/* FIXME: User must include bignum.h before this file, in order to get
+   mpz_t defined. We don't do that here, in order to kludge through
+   compilation without public key support and without gmp.h. */
 
 /* Name mangling */
 #define pgp_put_uint32 nettle_pgp_put_uint32
-- 
GitLab