summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorJoseph Sutton <josephsutton@catalyst.net.nz>2023-04-21 13:25:58 +1200
committerAndrew Bartlett <abartlet@samba.org>2023-05-05 02:54:31 +0000
commitbd9eb63450ff45a9c3d49ca5c9f7b2c8aaa2060b (patch)
treecb7c8edc0d54b8c4026967eea317470acac6cc47 /python
parent443d70ee58f3dec05ddede22c33fec0860f52864 (diff)
downloadsamba-bd9eb63450ff45a9c3d49ca5c9f7b2c8aaa2060b.tar.gz
tests/krb5: Refactor _test_samlogon()
Move logic specific to the Network logon into that branch, so it’s easier to see what’s going on. Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'python')
-rw-r--r--python/samba/tests/krb5/kdc_base_test.py45
1 files changed, 24 insertions, 21 deletions
diff --git a/python/samba/tests/krb5/kdc_base_test.py b/python/samba/tests/krb5/kdc_base_test.py
index efdb0ea7121..7588beb1ee3 100644
--- a/python/samba/tests/krb5/kdc_base_test.py
+++ b/python/samba/tests/krb5/kdc_base_test.py
@@ -3204,31 +3204,12 @@ class KDCBaseTest(RawKerberosTest):
username, domain = creds.get_ntlm_username_domain()
workstation = 'Workstation'
- target_info = ntlmssp.AV_PAIR_LIST()
- target_info.count = 3
- computername = ntlmssp.AV_PAIR()
- computername.AvId = ntlmssp.MsvAvNbComputerName
- computername.Value = workstation
-
- domainname = ntlmssp.AV_PAIR()
- domainname.AvId = ntlmssp.MsvAvNbDomainName
- domainname.Value = domain
-
- eol = ntlmssp.AV_PAIR()
- eol.AvId = ntlmssp.MsvAvEOL
- target_info.pair = [domainname, computername, eol]
-
- target_info_blob = ndr_pack(target_info)
-
- challenge = b'abcdefgh'
- response = creds.get_ntlm_response(flags=0,
- challenge=challenge,
- target_info=target_info_blob)
-
mach_creds = self.get_cached_creds(
account_type=self.AccountType.COMPUTER,
opts={'secure_channel_type': misc.SEC_CHAN_WKSTA})
+ # Calling this initializes netlogon_creds on mach_creds, as is required
+ # before calling mach_creds.encrypt_samr_password().
conn = netlogon.netlogon(f'ncacn_ip_tcp:{server}[schannel,seal]',
self.get_lp(),
mach_creds)
@@ -3247,6 +3228,28 @@ class KDCBaseTest(RawKerberosTest):
logon.ntpassword = nt_pass
elif logon_type == netlogon.NetlogonNetworkInformation:
+ computername = ntlmssp.AV_PAIR()
+ computername.AvId = ntlmssp.MsvAvNbComputerName
+ computername.Value = workstation
+
+ domainname = ntlmssp.AV_PAIR()
+ domainname.AvId = ntlmssp.MsvAvNbDomainName
+ domainname.Value = domain
+
+ eol = ntlmssp.AV_PAIR()
+ eol.AvId = ntlmssp.MsvAvEOL
+
+ target_info = ntlmssp.AV_PAIR_LIST()
+ target_info.count = 3
+ target_info.pair = [domainname, computername, eol]
+
+ target_info_blob = ndr_pack(target_info)
+
+ challenge = b'abcdefgh'
+ response = creds.get_ntlm_response(flags=0,
+ challenge=challenge,
+ target_info=target_info_blob)
+
logon = netlogon.netr_NetworkInfo()
logon.challenge = list(challenge)