diff options
author | Werner Koch <[email protected]> | 2017-02-18 15:09:16 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2017-02-18 15:39:02 +0000 |
commit | a74902cccde539ee2bd216caec0da6eb54b67c1b (patch) | |
tree | daa1f4d3c39dd1ce5a26b1349e593ca893679520 /dirmngr/http.h | |
parent | dirmngr: Strip the default https port from the Host: header. (diff) | |
download | gnupg-a74902cccde539ee2bd216caec0da6eb54b67c1b.tar.gz gnupg-a74902cccde539ee2bd216caec0da6eb54b67c1b.zip |
dirmngr: Add per-session verify callback to http.c
* dirmngr/http.h (http_verify_cb_t): New type.
* dirmngr/http.c (http_session_s): Add fields flags, verify_cb, and
verify_cb_value.
(http_session_new): Remove arg tls_priority. Add args verify_cb and
verify-cb_value. Store them in the session object.
(send_request): Use per-session verify callback.
(http_verify_server_credentials) [HTTP_USE_NTBTLS]: Return
GPG_ERR_NOT_IMPLEMENTED.
* dirmngr/ks-engine-hkp.c (send_request): Adjust for changed
http_session_new.
* dirmngr/ks-engine-http.c (ks_http_fetch): Ditto.
* dirmngr/t-http.c (main): Ditto.
* dirmngr/server.c (do_get_cert_local): Replace xmalloc by malloc.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | dirmngr/http.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/dirmngr/http.h b/dirmngr/http.h index 0b581fe3c..98ac4a31a 100644 --- a/dirmngr/http.h +++ b/dirmngr/http.h @@ -97,6 +97,13 @@ typedef struct http_session_s *http_session_t; struct http_context_s; typedef struct http_context_s *http_t; +/* A TLS verify callback function. */ +typedef gpg_error_t (*http_verify_cb_t) (void *opaque, + http_t http, + http_session_t session, + unsigned int flags, + void *tls_context); + void http_set_verbose (int verbose, int debug); void http_register_tls_callback (gpg_error_t (*cb)(http_t,http_session_t,int)); @@ -105,9 +112,10 @@ void http_register_netactivity_cb (void (*cb)(void)); gpg_error_t http_session_new (http_session_t *r_session, - const char *tls_priority, const char *intended_hostname, - unsigned int flags); + unsigned int flags, + http_verify_cb_t cb, + void *cb_value); http_session_t http_session_ref (http_session_t sess); void http_session_release (http_session_t sess); |