summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMoritz Schulte <mo@g10code.com>2006-04-22 16:09:23 +0000
committerMoritz Schulte <mo@g10code.com>2006-04-22 16:09:23 +0000
commit9771a836746cc94699b4eaee6c68ba07caee3472 (patch)
treee0cb694d3d1799ad1d796ed76c83b284538e3b52 /src
parenteaee2dd54a87f0adad6f47244cbf56aa0b04cd23 (diff)
downloadlibgcrypt-9771a836746cc94699b4eaee6c68ba07caee3472.tar.gz
cipher/ChangeLog:
2006-04-22 Moritz Schulte <moritz@g10code.com> * random-daemon.c (_gcry_daemon_initialize_basics): New argument: SOCKETNAME. Passing on to connect_to_socket() if non-NULL. (connect_to_socket, writen, readn, call_daemon): New functions. (_gcry_daemon_randomize, _gcry_daemon_get_random_bytes) (_gcry_daemon_create_nonce): Call call_daemon(). (RANDOM_DAEMON_SOCKET): New symbol. (daemon_socket): New static variable. * random.h (_gcry_daemon_initialize_basics): New parameter: SOCKETNAME. (_gcry_set_random_daemon_socket): New declaration. * random.c (initialize_basics): Pass DAEMON_SOCKET_NAME to _gcry_daemon_initialize_basics. (_gcry_set_random_daemon_socket): New function, setting DAEMON_SOCKET_NAME. src/ChangeLog: 2006-04-22 Moritz Schulte <moritz@g10code.com> * gcrypt.h (enum gcry_ctl_cmds): New commands: GCRYCTL_SET_RANDOM_DAEMON_SOCKET, GCRYCTL_USE_RANDOM_DAEMON. * global.c (gcry_control): Handle new commands, calling _gcry_set_random_daemon_socket() and _gcry_use_random_daemon().
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog7
-rw-r--r--src/gcrypt.h4
-rw-r--r--src/global.c11
3 files changed, 21 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index a2fb5cd3..f7c638cb 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2006-04-22 Moritz Schulte <moritz@g10code.com>
+
+ * gcrypt.h (enum gcry_ctl_cmds): New commands:
+ GCRYCTL_SET_RANDOM_DAEMON_SOCKET, GCRYCTL_USE_RANDOM_DAEMON. *
+ global.c (gcry_control): Handle new commands, calling
+ _gcry_set_random_daemon_socket() and _gcry_use_random_daemon().
+
2006-04-01 Moritz Schulte <moritz@g10code.com>
* gcrypt.h (gcry_ac_eme_pkcs_v1_5): Removed members: key, handle;
diff --git a/src/gcrypt.h b/src/gcrypt.h
index 30368a72..ba385623 100644
--- a/src/gcrypt.h
+++ b/src/gcrypt.h
@@ -327,7 +327,9 @@ enum gcry_ctl_cmds
GCRYCTL_SET_RANDOM_SEED_FILE = 45,
GCRYCTL_UPDATE_RANDOM_SEED_FILE = 46,
GCRYCTL_SET_THREAD_CBS = 47,
- GCRYCTL_FAST_POLL = 48
+ GCRYCTL_FAST_POLL = 48,
+ GCRYCTL_SET_RANDOM_DAEMON_SOCKET = 49,
+ GCRYCTL_USE_RANDOM_DAEMON = 50
};
/* Perform various operations defined by CMD. */
diff --git a/src/global.c b/src/global.c
index 8dd2657c..399fc769 100644
--- a/src/global.c
+++ b/src/global.c
@@ -334,6 +334,17 @@ gcry_control (enum gcry_ctl_cmds cmd, ...)
_gcry_fast_random_poll ();
break;
+ case GCRYCTL_SET_RANDOM_DAEMON_SOCKET:
+ _gcry_set_random_daemon_socket (va_arg (arg_ptr, const char *));
+ break;
+
+ case GCRYCTL_USE_RANDOM_DAEMON:
+ /* We need to do make sure that the random pool is really
+ initialized so that the poll fucntion is not a NOP. */
+ _gcry_random_initialize (1);
+ _gcry_use_random_daemon (!! va_arg (arg_ptr, int));
+ break;
+
default:
err = GPG_ERR_INV_OP;
}