mirror of
https://github.com/samba-team/samba.git
synced 2025-01-22 22:04:08 +03:00
fc92025ecb
That was a long way, but now we're cli_credentials/gensec only :-) Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
137 lines
3.1 KiB
Plaintext
137 lines
3.1 KiB
Plaintext
#include "idl_types.h"
|
|
#include "config.h"
|
|
|
|
/*
|
|
ads interface definition
|
|
*/
|
|
|
|
import "nbt.idl";
|
|
|
|
cpp_quote("#include <system/network.h>")
|
|
|
|
[
|
|
pointer_default(unique)
|
|
]
|
|
interface ads
|
|
{
|
|
typedef [public] enum {
|
|
ADS_SASLWRAP_TYPE_PLAIN = 1,
|
|
ADS_SASLWRAP_TYPE_SIGN = 2,
|
|
ADS_SASLWRAP_TYPE_SEAL = 4
|
|
} ads_saslwrap_type;
|
|
|
|
/* ads auth control flags */
|
|
typedef [public] bitmap {
|
|
ADS_AUTH_NO_BIND = 0x0002,
|
|
ADS_AUTH_ANON_BIND = 0x0004,
|
|
ADS_AUTH_SASL_SIGN = 0x0020,
|
|
ADS_AUTH_SASL_SEAL = 0x0040,
|
|
ADS_AUTH_SASL_FORCE = 0x0080,
|
|
ADS_AUTH_SASL_STARTTLS = 0x0200,
|
|
ADS_AUTH_SASL_LDAPS = 0x0400,
|
|
ADS_AUTH_GENERATE_KRB5_CONFIG = 0x0800
|
|
} ads_auth_flags;
|
|
|
|
const int ADS_SASL_WRAPPING_IN_MAX_WRAPPED = 0x0FFFFFFF;
|
|
const int ADS_SASL_WRAPPING_OUT_MAX_WRAPPED = 0x00A00000;
|
|
|
|
typedef [nopull,nopush] struct {
|
|
string realm;
|
|
string workgroup;
|
|
string ldap_server;
|
|
boolean8 gc; /* Is this a global catalog server? */
|
|
boolean8 no_fallback; /* Bail if the ldap_server is not available */
|
|
} ads_server;
|
|
|
|
typedef [nopull,nopush] struct {
|
|
string kdc_server;
|
|
ads_auth_flags flags;
|
|
NTTIME expire_time;
|
|
[ignore] struct ads_reconnect_state *reconnect_state;
|
|
} ads_auth;
|
|
|
|
typedef [nopull,nopush] struct {
|
|
nbt_server_type flags; /* cldap flags identifying the services. */
|
|
string workgroup;
|
|
string realm;
|
|
string bind_path;
|
|
string ldap_server_name;
|
|
string server_site_name;
|
|
string client_site_name;
|
|
time_t current_time;
|
|
int time_offset;
|
|
string schema_path;
|
|
string config_path;
|
|
int ldap_page_size;
|
|
} ads_config;
|
|
|
|
typedef [nopull,nopush] struct {
|
|
uint32 ofs;
|
|
uint32 needed;
|
|
uint32 left;
|
|
uint32 max_wrapped;
|
|
uint32 min_wrapped;
|
|
uint32 size;
|
|
uint8 *buf;
|
|
} ads_ldap_buf_in;
|
|
|
|
typedef [nopull,nopush] struct {
|
|
uint32 ofs;
|
|
uint32 left;
|
|
uint32 max_unwrapped;
|
|
uint32 sig_size;
|
|
uint32 size;
|
|
uint8 *buf;
|
|
} ads_ldap_buf_out;
|
|
|
|
typedef [nopull,nopush] struct {
|
|
ads_saslwrap_type wrap_type;
|
|
[ignore] ads_saslwrap_ops *wrap_ops;
|
|
#ifdef HAVE_ADS
|
|
[ignore] struct sockbuf_io_desc *sbiod; /* lowlevel state for LDAP wrapping */
|
|
#endif /* HAVE_ADS */
|
|
[ignore] TALLOC_CTX *mem_ctx;
|
|
[ignore] void *wrap_private_data;
|
|
ads_ldap_buf_in in;
|
|
ads_ldap_buf_out out;
|
|
} ads_saslwrap;
|
|
|
|
typedef [nopull,nopush] struct {
|
|
[ignore] TALLOC_CTX *mem_ctx;
|
|
[ignore] timeval endtime;
|
|
#ifdef HAVE_ADS
|
|
[ignore] struct sockbuf_io_desc *sbiod; /* lowlevel state for LDAP wrapping */
|
|
[ignore] struct tstream_tls_params *tls_params;
|
|
[ignore] struct tstream_tls_sync *tls_sync;
|
|
#endif /* HAVE_ADS */
|
|
} ads_tlswrap;
|
|
|
|
typedef [nopull,nopush] struct {
|
|
[ignore] ldap *ld;
|
|
sockaddr_storage ss; /* the ip of the active connection, if any */
|
|
time_t last_attempt; /* last attempt to reconnect, monotonic clock */
|
|
int port;
|
|
} ads_ldap;
|
|
|
|
typedef [public,nopull,nopush] struct {
|
|
/* info needed to find the server */
|
|
ads_server server;
|
|
|
|
/* info needed to authenticate */
|
|
ads_auth auth;
|
|
|
|
/* info derived from the servers config */
|
|
ads_config config;
|
|
|
|
#ifdef HAVE_ADS
|
|
ads_saslwrap ldap_wrap_data;
|
|
ads_tlswrap ldap_tls_data;
|
|
/* info about the current LDAP connection */
|
|
ads_ldap ldap;
|
|
#endif /* HAVE_ADS */
|
|
|
|
} ads_struct;
|
|
}
|
|
|
|
|