svn commit: samba r26217 - in
branches/SAMBA_4_0/source/torture/rpc: .
gd at samba.org
gd at samba.org
Fri Nov 30 13:05:00 GMT 2007
Author: gd
Date: 2007-11-30 13:04:59 +0000 (Fri, 30 Nov 2007)
New Revision: 26217
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26217
Log:
Let encode_wkssvc_join_password_buffer() take the session key as parameter.
Guenther
Modified:
branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/wkssvc.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/wkssvc.c 2007-11-30 09:55:15 UTC (rev 26216)
+++ branches/SAMBA_4_0/source/torture/rpc/wkssvc.c 2007-11-30 13:04:59 UTC (rev 26217)
@@ -1155,32 +1155,25 @@
* buffer), calling MD5Update() first with session_key and then with confounder
* (vice versa in samr) - Guenther */
-static bool encode_wkssvc_join_password_buffer(struct torture_context *tctx,
- struct dcerpc_pipe *p,
+static void encode_wkssvc_join_password_buffer(TALLOC_CTX *mem_ctx,
const char *pwd,
+ DATA_BLOB *session_key,
struct wkssvc_PasswordBuffer *pwd_buf)
{
- NTSTATUS status;
uint8_t buffer[516];
struct MD5Context ctx;
- DATA_BLOB confounded_session_key = data_blob_talloc(tctx, NULL, 16);
- DATA_BLOB session_key;
+ DATA_BLOB confounded_session_key = data_blob_talloc(mem_ctx, NULL, 16);
int confounder_len = 8;
uint8_t confounder[8];
encode_pw_buffer(buffer, pwd, STR_UNICODE);
- status = dcerpc_fetch_session_key(p, &session_key);
- if (!NT_STATUS_IS_OK(status)) {
- return false;
- }
-
generate_random_buffer((uint8_t *)confounder, confounder_len);
MD5Init(&ctx);
- MD5Update(&ctx, session_key.data, session_key.length);
+ MD5Update(&ctx, session_key->data, session_key->length);
MD5Update(&ctx, confounder, confounder_len);
MD5Final(confounded_session_key.data, &ctx);
@@ -1189,7 +1182,7 @@
memcpy(&pwd_buf->data[0], confounder, confounder_len);
memcpy(&pwd_buf->data[8], buffer, 516);
- return true;
+ data_blob_free(&confounded_session_key);
}
/*
@@ -1213,6 +1206,7 @@
enum wkssvc_NetJoinStatus join_status;
const char *join_name = NULL;
WERROR expected_err;
+ DATA_BLOB session_key;
/* FIXME: this test assumes to join workstations / servers and does not
* handle DCs (WERR_SETUP_DOMAIN_CONTROLLER) */
@@ -1253,13 +1247,14 @@
return false;
}
- if (!encode_wkssvc_join_password_buffer(tctx, p,
- domain_admin_password,
- &pwd_buf))
- {
+ status = dcerpc_fetch_session_key(p, &session_key);
+ if (!NT_STATUS_IS_OK(status)) {
return false;
}
+ encode_wkssvc_join_password_buffer(tctx, domain_admin_password,
+ &session_key, &pwd_buf);
+
r.in.server_name = dcerpc_server_name(p);
r.in.domain_name = domain_name;
r.in.account_ou = NULL;
@@ -1301,6 +1296,7 @@
enum wkssvc_NetJoinStatus join_status;
const char *join_name = NULL;
WERROR expected_err;
+ DATA_BLOB session_key;
/* FIXME: this test assumes to join workstations / servers and does not
* handle DCs (WERR_SETUP_DOMAIN_CONTROLLER) */
@@ -1336,13 +1332,14 @@
return false;
}
- if (!encode_wkssvc_join_password_buffer(tctx, p,
- domain_admin_password,
- &pwd_buf))
- {
+ status = dcerpc_fetch_session_key(p, &session_key);
+ if (!NT_STATUS_IS_OK(status)) {
return false;
}
+ encode_wkssvc_join_password_buffer(tctx, domain_admin_password,
+ &session_key, &pwd_buf);
+
r.in.server_name = dcerpc_server_name(p);
r.in.account = domain_admin_account;
r.in.encrypted_password = &pwd_buf;
More information about the samba-cvs
mailing list