[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Tue May 14 11:23:01 UTC 2024
The branch, master has been updated
via 1ca6fb563b0 lib/replace: make sure krb5_cc_default[_name]() is no longer used directly
via afcd53b8d09 auth/credentials_krb5: let cli_credentials_set_ccache() use smb_force_krb5_cc_default()
via a5d46f69d12 auth/credentials_krb5: use system/{gssapi,kerberos}.h
via 845a2aae6f0 smbspool: let kerberos_ccache_is_valid() use smb_force_krb5_cc_default_name()
via 4514fb5f439 smbspool_krb5_wrapper: let kerberos_get_default_ccache() use smb_force_krb5_cc_default_name()
via a8da9de9f4a smbspool_krb5_wrapper: remove unused includes
via eb6dc35a704 krb5_wrap: let smb_krb5_renew_ticket() use smb_force_krb5_cc_default_name()
via f850bcfc0b4 krb5_wrap: add smb_force_krb5_cc_default[_name]() wrappers
via d49de777104 s3:libads: let kerberos_kinit_password_ext() require an explicit krb5 ccache
via 70f9e3a0567 krb5_wrap: let ads_krb5_cli_get_ticket() require an explicit krb5 ccache
via fc92025ecb2 s3:libads: finally remove unused ads_connect[_user_creds]() and related code
via 25806314dae s3:net: finally remove net_context->opt_{user_specified,user_name,password}
via a1ab1c8620c s3:net: remove unused net_context->smb_encrypt
via 9620d2ecc18 s3:net: remove unused net_context->opt_kerberos
via 2de585a9787 s3:include: remove unused krb5_env.h
via eb9ad5cc890 s3:net_ads: remove unused use_in_memory_ccache()
via e76fe56fdf6 s3:net_ads: make use of ads_connect_{cldap_only,creds}() in ads_startup_int()
via d59d957caba s3:libads: let ads_krb5_set_password() require an explicit krb5 ccache to operate on
via 432273dd3ec s3:libads: kerberos_set_password() don't need to kinit before ads_krb5_chg_password()
via 125db2ed815 s3:libads: remove unused kdc_host and time_offset arguments to kerberos_set_password()
via b641b35b028 s3:libads: remove unused kdc_host and time_offset arguments to ads_krb5_chg_password()
via 3141423feb3 s3:libads: remove krb5_set_real_time() from ads_krb5_set_password()
via c85c084d69e s3:libads: remove unused kdc_host argument of ads_krb5_set_password()
via 5f32f14ef58 s3:net_ads: require kerberos if we use ads_krb5_set_password() in ads_user_add()
via 1eeeb76e6c5 s3:net_ads: use ADS_SASL_SEAL by default, so that we always get encryption
via 612af29cef1 s3:net_ads: use cli_credentials_get_principal() in order to call kerberos functions
via 55c9a6c0e3a s3:net: remove useless net_prompt_pass() wrapper
via d9082129f21 s3:net_rpc: make use of !c->explicit_credentials for NET_FLAGS_ANONYMOUS
via e690666fd10 s3:net: make use of c->explicit_credentials in order to check for valid credentials
via be1051f3792 s3:net: add net_context->explicit_credentials to check if credentials were passed
via a9beae36f0a s3:net: correctly implement --use-ccache as legacy for --use-winbind-ccache for 'net'
via 579195769d6 s3:net_offlinejoin: we don't need to call libnetapi_set_use_kerberos() as we already passed cli_credentials
via f4f31236c4a s3:libnet_join: pass down cli_credentials *admin_credentials to libnet_{Join,Unjoin}Ctx()
via c0edd3406b9 s3:lib/netapi: make use of ads_simple_creds/libnetapi_get_creds in NetGetJoinableOUs_l
via 0470cc385d9 s3:lib/netapi: add libnetapi_get_creds()
via bd53e20764b libgpo/pygpo: make use of ads_connect_{creds,machine}()
via 87e7a9488a0 s3:printing: make use of ads_connect_machine()
via f9496bfdf4e s3:libads: add ads_connect_machine() helper
via 353abcb4d3e s3:libads: add ads_simple_creds() helper
via c36b0442244 s3:libads: make use of ads_connect_simple_anon() in ldap.c where possible
via 7bfbea4c3c8 s3:libads: add ads_connect_simple_anon() helper
via c95a2785e20 lib/addns: rewrite signed dns update code to use gensec instead of plain gssapi
via 5807689f968 s3:utils: let net_update_dns_internal() set status before goto done in all cases
via 28af0829263 s3:winbindd: make use of winbindd_get_trust_credentials() in idmap_ad.c
via ed75331f525 s3:winbindd: make use of winbindd_get_trust_credentials() in _winbind_LogonControl_TC_VERIFY()
via 16bbb407fa5 s3:winbindd: make use of samba_sockaddr to avoid compiler warnings
via f903d80769b s3:winbindd: use winbindd_get_trust_credentials()/ads_connect_creds() in winbindd_ads.c
via 8166642e1bd s3:winbindd: make winbindd_get_trust_credentials() public
via 81a6c54fddc s3:libads: add ads_set_reconnect_fn() and only reconnect if we can get creds
via 31e4614ee36 s3:libads: add ads_connect_creds() helper
via 76e0d348ddd s3:libads: fix compiler warning in ads_mod_ber()
via bac243442a6 s3:libads: move ads->auth.time_offset to ads->config.time_offset
via ea97abd545e s3:libads: we only need to gensec_expire_time()...
via ce1ad21ce63 s3:libads: remove unused ads->auth.renewable
via fcd47a49660 s3:winbindd: remove useless 'renewable' argument to ads_cached_connection_connect()
via bb8b7be74a7 s3:libads: let ads_sasl_spnego_bind() really use spnego to negotiate krb5/ntlmssp
via 1474f9c5de3 testprogs/blackbox: add better testnames in test_weak_disable_ntlmssp_ldap.sh
via cff7656e665 s3:net_ads: make use of ads_connect_cldap_only() and ADS_AUTH_GENERATE_KRB5_CONFIG in net_ads_password()
via f024063aec9 s3:winbindd: make use of ads_connect_cldap_only() in dcip_check_name_ads()
via e8250f16240 s3:net_ads: make use of ads_connect_cldap_only() in net_ads_check_int()
via fdd34b57c41 s3:libsmb: make use of ads_connect_cldap_only()
via f34e64baf6c s3:libads: add ads_connect_cldap_only() helper
via 36748002f01 s3:libads: also avoid ADS_AUTH_GENERATE_KRB5_CONFIG for ADS_AUTH_ANON_BIND
via 9ea1ea16290 s3:libads: add ADS_AUTH_GENERATE_KRB5_CONFIG to generate a custom krb5.conf
via b3110ec049b s3:libads: split out ads_connect_internal() and call it with ads_legacy_creds()
via be771670eb3 s3:libads: let ads_sasl_spnego_bind() use cli_credentials_get_unparsed_name()
via 4d42574c542 s3:libads: let ads_sasl_spnego_bind() reset krb5_state at the end
via f7ab92ea7e0 s3:libads: let ads_sasl_spnego_bind() use cli_credentials_get_kerberos_state()
via b98f9a341f4 s3:libads: split out ads_legacy_creds()
via 6f33e46c19f s3:libads: remove unused LIBADS_CCACHE_NAME define
via a70c62a78e4 s3:libads: make use of talloc_stackframe() in ads_setup_tls_wrapping()
via d26e4c6e272 s3:libsmb: remove unused cli_session_creds_prepare_krb5()
via ef205f6b52e s3:gse: get an explicit ccache_name from creds and kinit if required
via 98ee5ca7e83 s3:gse: Pass down the mech to gse_context_init()
via bc2a2399e52 s3:gse: Implement gensec_gse_security_by_oid()
via 2ec3e59f58b s3:gse: Use smb_gss_mech_import_cred() in gse_init_server()
via ca90f213a27 lib:krb5_wrap: Implement smb_gss_mech_import_cred()
via 2fd2d28b8fe s3:libsmb: fix lpcfg_gensec_settings() no memory check in auth_generic_client_prepare()
via fb7e19826af s3:libsmb: explicitly use the default krb5 ccache in cli_session_creds_init() without a password
via 2dc76cc84c1 s3:ntlm_auth: explicitly include default krb5 ccache if no explicit username/password are given
via 52715b461a8 tests/ntlm_auth: Do not set a client_password
via a6b94a690b5 tests/ntlm_auth_krb5: don't test that a krb5ccache work with an explicit username
via 3ea605d8af2 blackbox/test_kinit.sh: verify that --use-krb5-ccache= works without KRB5CCNAME
via e47f9415b77 s3:libads: don't allow ads_kdestroy(NULL) anymore
via 4959f932279 s3:winbindd: don't use ads_kdestroy(NULL) in winbindd_raw_kerberos_login()
from 712ffbffc03 s3:libsmb: allow store_cldap_reply() to work with a ipv6 response
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 1ca6fb563b0bf25b36a2961754d94cc54d3d9292
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
lib/replace: make sure krb5_cc_default[_name]() is no longer used directly
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
Autobuild-Date(master): Tue May 14 11:22:28 UTC 2024 on atb-devel-224
commit afcd53b8d09c8cdba0e23980567920e399ff62f5
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
auth/credentials_krb5: let cli_credentials_set_ccache() use smb_force_krb5_cc_default()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit a5d46f69d12dde94caac5a7472157205081f6e0e
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
auth/credentials_krb5: use system/{gssapi,kerberos}.h
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 845a2aae6f0d9efc1913e85e91f8f52e92e6b211
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
smbspool: let kerberos_ccache_is_valid() use smb_force_krb5_cc_default_name()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 4514fb5f43988f080e55a3a9278dfce75876d475
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
smbspool_krb5_wrapper: let kerberos_get_default_ccache() use smb_force_krb5_cc_default_name()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit a8da9de9f4ac37b6bb9fb95aa8b2767251188cbb
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
smbspool_krb5_wrapper: remove unused includes
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit eb6dc35a704dec309acd45af8781402b875feeaa
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
krb5_wrap: let smb_krb5_renew_ticket() use smb_force_krb5_cc_default_name()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit f850bcfc0b42302e39b35faa64ad9743b736745e
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
krb5_wrap: add smb_force_krb5_cc_default[_name]() wrappers
If we touch the global krb5_ccache we want to make that explicit,
so calling krb5_cc_default[_name] will result in an error during
the next patches.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit d49de777104fb491f8cca837791dea7bed1c572b
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:46:45 2024 +0100
s3:libads: let kerberos_kinit_password_ext() require an explicit krb5 ccache
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 70f9e3a0567af3c4f1a62eb2df56c6bcc1132599
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:46:45 2024 +0100
krb5_wrap: let ads_krb5_cli_get_ticket() require an explicit krb5 ccache
Reviewed-by: Andreas Schneider <asn at samba.org>
Signed-off-by: Stefan Metzmacher <metze at samba.org>
commit fc92025ecb2c43305bde43f0c2a9856abed654c4
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 17:55:14 2024 +0100
s3:libads: finally remove unused ads_connect[_user_creds]() and related code
That was a long way, but now we're cli_credentials/gensec only :-)
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 25806314daef8d2958b63bc429c9973c2755a865
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 14:56:45 2024 +0100
s3:net: finally remove net_context->opt_{user_specified,user_name,password}
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit a1ab1c8620c907a6cced8d1d1cd9686746b59717
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 13:50:39 2024 +0100
s3:net: remove unused net_context->smb_encrypt
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 9620d2ecc188799798fbef31b6934b861f3bbe33
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 13:44:53 2024 +0100
s3:net: remove unused net_context->opt_kerberos
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 2de585a97870306ec7ce4e1effabd2d47ed07ec7
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 13:27:06 2024 +0100
s3:include: remove unused krb5_env.h
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit eb9ad5cc8902678b399a777138f3b92c4d949874
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 12:08:00 2024 +0100
s3:net_ads: remove unused use_in_memory_ccache()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit e76fe56fdf649b370fb4d280ca64f66bc36b2b07
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Feb 29 14:07:05 2024 +0100
s3:net_ads: make use of ads_connect_{cldap_only,creds}() in ads_startup_int()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit d59d957caba354d771445661fc297995880cb47a
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:45:43 2024 +0100
s3:libads: let ads_krb5_set_password() require an explicit krb5 ccache to operate on
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 432273dd3ec94ecc695002ab51f99f38048c3902
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:45:43 2024 +0100
s3:libads: kerberos_set_password() don't need to kinit before ads_krb5_chg_password()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 125db2ed8158ced630c02860a40a1199c74a0381
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:45:43 2024 +0100
s3:libads: remove unused kdc_host and time_offset arguments to kerberos_set_password()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit b641b35b028e6986dbff6667fd5198393f50aef2
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:45:43 2024 +0100
s3:libads: remove unused kdc_host and time_offset arguments to ads_krb5_chg_password()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 3141423feb3d027da29ba0c84c6ed90ff48db961
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:45:43 2024 +0100
s3:libads: remove krb5_set_real_time() from ads_krb5_set_password()
Callers typically only pass in 0 anyway.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit c85c084d69e4d5048b6d9a79d2b806bd4f022d73
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:45:43 2024 +0100
s3:libads: remove unused kdc_host argument of ads_krb5_set_password()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 5f32f14ef58df1e43df87acb952a367cbab9122d
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:45:43 2024 +0100
s3:net_ads: require kerberos if we use ads_krb5_set_password() in ads_user_add()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 1eeeb76e6c5e76f69ed90274721de8fe94014a02
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 11 17:45:43 2024 +0100
s3:net_ads: use ADS_SASL_SEAL by default, so that we always get encryption
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 612af29cef19b6b3722aa94adff34542ac519236
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 14:55:09 2024 +0100
s3:net_ads: use cli_credentials_get_principal() in order to call kerberos functions
This is better than the value from cli_credentials_get_username()...
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 55c9a6c0e3a403ac38f018fcf3b003e39c3c79f3
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 14:54:18 2024 +0100
s3:net: remove useless net_prompt_pass() wrapper
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit d9082129f21e5b6f7cc5c2011336a952da84441e
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 13:43:13 2024 +0100
s3:net_rpc: make use of !c->explicit_credentials for NET_FLAGS_ANONYMOUS
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit e690666fd108667595caf6f062b6665fb8aa604d
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 14:47:06 2024 +0100
s3:net: make use of c->explicit_credentials in order to check for valid credentials
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit be1051f3792689209496c8039658b02b6ebdf53d
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 14:40:10 2024 +0100
s3:net: add net_context->explicit_credentials to check if credentials were passed
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit a9beae36f0a41cd912a8238f9e3563638cbadc9d
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 13:50:39 2024 +0100
s3:net: correctly implement --use-ccache as legacy for --use-winbind-ccache for 'net'
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 579195769d6d8a39921b6622bc76ac1be0418d46
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 13:41:51 2024 +0100
s3:net_offlinejoin: we don't need to call libnetapi_set_use_kerberos() as we already passed cli_credentials
c->opt_kerberos is derived from c->creds...
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit f4f31236c4aac21e4e6e96fd507ea3ba1b6d3fef
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 28 17:59:00 2022 +0200
s3:libnet_join: pass down cli_credentials *admin_credentials to libnet_{Join,Unjoin}Ctx()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit c0edd3406b9a0db65a77dd17ca9ab6ad28c09728
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 17:40:48 2024 +0100
s3:lib/netapi: make use of ads_simple_creds/libnetapi_get_creds in NetGetJoinableOUs_l
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 0470cc385d935d6898afd6cf993fef3b9881f8ac
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 17:38:25 2024 +0100
s3:lib/netapi: add libnetapi_get_creds()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit bd53e20764bc87cc4c3681106927a3629c3dc257
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 17:21:02 2024 +0100
libgpo/pygpo: make use of ads_connect_{creds,machine}()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 87e7a9488a0a132847b25a40ac1fa7752b248502
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 28 18:58:27 2022 +0200
s3:printing: make use of ads_connect_machine()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit f9496bfdf4e62fb1707e8fc6520439757978da6e
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 28 18:53:03 2022 +0200
s3:libads: add ads_connect_machine() helper
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 353abcb4d3eb7952997abfa6f8196c673ab7ac9b
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 28 17:51:57 2022 +0200
s3:libads: add ads_simple_creds() helper
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit c36b044224494b0f4ea59cf146073ba42cc10767
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 28 18:43:00 2022 +0200
s3:libads: make use of ads_connect_simple_anon() in ldap.c where possible
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 7bfbea4c3c8f71dceedcc017153dcf31ab223b59
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 28 18:38:17 2022 +0200
s3:libads: add ads_connect_simple_anon() helper
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit c95a2785e209cbd0fcec5f6a553a95e12ff19fa1
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 12:03:05 2024 +0100
lib/addns: rewrite signed dns update code to use gensec instead of plain gssapi
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 5807689f96889e1ce886d253bf2e4c478c554ce2
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
s3:utils: let net_update_dns_internal() set status before goto done in all cases
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 28af08292635d1eecbf6e020957b03bb5f57b199
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 27 09:59:09 2024 +0100
s3:winbindd: make use of winbindd_get_trust_credentials() in idmap_ad.c
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit ed75331f525b7e7cb71bab88aa08832c2716a610
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 27 09:53:04 2024 +0100
s3:winbindd: make use of winbindd_get_trust_credentials() in _winbind_LogonControl_TC_VERIFY()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 16bbb407fa512bbab7edab6b0ba4d9063996b35e
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 27 09:44:54 2024 +0100
s3:winbindd: make use of samba_sockaddr to avoid compiler warnings
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit f903d80769be8893c08c020f24d0d63040d51027
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 27 09:44:19 2024 +0100
s3:winbindd: use winbindd_get_trust_credentials()/ads_connect_creds() in winbindd_ads.c
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 8166642e1bd4c9bfdae266e9be445f605dc9fb85
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 27 09:23:17 2024 +0100
s3:winbindd: make winbindd_get_trust_credentials() public
We'll use it outside of winbindd_cm.c soon.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 81a6c54fddc7b1d783d8c1c9a1b4607e5e055bff
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 6 10:13:11 2024 +0100
s3:libads: add ads_set_reconnect_fn() and only reconnect if we can get creds
This reconnect is only useful for long running connections (e.g. in winbindd)
and there we'll make use of it...
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 31e4614ee3636eb5d835435dfe68379b0bee382e
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Apr 27 13:11:26 2022 +0200
s3:libads: add ads_connect_creds() helper
In future ads_connect_creds() will be used by callers directly instead
of using ads_connect().
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 76e0d348dddd08d05a53911601c2aa499056cf34
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Feb 26 21:02:08 2024 +0100
s3:libads: fix compiler warning in ads_mod_ber()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit bac243442a6ce812a4dcce0168b7d6d9ba0a17fc
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 27 13:49:08 2024 +0100
s3:libads: move ads->auth.time_offset to ads->config.time_offset
There's no reason to pass the LDAP servers time to the kerberos
libraries, as we may talk to a KDC different than the LDAP server!
Also Heimdal handles AS-REQ with KRB5KRB_AP_ERR_SKEW fine and
retries with the time from the krb-error.
MIT records the time from the KDC_ERR_PREAUTH_REQUIRED response
in order to use the KDCs time.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit ea97abd545ec13a161b7082cae10f0012f11e8e6
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 27 13:03:46 2024 +0100
s3:libads: we only need to gensec_expire_time()...
The lifetime of a service ticket is never longer than
the lifetime of the TGT...
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit ce1ad21ce638792d815c04819e9b479273cdb729
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 27 12:52:14 2024 +0100
s3:libads: remove unused ads->auth.renewable
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit fcd47a49660de8dcfca5516c9457fdd851c85c56
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 13:22:37 2024 +0100
s3:winbindd: remove useless 'renewable' argument to ads_cached_connection_connect()
There's really no need to get a reneable ticket for an ldap connection,
we currently always do a kinit for each connection anyway.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit bb8b7be74a79defbd0955ac6d73dd1e65a75389f
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Feb 29 14:50:31 2024 +0100
s3:libads: let ads_sasl_spnego_bind() really use spnego to negotiate krb5/ntlmssp
For now we still do the ads_kinit_password() in ads_legacy_creds()
for callers that rely on the global krb5ccache to be filled.
E.g. the dns update code and the kpasswd code.
But at least ads_connect_internal() and ads_sasl_spnego_bind()
will allow to do the kinit in the gensec layer only if needed...
We'll remove ads_legacy_creds() during the following commits.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 1474f9c5de3a0ca0a91596694b73aa19832ae3eb
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 13 16:53:44 2024 +0100
testprogs/blackbox: add better testnames in test_weak_disable_ntlmssp_ldap.sh
This makes it easier to adjust the expected output when it changes in
the next commits.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit cff7656e665c3e581c3f316a904d4d5bf58bac66
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Feb 29 14:08:55 2024 +0100
s3:net_ads: make use of ads_connect_cldap_only() and ADS_AUTH_GENERATE_KRB5_CONFIG in net_ads_password()
We don't need a real ldap connection here.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit f024063aec9be8362c2651108c5ce0d933994ecf
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 17:48:34 2024 +0100
s3:winbindd: make use of ads_connect_cldap_only() in dcip_check_name_ads()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit e8250f16240451ed584b329a3887ec6e94deced5
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 17:47:37 2024 +0100
s3:net_ads: make use of ads_connect_cldap_only() in net_ads_check_int()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit fdd34b57c41908b5727cdd916eb4ed4fbf34470a
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 17:46:10 2024 +0100
s3:libsmb: make use of ads_connect_cldap_only()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit f34e64baf6c1a496643d788d1f25aabc7fd47074
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 5 17:45:35 2024 +0100
s3:libads: add ads_connect_cldap_only() helper
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 36748002f011c418ab061fb77c945f17fbe6be47
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 09:56:00 2024 +0100
s3:libads: also avoid ADS_AUTH_GENERATE_KRB5_CONFIG for ADS_AUTH_ANON_BIND
For anonymous binds we don't need a krb5.conf.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 9ea1ea16290016a1c390c7e30f6a3a1613dac735
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 09:56:00 2024 +0100
s3:libads: add ADS_AUTH_GENERATE_KRB5_CONFIG to generate a custom krb5.conf
That's better then using !ADS_AUTH_NO_BIND. And it allows callers
to be more flexible in future.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit b3110ec049bae7c97aa0f642773fe0deb56f8e14
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Apr 27 13:11:26 2022 +0200
s3:libads: split out ads_connect_internal() and call it with ads_legacy_creds()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit be771670eb331de55cab2e51d2de98d4edac9435
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Apr 27 12:45:04 2022 +0200
s3:libads: let ads_sasl_spnego_bind() use cli_credentials_get_unparsed_name()
We should only operate on the creds structure and
avoid using ads->auth.{user_name,realm}.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 4d42574c54210022bec7e765739f5495b285145a
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Apr 27 13:39:11 2022 +0200
s3:libads: let ads_sasl_spnego_bind() reset krb5_state at the end
In future we'll pass in creds from the caller, so we better
restore the original krb5_state at the end of ads_sasl_spnego_bind().
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit f7ab92ea7e01a89d7d9ede115c576fb221374d6a
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Apr 27 12:32:30 2022 +0200
s3:libads: let ads_sasl_spnego_bind() use cli_credentials_get_kerberos_state()
We should only operate on the creds structure and avoid ads->auth.flags
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit b98f9a341f41ccfaf47c3cb8578e71eed96bb2a2
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Apr 25 18:08:33 2022 +0200
s3:libads: split out ads_legacy_creds()
This is just a temporary change until the highlevel caller
will pass in a cli_credentials structure and we'll get rid of
ads->auth.{user_name,realm,password}.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 6f33e46c19f5d0e9513d8f7aa1d170ab57418585
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Feb 28 17:31:23 2024 +0100
s3:libads: remove unused LIBADS_CCACHE_NAME define
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit a70c62a78e4eaab5e5a7558a15f0d1acc688f196
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Apr 24 09:59:53 2024 +0200
s3:libads: make use of talloc_stackframe() in ads_setup_tls_wrapping()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit d26e4c6e2728bd786cb4091242c8c8ebc1556f75
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Feb 29 14:27:36 2024 +0100
s3:libsmb: remove unused cli_session_creds_prepare_krb5()
Kinit will be done within gensec if required.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit ef205f6b52ea1fec13e647e15e4f3edf536fd93e
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Apr 14 15:23:13 2022 +0200
s3:gse: get an explicit ccache_name from creds and kinit if required
This means we may call kinit multiple times for now,
but we'll remove the kinit from the callers soon.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 98ee5ca7e8399b865b8e94feceaed61be703061f
Author: Andreas Schneider <asn at samba.org>
Date: Fri Apr 26 10:49:33 2024 +0200
s3:gse: Pass down the mech to gse_context_init()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit bc2a2399e5202a03087500056db3c575eda69a27
Author: Andreas Schneider <asn at samba.org>
Date: Thu Apr 25 15:51:40 2024 +0200
s3:gse: Implement gensec_gse_security_by_oid()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 2ec3e59f58b768f7c0c462a0d0e51a0f8fed1962
Author: Andreas Schneider <asn at samba.org>
Date: Fri Apr 26 10:54:47 2024 +0200
s3:gse: Use smb_gss_mech_import_cred() in gse_init_server()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit ca90f213a27743b7b715146c59f9287506e2da70
Author: Andreas Schneider <asn at samba.org>
Date: Fri Apr 26 10:40:13 2024 +0200
lib:krb5_wrap: Implement smb_gss_mech_import_cred()
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 2fd2d28b8fea0611bd21862a3eff29633b0c781d
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Mar 12 11:51:25 2024 +0100
s3:libsmb: fix lpcfg_gensec_settings() no memory check in auth_generic_client_prepare()
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit fb7e19826afab4fce33769eb7aef16a1c650b23a
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 6 23:05:00 2024 +0100
s3:libsmb: explicitly use the default krb5 ccache in cli_session_creds_init() without a password
This happened implicitly as the gse_krb5 module always used the default
krb5 ccache, but that will change soon.
If kerberos is requested without a fallback to ntlm AND
the caller doesn't provide a password we'll use the
default ccache. This will keep our the following tests
happy once the gse_krb5 module changes the behavior:
samba3.blackbox.krbsmbspool
samba3.blackbox.smbget
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 2dc76cc84c1d2edde7eea3d39412e3b41b631137
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 6 21:55:24 2024 +0100
s3:ntlm_auth: explicitly include default krb5 ccache if no explicit username/password are given
Before this silently happened because the gse_krb5 module just used the
default ccache, but that will change soon.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 52715b461a8be25af7d24f87f9a3b78421ff1424
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Mar 13 10:49:55 2024 +0100
tests/ntlm_auth: Do not set a client_password
This fixes test_ntlmssp_gss_spnego_cached_creds
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit a6b94a690b59fa7a3106f19d76eb37b8f0bab9f0
Author: Stefan Metzmacher <metze at samba.org>
Date: Thu Mar 7 17:59:02 2024 +0100
tests/ntlm_auth_krb5: don't test that a krb5ccache work with an explicit username
This test is useless and won't work anymore in future.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 3ea605d8af2a06b719f8d59cc73f3fb612284219
Author: Stefan Metzmacher <metze at samba.org>
Date: Fri Mar 8 12:57:06 2024 +0100
blackbox/test_kinit.sh: verify that --use-krb5-ccache= works without KRB5CCNAME
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit e47f9415b77cf9f7290379a531a4d371b6f3aeda
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat May 11 02:38:21 2024 +0200
s3:libads: don't allow ads_kdestroy(NULL) anymore
This should not happen, if we ever need that behaviour
we should add an ads_kdestroy_default() helper.
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
commit 4959f932279105e1de7c0bdf11ea503e1967a341
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue May 14 09:02:07 2024 +0200
s3:winbindd: don't use ads_kdestroy(NULL) in winbindd_raw_kerberos_login()
This fixes a problem introduced in the commit:
commit e6c693b705686a590d2fa8f434ff015d8926a349
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Feb 28 17:28:43 2024 +0100
s3:winbindd: pass a NULL ccache to kerberos_return_pac() for a MEMORY ccache
It means kerberos_return_pac() will use smb_krb5_cc_new_unique_memory().
...
Before that commit cc was never NULL as generate_krb5_ccache()
returned "MEMORY:winbindd_pam_ccache" as fallback.
So we called ads_kdestroy("MEMORY:winbindd_pam_ccache").
Now we have cc == NULL if user_ccache_file == NULL.
and kerberos_return_pac() uses smb_krb5_cc_new_unique_memory()
and krb5_cc_destroy() internally.
It means unless user_ccache_file != NULL we should not
call ads_kdestroy(cc) as cc is NULL and means we would destroy
any global default krb5 ccache.
Review with: git show -U25
Signed-off-by: Stefan Metzmacher <metze at samba.org>
Reviewed-by: Andreas Schneider <asn at samba.org>
-----------------------------------------------------------------------
Summary of changes:
auth/credentials/credentials_krb5.c | 6 +-
auth/credentials/credentials_krb5.h | 5 +-
lib/addns/dns.h | 18 +-
lib/addns/dnsgss.c | 240 +++++------------
lib/addns/wscript_build | 2 +-
lib/krb5_wrap/gss_samba.c | 29 +-
lib/krb5_wrap/gss_samba.h | 8 +
lib/krb5_wrap/krb5_samba.c | 45 +++-
lib/krb5_wrap/krb5_samba.h | 11 +
lib/replace/system/kerberos.h | 3 +
libgpo/pygpo.c | 75 +-----
python/samba/tests/ntlm_auth.py | 2 +-
python/samba/tests/ntlm_auth_base.py | 18 +-
python/samba/tests/ntlm_auth_krb5.py | 8 +-
source3/auth/auth_generic.c | 3 +-
source3/client/smbspool.c | 2 +-
source3/client/smbspool_krb5_wrapper.c | 7 +-
source3/include/ads.h | 11 +
source3/include/krb5_env.h | 26 --
source3/lib/netapi/joindomain.c | 124 ++++-----
source3/lib/netapi/netapi.c | 24 +-
source3/lib/netapi/netapi.h | 2 +
source3/libads/ads_ldap_protos.h | 6 +
source3/libads/ads_proto.h | 17 +-
source3/libads/ads_struct.c | 7 +
source3/libads/authdata.c | 2 +-
source3/libads/kerberos.c | 46 ++--
source3/libads/kerberos_proto.h | 13 +-
source3/libads/kerberos_util.c | 80 ------
source3/libads/krb5_setpw.c | 103 ++++++--
source3/libads/ldap.c | 153 ++++++++---
source3/libads/ldap_utils.c | 52 +++-
source3/libads/sasl.c | 185 ++++++-------
source3/libads/tls_wrapping.c | 9 +-
source3/libads/util.c | 5 +-
source3/libnet/libnet_join.c | 261 ++++--------------
source3/libnet/libnet_join.h | 2 +-
source3/librpc/crypto/gse.c | 294 ++++++++++++++++++++-
source3/librpc/crypto/gse.h | 3 +-
source3/librpc/idl/ads.idl | 17 +-
source3/librpc/idl/libnet_join.idl | 16 +-
source3/libsmb/auth_generic.c | 4 +-
source3/libsmb/cliconnect.c | 177 ++-----------
source3/libsmb/namequery_dc.c | 3 +-
source3/printing/nt_printing_ads.c | 80 +-----
source3/rpc_server/wkssvc/srv_wkssvc_nt.c | 28 +-
source3/utils/net.c | 38 +--
source3/utils/net.h | 8 +-
source3/utils/net_ads.c | 220 ++++++---------
source3/utils/net_ads_join_dns.c | 96 +++----
source3/utils/net_dns.c | 94 ++++++-
source3/utils/net_dns.h | 3 +
source3/utils/net_offlinejoin.c | 4 -
source3/utils/net_proto.h | 6 +-
source3/utils/net_rpc.c | 17 +-
source3/utils/net_util.c | 23 +-
source3/utils/ntlm_auth.c | 24 +-
source3/utils/py_net.c | 14 +-
source3/winbindd/idmap_ad.c | 20 +-
source3/winbindd/winbindd.c | 9 +-
source3/winbindd/winbindd_ads.c | 194 ++++----------
source3/winbindd/winbindd_cm.c | 46 +++-
source3/winbindd/winbindd_dual_srv.c | 18 +-
source3/winbindd/winbindd_pam.c | 32 +--
source3/winbindd/winbindd_proto.h | 7 +
source3/wscript_build | 1 -
testprogs/blackbox/test_kinit.sh | 101 ++++---
.../blackbox/test_weak_disable_ntlmssp_ldap.sh | 11 +-
68 files changed, 1547 insertions(+), 1671 deletions(-)
delete mode 100644 source3/include/krb5_env.h
delete mode 100644 source3/libads/kerberos_util.c
Changeset truncated at 500 lines:
diff --git a/auth/credentials/credentials_krb5.c b/auth/credentials/credentials_krb5.c
index 49077db23b3..ce76b10361d 100644
--- a/auth/credentials/credentials_krb5.c
+++ b/auth/credentials/credentials_krb5.c
@@ -323,7 +323,11 @@ _PUBLIC_ int cli_credentials_set_ccache(struct cli_credentials *cred,
return ret;
}
} else {
- ret = krb5_cc_default(ccc->smb_krb5_context->krb5_context, &ccc->ccache);
+ /*
+ * This is where the caller really wants to use
+ * the default krb5 ccache.
+ */
+ ret = smb_force_krb5_cc_default(ccc->smb_krb5_context->krb5_context, &ccc->ccache);
if (ret) {
(*error_string) = talloc_asprintf(cred, "failed to read default krb5 ccache: %s\n",
smb_get_krb5_error_message(ccc->smb_krb5_context->krb5_context,
diff --git a/auth/credentials/credentials_krb5.h b/auth/credentials/credentials_krb5.h
index e454de36240..a9c049c58da 100644
--- a/auth/credentials/credentials_krb5.h
+++ b/auth/credentials/credentials_krb5.h
@@ -23,9 +23,8 @@
#ifndef __CREDENTIALS_KRB5_H__
#define __CREDENTIALS_KRB5_H__
-#include <gssapi/gssapi.h>
-#include <gssapi/gssapi_krb5.h>
-#include <krb5.h>
+#include "system/gssapi.h"
+#include "system/kerberos.h"
struct gssapi_creds_container {
gss_cred_id_t creds;
diff --git a/lib/addns/dns.h b/lib/addns/dns.h
index 2c311e72a00..abf0906fdab 100644
--- a/lib/addns/dns.h
+++ b/lib/addns/dns.h
@@ -347,20 +347,16 @@ const char *dns_errstr(DNS_ERROR err);
/* from dnsgss.c */
-#ifdef HAVE_GSSAPI
-
-void display_status( const char *msg, OM_uint32 maj_stat, OM_uint32 min_stat );
-DNS_ERROR dns_negotiate_sec_ctx( const char *target_realm,
- const char *servername,
- const char *keyname,
- gss_ctx_id_t *gss_ctx,
- enum dns_ServerType srv_type );
+struct gensec_security;
+
+DNS_ERROR dns_negotiate_sec_ctx(const char *servername,
+ const char *keyname,
+ struct gensec_security *gensec,
+ enum dns_ServerType srv_type);
DNS_ERROR dns_sign_update(struct dns_update_request *req,
- gss_ctx_id_t gss_ctx,
+ struct gensec_security *gensec,
const char *keyname,
const char *algorithmname,
time_t time_signed, uint16_t fudge);
-#endif /* HAVE_GSSAPI */
-
#endif /* _DNS_H */
diff --git a/lib/addns/dnsgss.c b/lib/addns/dnsgss.c
index a315b804df4..8800ac24c8a 100644
--- a/lib/addns/dnsgss.c
+++ b/lib/addns/dnsgss.c
@@ -22,110 +22,51 @@
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
-#include "dns.h"
-#include <ctype.h>
-
-
-#ifdef HAVE_GSSAPI
-
-/*********************************************************************
-*********************************************************************/
-
-#ifndef HAVE_STRUPR
-static int strupr( char *szDomainName )
-{
- if ( !szDomainName ) {
- return ( 0 );
- }
- while ( *szDomainName != '\0' ) {
- *szDomainName = toupper( *szDomainName );
- szDomainName++;
- }
- return ( 0 );
-}
-#endif
-
-#if 0
-/*********************************************************************
-*********************************************************************/
-
-static void display_status_1( const char *m, OM_uint32 code, int type )
-{
- OM_uint32 maj_stat, min_stat;
- gss_buffer_desc msg;
- OM_uint32 msg_ctx;
-
- msg_ctx = 0;
- while ( 1 ) {
- maj_stat = gss_display_status( &min_stat, code,
- type, GSS_C_NULL_OID,
- &msg_ctx, &msg );
- fprintf( stdout, "GSS-API error %s: %s\n", m,
- ( char * ) msg.value );
- ( void ) gss_release_buffer( &min_stat, &msg );
-
- if ( !msg_ctx )
- break;
- }
-}
+#include "replace.h"
+#include <talloc.h>
+#include "lib/util/talloc_stack.h"
+#include "lib/util/data_blob.h"
+#include "lib/util/time.h"
+#include "lib/util/charset/charset.h"
+#include "libcli/util/ntstatus.h"
+#include "auth/gensec/gensec.h"
-/*********************************************************************
-*********************************************************************/
+#include "dns.h"
-void display_status( const char *msg, OM_uint32 maj_stat, OM_uint32 min_stat )
-{
- display_status_1( msg, maj_stat, GSS_C_GSS_CODE );
- display_status_1( msg, min_stat, GSS_C_MECH_CODE );
-}
-#endif
-
-static DNS_ERROR dns_negotiate_gss_ctx_int( TALLOC_CTX *mem_ctx,
- struct dns_connection *conn,
- const char *keyname,
- const gss_name_t target_name,
- gss_ctx_id_t *ctx,
- enum dns_ServerType srv_type )
+static DNS_ERROR dns_negotiate_gss_ctx_int(struct dns_connection *conn,
+ const char *keyname,
+ struct gensec_security *gensec,
+ enum dns_ServerType srv_type)
{
- struct gss_buffer_desc_struct input_desc, *input_ptr, output_desc;
- OM_uint32 major, minor;
- OM_uint32 ret_flags;
+ TALLOC_CTX *frame = talloc_stackframe();
struct dns_request *req = NULL;
struct dns_buffer *buf = NULL;
+ DATA_BLOB in = { .length = 0, };
+ DATA_BLOB out = { .length = 0, };
+ NTSTATUS status;
DNS_ERROR err;
- gss_OID_desc krb5_oid_desc =
- { 9, discard_const("\x2a\x86\x48\x86\xf7\x12\x01\x02\x02") };
-
- *ctx = GSS_C_NO_CONTEXT;
- input_ptr = NULL;
-
do {
- major = gss_init_sec_context(
- &minor, NULL, ctx, target_name, &krb5_oid_desc,
- GSS_C_REPLAY_FLAG | GSS_C_MUTUAL_FLAG |
- GSS_C_CONF_FLAG |
- GSS_C_INTEG_FLAG,
- 0, NULL, input_ptr, NULL, &output_desc,
- &ret_flags, NULL );
-
- if (input_ptr != NULL) {
- TALLOC_FREE(input_desc.value);
+ status = gensec_update(gensec, frame, in, &out);
+ data_blob_free(&in);
+ if (GENSEC_UPDATE_IS_NTERROR(status)) {
+ err = ERROR_DNS_GSS_ERROR;
+ goto error;
}
- if (output_desc.length != 0) {
-
+ if (out.length != 0) {
struct dns_rrec *rec;
time_t t = time(NULL);
- err = dns_create_query(mem_ctx, keyname, QTYPE_TKEY,
+ err = dns_create_query(frame, keyname, QTYPE_TKEY,
DNS_CLASS_IN, &req);
if (!ERR_DNS_IS_OK(err)) goto error;
err = dns_create_tkey_record(
req, keyname, "gss.microsoft.com", t,
t + 86400, DNS_TKEY_MODE_GSSAPI, 0,
- output_desc.length, (uint8_t *)output_desc.value,
+ out.length, out.data,
&rec );
if (!ERR_DNS_IS_OK(err)) goto error;
@@ -143,7 +84,7 @@ static DNS_ERROR dns_negotiate_gss_ctx_int( TALLOC_CTX *mem_ctx,
if (!ERR_DNS_IS_OK(err)) goto error;
- err = dns_marshall_request(mem_ctx, req, &buf);
+ err = dns_marshall_request(frame, req, &buf);
if (!ERR_DNS_IS_OK(err)) goto error;
err = dns_send(conn, buf);
@@ -151,24 +92,21 @@ static DNS_ERROR dns_negotiate_gss_ctx_int( TALLOC_CTX *mem_ctx,
TALLOC_FREE(buf);
TALLOC_FREE(req);
- }
-
- gss_release_buffer(&minor, &output_desc);
- if ((major != GSS_S_COMPLETE) &&
- (major != GSS_S_CONTINUE_NEEDED)) {
- return ERROR_DNS_GSS_ERROR;
+ err = dns_receive(frame, conn, &buf);
+ if (!ERR_DNS_IS_OK(err)) goto error;
}
- if (major == GSS_S_CONTINUE_NEEDED) {
-
+ if (NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
struct dns_request *resp;
struct dns_tkey_record *tkey;
struct dns_rrec *tkey_answer = NULL;
uint16_t i;
- err = dns_receive(mem_ctx, conn, &buf);
- if (!ERR_DNS_IS_OK(err)) goto error;
+ if (buf == NULL) {
+ err = ERROR_DNS_BAD_RESPONSE;
+ goto error;
+ }
err = dns_unmarshall_request(buf, buf, &resp);
if (!ERR_DNS_IS_OK(err)) goto error;
@@ -191,18 +129,15 @@ static DNS_ERROR dns_negotiate_gss_ctx_int( TALLOC_CTX *mem_ctx,
}
err = dns_unmarshall_tkey_record(
- mem_ctx, resp->answers[0], &tkey);
+ frame, resp->answers[0], &tkey);
if (!ERR_DNS_IS_OK(err)) goto error;
- input_desc.length = tkey->key_length;
- input_desc.value = talloc_move(mem_ctx, &tkey->key);
-
- input_ptr = &input_desc;
+ in = data_blob_const(tkey->key, tkey->key_length);
TALLOC_FREE(buf);
}
- } while ( major == GSS_S_CONTINUE_NEEDED );
+ } while (NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED));
/* If we arrive here, we have a valid security context */
@@ -210,94 +145,54 @@ static DNS_ERROR dns_negotiate_gss_ctx_int( TALLOC_CTX *mem_ctx,
error:
- TALLOC_FREE(buf);
- TALLOC_FREE(req);
+ TALLOC_FREE(frame);
return err;
}
-DNS_ERROR dns_negotiate_sec_ctx( const char *target_realm,
- const char *servername,
- const char *keyname,
- gss_ctx_id_t *gss_ctx,
- enum dns_ServerType srv_type )
+DNS_ERROR dns_negotiate_sec_ctx(const char *servername,
+ const char *keyname,
+ struct gensec_security *gensec,
+ enum dns_ServerType srv_type)
{
- OM_uint32 major, minor;
-
- char *upcaserealm, *targetname;
+ TALLOC_CTX *frame = talloc_stackframe();
DNS_ERROR err;
+ struct dns_connection *conn = NULL;
- gss_buffer_desc input_name;
- struct dns_connection *conn;
-
- gss_name_t targ_name;
-
- gss_OID_desc nt_host_oid_desc =
- {10, discard_const("\x2a\x86\x48\x86\xf7\x12\x01\x02\x02\x01")};
-
- TALLOC_CTX *mem_ctx;
-
- if (!(mem_ctx = talloc_init("dns_negotiate_sec_ctx"))) {
- return ERROR_DNS_NO_MEMORY;
- }
-
- err = dns_open_connection( servername, DNS_TCP, mem_ctx, &conn );
+ err = dns_open_connection( servername, DNS_TCP, frame, &conn );
if (!ERR_DNS_IS_OK(err)) goto error;
- if (!(upcaserealm = talloc_strdup(mem_ctx, target_realm))) {
- err = ERROR_DNS_NO_MEMORY;
- goto error;
- }
-
- strupr(upcaserealm);
-
- if (!(targetname = talloc_asprintf(mem_ctx, "dns/%s@%s",
- servername, upcaserealm))) {
- err = ERROR_DNS_NO_MEMORY;
- goto error;
- }
-
- input_name.value = targetname;
- input_name.length = strlen(targetname);
-
- major = gss_import_name( &minor, &input_name,
- &nt_host_oid_desc, &targ_name );
-
- if (major) {
- err = ERROR_DNS_GSS_ERROR;
- goto error;
- }
-
- err = dns_negotiate_gss_ctx_int(mem_ctx, conn, keyname,
- targ_name, gss_ctx, srv_type );
-
- gss_release_name( &minor, &targ_name );
+ err = dns_negotiate_gss_ctx_int(conn, keyname,
+ gensec,
+ srv_type);
+ if (!ERR_DNS_IS_OK(err)) goto error;
error:
- TALLOC_FREE(mem_ctx);
+ TALLOC_FREE(frame);
return err;
}
DNS_ERROR dns_sign_update(struct dns_update_request *req,
- gss_ctx_id_t gss_ctx,
+ struct gensec_security *gensec,
const char *keyname,
const char *algorithmname,
time_t time_signed, uint16_t fudge)
{
+ TALLOC_CTX *frame = talloc_stackframe();
struct dns_buffer *buf;
DNS_ERROR err;
struct dns_domain_name *key, *algorithm;
- struct gss_buffer_desc_struct msg, mic;
- OM_uint32 major, minor;
struct dns_rrec *rec;
+ DATA_BLOB mic = { .length = 0, };
+ NTSTATUS status;
- err = dns_marshall_update_request(req, req, &buf);
+ err = dns_marshall_update_request(frame, req, &buf);
if (!ERR_DNS_IS_OK(err)) return err;
- err = dns_domain_name_from_string(buf, keyname, &key);
+ err = dns_domain_name_from_string(frame, keyname, &key);
if (!ERR_DNS_IS_OK(err)) goto error;
- err = dns_domain_name_from_string(buf, algorithmname, &algorithm);
+ err = dns_domain_name_from_string(frame, algorithmname, &algorithm);
if (!ERR_DNS_IS_OK(err)) goto error;
dns_marshall_domain_name(buf, key);
@@ -313,32 +208,31 @@ DNS_ERROR dns_sign_update(struct dns_update_request *req,
err = buf->error;
if (!ERR_DNS_IS_OK(buf->error)) goto error;
- msg.value = (void *)buf->data;
- msg.length = buf->offset;
-
- major = gss_get_mic(&minor, gss_ctx, 0, &msg, &mic);
- if (major != 0) {
+ status = gensec_sign_packet(gensec,
+ frame,
+ buf->data,
+ buf->offset,
+ buf->data,
+ buf->offset,
+ &mic);
+ if (!NT_STATUS_IS_OK(status)) {
err = ERROR_DNS_GSS_ERROR;
goto error;
}
if (mic.length > 0xffff) {
- gss_release_buffer(&minor, &mic);
err = ERROR_DNS_GSS_ERROR;
goto error;
}
- err = dns_create_tsig_record(buf, keyname, algorithmname, time_signed,
- fudge, mic.length, (uint8_t *)mic.value,
+ err = dns_create_tsig_record(frame, keyname, algorithmname, time_signed,
+ fudge, mic.length, mic.data,
req->id, 0, &rec);
- gss_release_buffer(&minor, &mic);
if (!ERR_DNS_IS_OK(err)) goto error;
err = dns_add_rrec(req, rec, &req->num_additionals, &req->additional);
error:
- TALLOC_FREE(buf);
+ TALLOC_FREE(frame);
return err;
}
-
-#endif /* HAVE_GSSAPI */
diff --git a/lib/addns/wscript_build b/lib/addns/wscript_build
index cc72b35b437..694d71b732e 100644
--- a/lib/addns/wscript_build
+++ b/lib/addns/wscript_build
@@ -11,6 +11,6 @@ bld.SAMBA_LIBRARY('addns',
error.c
dnsquery_srv.c
''',
- public_deps='samba-util gssapi ndr resolv dns_lookup',
+ public_deps='samba-util gensec ndr resolv dns_lookup',
private_library=True,
vars=locals())
diff --git a/lib/krb5_wrap/gss_samba.c b/lib/krb5_wrap/gss_samba.c
index a5940561cda..608cb60f155 100644
--- a/lib/krb5_wrap/gss_samba.c
+++ b/lib/krb5_wrap/gss_samba.c
@@ -48,16 +48,35 @@ int smb_gss_oid_equal(const gss_OID first_oid, const gss_OID second_oid)
}
#endif /* !HAVE_GSS_OID_EQUAL */
-
/* wrapper around gss_krb5_import_cred() that prefers to use gss_acquire_cred_from()
* if this GSSAPI extension is available. gss_acquire_cred_from() is properly
* interposed by GSSPROXY while gss_krb5_import_cred() is not.
*
* This wrapper requires a proper krb5_context to resolve ccache name.
* All gss_krb5_import_cred() callers in Samba already have krb5_context available. */
-uint32_t smb_gss_krb5_import_cred(uint32_t *minor_status, krb5_context ctx,
- krb5_ccache id, krb5_principal keytab_principal,
- krb5_keytab keytab, gss_cred_id_t *cred)
+uint32_t smb_gss_krb5_import_cred(uint32_t *minor_status,
+ krb5_context ctx,
+ krb5_ccache id,
+ krb5_principal keytab_principal,
+ krb5_keytab keytab,
+ gss_cred_id_t *cred)
+{
+ return smb_gss_mech_import_cred(minor_status,
+ ctx,
+ id,
+ keytab_principal,
+ keytab,
+ gss_mech_krb5,
+ cred);
+}
+
+uint32_t smb_gss_mech_import_cred(OM_uint32 *minor_status,
+ krb5_context ctx,
+ krb5_ccache id,
+ krb5_principal keytab_principal,
+ krb5_keytab keytab,
+ const struct gss_OID_desc_struct *mech,
+ gss_cred_id_t *cred)
{
uint32_t major_status = 0;
@@ -86,7 +105,7 @@ uint32_t smb_gss_krb5_import_cred(uint32_t *minor_status, krb5_context ctx,
gss_OID_set_desc mech_set = {
.count = 1,
.elements = discard_const_p(struct gss_OID_desc_struct,
- gss_mech_krb5),
+ mech),
};
gss_cred_usage_t cred_usage = GSS_C_INITIATE;
diff --git a/lib/krb5_wrap/gss_samba.h b/lib/krb5_wrap/gss_samba.h
index 89aee3479c5..9e91f21e406 100644
--- a/lib/krb5_wrap/gss_samba.h
+++ b/lib/krb5_wrap/gss_samba.h
@@ -45,5 +45,13 @@ uint32_t smb_gss_krb5_import_cred(OM_uint32 *minor_status, krb5_context ctx,
krb5_ccache id, krb5_principal keytab_principal,
krb5_keytab keytab, gss_cred_id_t *cred);
--
Samba Shared Repository
More information about the samba-cvs
mailing list