diff --git a/configure.ac b/configure.ac
index 8057d71041b7e5a568a69340f1339a4275c83940..b55a982f0714fdb47d37faaeb0d21d9d676ae879 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,8 +10,11 @@ AC_CONFIG_AUX_DIR([.])
 
 AC_CONFIG_HEADER([config.h])
 
-SHLIBMAJOR=2
-SHLIBMINOR=6
+LIBNETTLE_MAJOR=3
+LIBNETTLE_MINOR=0
+
+LIBHOGWEED_MAJOR=1
+LIBHOGWEED_MINOR=0
 
 AC_CANONICAL_HOST
 
@@ -163,37 +166,48 @@ SHLIBCFLAGS="$CCPIC"
 
 case "$host_os" in
   cygwin*)
-    SHLIBFORLINK='cygnettle-$(SHLIBMAJOR)-$(SHLIBMINOR).dll'
-    SHLIBSONAME=''
-    SHLIBFILE='libnettle.dll.a'
-    SHLIBLINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(SHLIBFILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
-    SHLIBLIBS='-Wl,--no-whole-archive $(LIBS)'
+    LIBNETTLE_FORLINK='cygnettle-$(SHLIBMAJOR)-$(SHLIBMINOR).dll'
+    LIBNETTLE_SONAME=''
+    LIBNETTLE_FILE='libnettle.dll.a'
+    LIBNETTLE_LINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBNETTLE_LIBFILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
+    LIBNETTLE_LIBS='-Wl,--no-whole-archive $(LIBS)'
+
+    LIBHOGWEED_FORLINK='cygnettle-$(SHLIBMAJOR)-$(SHLIBMINOR).dll'
+    LIBHOGWEED_SONAME=''
+    LIBHOGWEED_FILE='libnettle.dll.a'
+    LIBHOGWEED_LINK='$(CC) $(LDFLAGS) -shared -Wl,--out-implib=$(LIBHOGWEED_LIBFILE) -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive'
+    LIBHOGWEED_LIBS='-Wl,--no-whole-archive $(LIBS)'
     ;;
   darwin*)
-    SHLIBFORLINK=libnettle.dylib
-    SHLIBSONAME='$(SHLIBFORLINK).$(SHLIBMAJOR)'
-    SHLIBFILE='$(SHLIBSONAME).$(SHLIBMINOR)'
-    SHLIBLINK='$(CC) -dynamiclib $(LDFLAGS)'
-    # SHLIBLIBS=' -lgmp'
+    LIBNETTLE_FORLINK=libnettle.dylib
+    LIBNETTLE_SONAME='$(LIBNETTLE_FORLINK).$(LIBNETTLE_MAJOR)'
+    LIBNETTLE_FILE='$(LIBNETTLE_SONAME).$(LIBNETTLE_MINOR)'
+    LIBNETTLE_LINK='$(CC) -dynamiclib $(LDFLAGS)'
+    LIBNETTLE_LIBS=''
+
+    LIBHOGWEED_FORLINK=libnettle.dylib
+    LIBHOGWEED_SONAME='$(LIBHOGWEED_FORLINK).$(LIBHOGWEED_MAJOR)'
+    LIBHOGWEED_FILE='$(LIBHOGWEED_SONAME).$(LIBHOGWEED_MINOR)'
+    LIBHOGWEED_LINK='$(CC) -dynamiclib $(LDFLAGS)'
+    LIBHOGWEED_LIBS=''
     ;;
   *)
-    SHLIBFORLINK=libnettle.so
-    SHLIBSONAME='$(SHLIBFORLINK).$(SHLIBMAJOR)'
-    SHLIBFILE='$(SHLIBSONAME).$(SHLIBMINOR)'
-    SHLIBLINK='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(SHLIBSONAME)'
+    LIBNETTLE_FORLINK=libnettle.so
+    LIBNETTLE_SONAME='$(LIBNETTLE_FORLINK).$(LIBNETTLE_MAJOR)'
+    LIBNETTLE_FILE='$(LIBNETTLE_SONAME).$(LIBNETTLE_MINOR)'
+    LIBNETTLE_LINK='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(LIBNETTLE_SONAME)'
+    # FIXME: It might make some sense to link with -lgmp
+    LIBNETTLE_LIBS=''
+
+    LIBHOGWEED_FORLINK=libnettle.so
+    LIBHOGWEED_SONAME='$(LIBHOGWEED_FORLINK).$(LIBHOGWEED_MAJOR)'
+    LIBHOGWEED_FILE='$(LIBHOGWEED_SONAME).$(LIBHOGWEED_MINOR)'
+    LIBHOGWEED_LINK='$(CC) $(LDFLAGS) -shared -Wl,-soname=$(LIBHOGWEED_SONAME)'
     # FIXME: It might make some sense to link with -lgmp
