From 625aeb65b0e75192a414fdca5383cb67c996adee Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 20 Mar 2023 19:24:49 +0100 Subject: dirmngr: New command AD_QUERY. * dirmngr/dirmngr.h: Include name-value.h (struct server_control_s): Add rootdse and rootdse_tried. * dirmngr/dirmngr.c (dirmngr_deinit_default_ctrl): Release them. * dirmngr/ks-engine.h (KS_GET_FLAG_ROOTDSE): Add two new flags. * dirmngr/ks-engine-ldap.c: Include ks-action.h (SERVERINFO_GENERIC): New. (struct ks_engine_ldap_local_s): Add scope. (ks_ldap_new_state): Set a default scope. (ks_ldap_clear_state): Ditto. (my_ldap_connect): Add flag generic. (return_all_attributes): New. (fetch_rootdse): New. (basedn_from_rootdse): New. (ks_ldap_get): Move some code out to ... (ks_ldap_prepare_my_state): New. (ks_ldap_query): New. * dirmngr/ks-action.c (ks_action_parse_uri): Factored out from server.c (ks_action_query): New. * dirmngr/server.c (make_keyserver_item): Factored most code out to ks_action_parse_uri. (cmd_ad_query): New. -- This command allows to query the Windows Active directory. --- dirmngr/dirmngr.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'dirmngr/dirmngr.h') diff --git a/dirmngr/dirmngr.h b/dirmngr/dirmngr.h index bcb364e8d..1128e118b 100644 --- a/dirmngr/dirmngr.h +++ b/dirmngr/dirmngr.h @@ -36,6 +36,7 @@ #include "../common/sysutils.h" /* (gnupg_fd_t) */ #include "../common/asshelp.h" /* (assuan_context_t) */ #include "../common/i18n.h" +#include "../common/name-value.h" #include "dirmngr-status.h" #include "http.h" /* (parsed_uri_t) */ @@ -220,9 +221,12 @@ struct server_control_s int audit_events; /* Send audit events to client. */ char *http_proxy; /* The used http_proxy or NULL. */ + nvc_t rootdse; /* Container wit the rootDSE properties. */ + unsigned int timeout; /* Timeout for connect calls in ms. */ unsigned int http_no_crl:1; /* Do not check CRLs for https. */ + unsigned int rootdse_tried:1;/* Already tried to get the rootDSE. */ }; @@ -241,6 +245,8 @@ void ks_hkp_reload (void); void ks_hkp_init (void); /*-- server.c --*/ +void release_uri_item_list (uri_item_t list); + ldap_server_t get_ldapservers_from_ctrl (ctrl_t ctrl); ksba_cert_t get_cert_local (ctrl_t ctrl, const char *issuer); ksba_cert_t get_issuing_cert_local (ctrl_t ctrl, const char *issuer); -- cgit v1.2.3