diff options
author | Werner Koch <[email protected]> | 2017-02-19 09:36:43 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2017-02-19 09:36:43 +0000 |
commit | 64fffd0ce2a4fd9cba152cf07497b585410cc652 (patch) | |
tree | c0fc74bc3ef44fc1db161e71c55486400a9ab1fa /dirmngr/dirmngr.h | |
parent | dirmngr: Add per-session verify callback to http.c (diff) | |
download | gnupg-64fffd0ce2a4fd9cba152cf07497b585410cc652.tar.gz gnupg-64fffd0ce2a4fd9cba152cf07497b585410cc652.zip |
dirmngr: First take on ntbtls cert verification.
* dirmngr/http-ntbtls.c: New.
* dirmngr/Makefile.am (dirmngr_SOURCES): Add file.
* dirmngr/dirmngr.h (SERVER_CONTROL_MAGIC): New.
(server_conrol_s): Add field 'magic',
* dirmngr/dirmngr.c (dirmngr_init_default_ctrl): Set MAGIC.
(dirmngr_deinit_default_ctrl): Set MAGIC to deadbeef.
* dirmngr/http.c (my_ntbtls_verify_cb): New.
(http_session_new) [HTTP_USE_NTBTLS]: Remove all CA setting code.
(send_request) [HTTP_USE_NTBTLS]: Set the verify callback. Do not call
the verify callback after the handshake.
* dirmngr/ks-engine-hkp.c (send_request): Pass
gnupg_http_tls_verify_cb to http_session_new.
* dirmngr/ks-engine-http.c (ks_http_fetch): Ditto.
* dirmngr/t-http.c (my_http_tls_verify_cb): New.
(main): Rename option --gnutls-debug to --tls-debug.
(main) [HTTP_USE_NTBTLS]: Create a session.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'dirmngr/dirmngr.h')
-rw-r--r-- | dirmngr/dirmngr.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/dirmngr/dirmngr.h b/dirmngr/dirmngr.h index 19d2303ca..57e3372a0 100644 --- a/dirmngr/dirmngr.h +++ b/dirmngr/dirmngr.h @@ -168,12 +168,19 @@ typedef struct cert_ref_s *cert_ref_t; /* Forward references; access only through server.c. */ struct server_local_s; +#if SIZEOF_UNSIGNED_LONG == 8 +# define SERVER_CONTROL_MAGIC 0x6469726d6e677220 +#else +# define SERVER_CONTROL_MAGIC 0x6469726d +#endif + /* Connection control structure. */ struct server_control_s { - int refcount; /* Count additional references to this object. */ - int no_server; /* We are not running under server control. */ - int status_fd; /* Only for non-server mode. */ + unsigned long magic;/* Always has SERVER_CONTROL_MAGIC. */ + int refcount; /* Count additional references to this object. */ + int no_server; /* We are not running under server control. */ + int status_fd; /* Only for non-server mode. */ struct server_local_s *server_local; int force_crl_refresh; /* Always load a fresh CRL. */ @@ -213,6 +220,15 @@ gpg_error_t dirmngr_status (ctrl_t ctrl, const char *keyword, ...); gpg_error_t dirmngr_status_help (ctrl_t ctrl, const char *text); gpg_error_t dirmngr_tick (ctrl_t ctrl); +/*-- http-ntbtls.c --*/ +/* Note that we don't use a callback for gnutls. */ + +gpg_error_t gnupg_http_tls_verify_cb (void *opaque, + http_t http, + http_session_t session, + unsigned int flags, + void *tls_context); + /*-- loadswdb.c --*/ gpg_error_t dirmngr_load_swdb (ctrl_t ctrl, int force); |