-    SHLIBLIBS=''
+    LIBHOGWEED_LIBS=''
     ;;
 esac
 
-if test "x$enable_shared" = xyes ; then
-  SHLIBTARGET='$(SHLIBFORLINK)'
-  SHLIBINSTALL=install-shared
-else
-  SHLIBTARGET=''
-  SHLIBINSTALL=''
-fi
-
 if test "x$enable_pic" = xyes; then
   CCPIC_MAYBE="$CCPIC"
 else
@@ -307,15 +321,22 @@ AC_SUBST(ASM_MARK_NOEXEC_STACK)
 AC_SUBST(ASM_ALIGN_LOG)
 
 AC_SUBST(SHLIBCFLAGS)
-AC_SUBST(SHLIBMAJOR)
-AC_SUBST(SHLIBMINOR)
-AC_SUBST(SHLIBFORLINK)
-AC_SUBST(SHLIBSONAME)
-AC_SUBST(SHLIBFILE)
-AC_SUBST(SHLIBLINK)
-AC_SUBST(SHLIBTARGET)
-AC_SUBST(SHLIBINSTALL)
-AC_SUBST(SHLIBLIBS)
+
+AC_SUBST(LIBNETTLE_MAJOR)
+AC_SUBST(LIBNETTLE_MINOR)
+AC_SUBST(LIBNETTLE_FORLINK)
+AC_SUBST(LIBNETTLE_SONAME)
+AC_SUBST(LIBNETTLE_FILE)
+AC_SUBST(LIBNETTLE_LINK)
+AC_SUBST(LIBNETTLE_LIBS)
+
+AC_SUBST(HOGWEED_MAJOR)
+AC_SUBST(HOGWEED_MINOR)
+AC_SUBST(HOGWEED_FORLINK)
+AC_SUBST(HOGWEED_SONAME)
+AC_SUBST(HOGWEED_FILE)
+AC_SUBST(HOGWEED_LINK)
+AC_SUBST(HOGWEED_LIBS)
 
 AC_PATH_PROG(M4, m4, m4)
 
@@ -349,18 +370,23 @@ AC_CHECK_LIB(gmp, __gmpz_getlimbn,,
 Support for public key algorithms will be unavailable.])]
     enable_public_key=no)
 
+AH_TEMPLATE([WITH_HOGWEED], [Defined if public key features are enabled])
+
 if test "x$enable_public_key" = xyes ; then
-  AC_DEFINE(WITH_PUBLIC_KEY)
-  RSA_EXAMPLES='rsa-keygen$(EXEEXT) rsa-sign$(EXEEXT) rsa-verify$(EXEEXT) rsa-encrypt$(EXEEXT) rsa-decrypt$(EXEEXT)'
-  RSA_TOOLS='pkcs1-conv$(EXEEXT)'
+  AC_DEFINE(WITH_HOGWEED)
+  IF_HOGWEED=''
+else
+  IF_HOGWEED='#'
+fi
+
+if test "x$enable_shared" = xyes ; then
+  IF_SHARED=''
 else
-  RSA_EXAMPLES=''
-  RSA_TOOLS=''
+  IF_SHARED='#'
 fi
 
-AH_TEMPLATE([WITH_PUBLIC_KEY], [Define to enable public key features])
-AC_SUBST(RSA_EXAMPLES)
-AC_SUBST(RSA_TOOLS)
+AC_SUBST(IF_HOGWEED)
+AC_SUBST(IF_SHARED)
 
 # Add -R flags needed to run programs linked with gmp
 LSH_RPATH_FIX