From bbbd0db34b4e387f8dc089fb7d69fdcf2ed91a01 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 17 Jul 2017 14:08:00 +0200 Subject: [PATCH] agent: New GETINFO sub-command jent_active. * agent/command.c (cmd_getinfo): Implement it for gcrypt >= 1.8. -- For the de-vs compliance of gpg we need to check whether the Jitter RNG is used on Windows. This change allows to test this for gpg-agent. Signed-off-by: Werner Koch --- agent/command.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/agent/command.c b/agent/command.c index d3708217c..e387db549 100644 --- a/agent/command.c +++ b/agent/command.c @@ -2852,6 +2852,7 @@ static const char hlp_getinfo[] = " cmd_has_option\n" " - Returns OK if the command CMD implements the option OPT.\n" " connections - Return number of active connections.\n" + " jent_active - Returns OK if Libgcrypt's JENT is active.\n" " restricted - Returns OK if the connection is in restricted mode.\n"; static gpg_error_t cmd_getinfo (assuan_context_t ctx, char *line) @@ -2992,6 +2993,24 @@ cmd_getinfo (assuan_context_t ctx, char *line) get_agent_active_connection_count ()); rc = assuan_send_data (ctx, numbuf, strlen (numbuf)); } + else if (!strcmp (line, "jent_active")) + { +#if GCRYPT_VERSION_NUMBER >= 0x010800 + char *buf; + char *fields[5]; + + buf = gcry_get_config (0, "rng-type"); + if (buf + && split_fields_colon (buf, fields, DIM (fields)) >= 5 + && atoi (fields[4]) > 0) + rc = 0; + else + rc = gpg_error (GPG_ERR_FALSE); + gcry_free (buf); +#else + rc = gpg_error (GPG_ERR_FALSE); +#endif + } else rc = set_error (GPG_ERR_ASS_PARAMETER, "unknown value for WHAT"); return rc;