Link libgnunetblockgroup to libgnunetblock
[oweals/gnunet.git] / src / util / crypto_random.c
index b477f8e2f354c0c30acde40f9958bc10899aad80..d5b5eb9ec83d96a4038b8ffc9023357779b32112 100644 (file)
@@ -1,5 +1,5 @@
 /*
-     This file is part of GNUnet.  (C) 2001-2014 Christian Grothoff
+     This file is part of GNUnet.  Copyright (C) 2001-2014 Christian Grothoff
      (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 
 */
 
  * @author Christian Grothoff
  */
 #include "platform.h"
-#include "gnunet_util_lib.h"
+#include "gnunet_crypto_lib.h"
 #include <gcrypt.h>
 
-#define LOG(kind,...) GNUNET_log_from (kind, "util", __VA_ARGS__)
+#define LOG(kind,...) GNUNET_log_from (kind, "util-crypto-random", __VA_ARGS__)
 
-#define LOG_STRERROR(kind,syscall) GNUNET_log_from_strerror (kind, "util", syscall)
+#define LOG_STRERROR(kind,syscall) GNUNET_log_from_strerror (kind, "util-crypto-random", syscall)
 
 
 /* TODO: ndurner, move this to plibc? */
@@ -145,7 +145,7 @@ GNUNET_CRYPTO_random_block (enum GNUNET_CRYPTO_Quality mode, void *buffer, size_
  * @return a random value in the interval [0,i[.
  */
 uint32_t
-GNUNET_CRYPTO_random_u32 (enum GNUNET_CRYPTO_Quality mode, 
+GNUNET_CRYPTO_random_u32 (enum GNUNET_CRYPTO_Quality mode,
                          uint32_t i)
 {
 #ifdef gcry_fast_random_poll
@@ -270,6 +270,9 @@ GNUNET_CRYPTO_random_u64 (enum GNUNET_CRYPTO_Quality mode, uint64_t max)
 }
 
 
+/**
+ * Initialize libgcrypt.
+ */
 void __attribute__ ((constructor))
 GNUNET_CRYPTO_random_init ()
 {
@@ -280,7 +283,7 @@ GNUNET_CRYPTO_random_init ()
     FPRINTF (stderr,
              _("libgcrypt has not the expected version (version %s is required).\n"),
              NEED_LIBGCRYPT_VERSION);
-    GNUNET_abort ();
+    GNUNET_assert (0);
   }
   if ((rc = gcry_control (GCRYCTL_DISABLE_SECMEM, 0)))
     FPRINTF (stderr,
@@ -302,11 +305,16 @@ GNUNET_CRYPTO_random_init ()
 }
 
 
+/**
+ * Nicely shut down libgcrypt.
+ */
 void __attribute__ ((destructor))
 GNUNET_CRYPTO_random_fini ()
 {
   gcry_set_progress_handler (NULL, NULL);
+#ifdef GCRYCTL_CLOSE_RANDOM_DEVICE
   (void) gcry_control (GCRYCTL_CLOSE_RANDOM_DEVICE, 0);
+#endif
 }