Fix with nettle >=4

rdssl_rkey_get_exp_mod hunk: segfault (fixes build with llvm22)
https://github.com/rdesktop/rdesktop/issues/356
https://github.com/rdesktop/rdesktop/pull/357

Index: ssl.c
--- ssl.c.orig
+++ ssl.c
@@ -25,6 +25,7 @@
 #include "asn.h"
 
 #include <gnutls/x509.h>
+#include <nettle/version.h>
 
 void
 rdssl_sha1_init(RDSSL_SHA1 * sha1)
@@ -41,7 +42,11 @@ rdssl_sha1_update(RDSSL_SHA1 * sha1, uint8 * data, uin
 void
 rdssl_sha1_final(RDSSL_SHA1 * sha1, uint8 * out_data)
 {
+#if NETTLE_VERSION_MAJOR > 3
+	sha1_digest(sha1, out_data);
+#else
 	sha1_digest(sha1, SHA1_DIGEST_SIZE, out_data);
+#endif
 }
 
 void
@@ -59,7 +64,11 @@ rdssl_md5_update(RDSSL_MD5 * md5, uint8 * data, uint32
 void
 rdssl_md5_final(RDSSL_MD5 * md5, uint8 * out_data)
 {
+#if NETTLE_VERSION_MAJOR > 3
+	md5_digest(md5, out_data);
+#else
 	md5_digest(md5, MD5_DIGEST_SIZE, out_data);
+#endif
 }
 
 void
@@ -307,10 +316,10 @@ rdssl_rkey_get_exp_mod(RDSSL_RKEY * rkey, uint8 * expo
 {
 	size_t outlen;
 
-	outlen = (mpz_sizeinbase(modulus, 2) + 7) / 8;
+	outlen = (mpz_sizeinbase(rkey->n, 2) + 7) / 8;
 	if (outlen > max_mod_len)
 		return 1;
-	outlen = (mpz_sizeinbase(exponent, 2) + 7) / 8;
+	outlen = (mpz_sizeinbase(rkey->e, 2) + 7) / 8;
 	if (outlen > max_exp_len)
 		return 1;
 
@@ -360,5 +369,9 @@ rdssl_hmac_md5(const void *key, int key_len, const uns
 
 	hmac_md5_set_key(&ctx, key_len, key);
 	hmac_md5_update(&ctx, msg_len, msg);
+#if NETTLE_VERSION_MAJOR > 3
+	hmac_md5_digest(&ctx, md);
+#else
 	hmac_md5_digest(&ctx, MD5_DIGEST_SIZE, md);
+#endif
 }
