* gcrypt.h (gcry_random_add_bytes): Add QUALITY argument.
authorWerner Koch <wk@gnupg.org>
Tue, 21 Jan 2003 13:52:50 +0000 (13:52 +0000)
committerWerner Koch <wk@gnupg.org>
Tue, 21 Jan 2003 13:52:50 +0000 (13:52 +0000)
* random.c (gcry_random_add_bytes): Add QUALITY argument, let
function return an error code and disable its core for now.

cipher/ChangeLog
cipher/random.c
src/ChangeLog
src/gcrypt.h

index e799281..dac938b 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-21  Werner Koch  <wk@gnupg.org>
+
+       * random.c (gcry_random_add_bytes): Add QUALITY argument, let
+       function return an error code and disable its core for now.
+
 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
 
        * random.c (gcry_random_add_bytes): New. Function to add external
index 02414e9..923b338 100644 (file)
@@ -1,5 +1,5 @@
 /* random.c  - random number generator
- * Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
  *
  * This file is part of Libgcrypt.
  *
@@ -264,12 +264,24 @@ get_random_bytes( size_t nbytes, int level, int secure )
 }
 
 
-void
-gcry_random_add_bytes( const void * buf, size_t buflen )
+/* Add BUFLEN bytes from BUF to the internal random pool.  QUALITY
+   should be in the range of 0..100 to indicate the goodness of the
+   entropy added, or -1 for goodness not known. 
+
+   Note, that this fucntion currently does nothing.
+*/
+int 
+gcry_random_add_bytes (const void * buf, size_t buflen, int quality)
 {
-    if( !buf || !buflen )
-        return; /* do nothing */
-    add_randomness( buf, buflen, 1 );
+  if (!buf || quality < -1 || quality > 100)
+    return GCRYERR_INV_ARG;
+  if (!buflen)
+    return 0; /* Shortcut this dummy case. */
+  /* Before we actuall enbale this code, we need to lock the pool,
+     have a look at the quality and find a way to add them without
+     disturbing the real entropy (we have estimated). */
+  /*add_randomness( buf, buflen, 1 );*/
+  return 0;
 }   
     
 
index 09b3d26..55a001c 100644 (file)
@@ -1,3 +1,7 @@
+2003-01-21  Werner Koch  <wk@gnupg.org>
+
+       * gcrypt.h (gcry_random_add_bytes): Add QUALITY argument.
+
 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
 
        * gcrypt.h (gcry_random_add_bytes): New.
index 9a0b780..ff81916 100644 (file)
@@ -1,5 +1,5 @@
 /* gcrypt.h -  GNU cryptographic library interface
- * Copyright (C) 1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+ * Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
  *
  * This file is part of Libgcrypt.
  *
@@ -856,8 +856,10 @@ enum gcry_random_level
 void gcry_randomize (unsigned char *buffer, size_t length,
                     enum gcry_random_level level);
 
-/* Add the external random from BUFFER with LENGTH bytes into the pool. */
-void gcry_random_add_bytes (const void * buffer, size_t length);
+/* Add the external random from BUFFER with LENGTH bytes into the
+   pool. QUALITY should either be -1 for unknown or in the range of 0
+   to 100 */
+int gcry_random_add_bytes (const void *buffer, size_t length, int quality);
 
 /* Return NBYTES of allocated random using a random numbers of quality
    LEVEL. */