svn commit: samba r21300 - in branches/SAMBA_4_0/source/libnet: .
metze at samba.org
metze at samba.org
Mon Feb 12 13:34:05 GMT 2007
Author: metze
Date: 2007-02-12 13:34:04 +0000 (Mon, 12 Feb 2007)
New Revision: 21300
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21300
Log:
let the caller decide if it wants rid decrypted hashes or not
metze
Modified:
branches/SAMBA_4_0/source/libnet/libnet_samdump.c
branches/SAMBA_4_0/source/libnet/libnet_samdump_keytab.c
branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c
branches/SAMBA_4_0/source/libnet/libnet_vampire.c
branches/SAMBA_4_0/source/libnet/libnet_vampire.h
Changeset:
Modified: branches/SAMBA_4_0/source/libnet/libnet_samdump.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_samdump.c 2007-02-12 13:04:09 UTC (rev 21299)
+++ branches/SAMBA_4_0/source/libnet/libnet_samdump.c 2007-02-12 13:34:04 UTC (rev 21300)
@@ -163,6 +163,7 @@
r2.out.error_string = NULL;
r2.in.binding_string = r->in.binding_string;
+ r2.in.rid_crypt = lp_parm_bool(-1, "vampire", "rid decrypt", True);
r2.in.init_fn = NULL;
r2.in.delta_fn = libnet_samdump_fn;
r2.in.fn_ctx = samdump_state;
Modified: branches/SAMBA_4_0/source/libnet/libnet_samdump_keytab.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_samdump_keytab.c 2007-02-12 13:04:09 UTC (rev 21299)
+++ branches/SAMBA_4_0/source/libnet/libnet_samdump_keytab.c 2007-02-12 13:34:04 UTC (rev 21300)
@@ -100,6 +100,7 @@
r2.out.error_string = NULL;
r2.in.binding_string = r->in.binding_string;
+ r2.in.rid_crypt = true;
r2.in.init_fn = NULL;
r2.in.delta_fn = libnet_samdump_keytab_fn;
r2.in.fn_ctx = discard_const(r->in.keytab_name);
Modified: branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c 2007-02-12 13:04:09 UTC (rev 21299)
+++ branches/SAMBA_4_0/source/libnet/libnet_samsync_ldb.c 2007-02-12 13:34:04 UTC (rev 21300)
@@ -1215,6 +1215,7 @@
r2.out.error_string = NULL;
r2.in.binding_string = r->in.binding_string;
+ r2.in.rid_crypt = true;
r2.in.init_fn = libnet_samsync_ldb_init;
r2.in.delta_fn = libnet_samsync_ldb_fn;
r2.in.fn_ctx = state;
Modified: branches/SAMBA_4_0/source/libnet/libnet_vampire.c
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_vampire.c 2007-02-12 13:04:09 UTC (rev 21299)
+++ branches/SAMBA_4_0/source/libnet/libnet_vampire.c 2007-02-12 13:34:04 UTC (rev 21300)
@@ -38,6 +38,7 @@
*/
static NTSTATUS fix_user(TALLOC_CTX *mem_ctx,
struct creds_CredentialState *creds,
+ bool rid_crypt,
enum netr_SamDatabaseID database,
struct netr_DELTA_ENUM *delta,
char **error_string)
@@ -50,7 +51,7 @@
const char *username = user->account_name.string;
NTSTATUS nt_status;
- if (lp_parm_bool(-1, "vampire", "rid_decrypt", True)) {
+ if (rid_crypt) {
if (user->lm_password_present) {
sam_rid_crypt(rid, user->lmpassword.hash, lm_hash.hash, 0);
user->lmpassword = lm_hash;
@@ -74,7 +75,7 @@
nt_status = ndr_pull_struct_blob(&data, mem_ctx, &keys, (ndr_pull_flags_fn_t)ndr_pull_netr_USER_KEYS);
if (NT_STATUS_IS_OK(nt_status)) {
if (keys.keys.keys2.lmpassword.length == 16) {
- if (lp_parm_bool(-1, "vampire", "rid decrypt", True)) {
+ if (rid_crypt) {
sam_rid_crypt(rid, keys.keys.keys2.lmpassword.pwd.hash, lm_hash.hash, 0);
user->lmpassword = lm_hash;
} else {
@@ -83,7 +84,7 @@
user->lm_password_present = True;
}
if (keys.keys.keys2.ntpassword.length == 16) {
- if (lp_parm_bool(-1, "vampire", "rid decrypt", True)) {
+ if (rid_crypt) {
sam_rid_crypt(rid, keys.keys.keys2.ntpassword.pwd.hash, nt_hash.hash, 0);
user->ntpassword = nt_hash;
} else {
@@ -91,6 +92,7 @@
}
user->nt_password_present = True;
}
+ /* TODO: rid decrypt history fields */
} else {
*error_string = talloc_asprintf(mem_ctx, "Failed to parse Sensitive Data for %s:", username);
dump_data(10, data.data, data.length);
@@ -128,6 +130,7 @@
static NTSTATUS fix_delta(TALLOC_CTX *mem_ctx,
struct creds_CredentialState *creds,
+ bool rid_crypt,
enum netr_SamDatabaseID database,
struct netr_DELTA_ENUM *delta,
char **error_string)
@@ -139,6 +142,7 @@
{
nt_status = fix_user(mem_ctx,
creds,
+ rid_crypt,
database,
delta,
error_string);
@@ -354,6 +358,7 @@
* de-obfuscating the data */
nt_status = fix_delta(delta_ctx,
creds,
+ r->in.rid_crypt,
dbsync.in.database_id,
&dbsync.out.delta_enum_array->delta_enum[d],
&error_string);
Modified: branches/SAMBA_4_0/source/libnet/libnet_vampire.h
===================================================================
--- branches/SAMBA_4_0/source/libnet/libnet_vampire.h 2007-02-12 13:04:09 UTC (rev 21299)
+++ branches/SAMBA_4_0/source/libnet/libnet_vampire.h 2007-02-12 13:34:04 UTC (rev 21300)
@@ -33,6 +33,7 @@
struct libnet_SamSync {
struct {
const char *binding_string;
+ bool rid_crypt;
NTSTATUS (*init_fn)(TALLOC_CTX *mem_ctx,
void *private,
struct libnet_SamSync_state *samsync_state,
More information about the samba-cvs
mailing list