svn commit: samba r10950 - in branches/SAMBA_4_0/source/torture/rpc: .

abartlet at samba.org abartlet at samba.org
Thu Oct 13 02:07:29 GMT 2005


Author: abartlet
Date: 2005-10-13 02:07:29 +0000 (Thu, 13 Oct 2005)
New Revision: 10950

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10950

Log:
More cracknames variations (including expected values) than you can
poke a stick at...

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/torture/rpc/drsuapi_cracknames.c


Changeset:
Modified: branches/SAMBA_4_0/source/torture/rpc/drsuapi_cracknames.c
===================================================================
--- branches/SAMBA_4_0/source/torture/rpc/drsuapi_cracknames.c	2005-10-13 02:01:31 UTC (rev 10949)
+++ branches/SAMBA_4_0/source/torture/rpc/drsuapi_cracknames.c	2005-10-13 02:07:29 UTC (rev 10950)
@@ -210,6 +210,8 @@
 	const char *FQDN_1779_name;
 	const char *user_principal_name;
 	const char *service_principal_name;
+	const char *canonical_name;
+	const char *canonical_ex_name;
 
 	ZERO_STRUCT(r);
 	r.in.bind_handle		= &priv->bind_handle;
@@ -304,11 +306,11 @@
 		return ret;
 	}
 
-	r.in.req.req1.format_offered	= DRSUAPI_DS_NAME_FORMAT_GUID;
-	r.in.req.req1.format_desired	= DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT;
-	names[0].str = priv->domain_guid_str;
+	r.in.req.req1.format_offered	= DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT;
+	r.in.req.req1.format_desired	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779;
+	names[0].str = nt4_domain;
 
-	printf("testing DsCrackNames with GUID '%s' desired format:%d\n",
+	printf("testing DsCrackNames with name '%s' desired format:%d\n",
 			names[0].str, r.in.req.req1.format_desired);
 
 	status = dcerpc_drsuapi_DsCrackNames(p, mem_ctx, &r);
@@ -331,9 +333,11 @@
 		return ret;
 	}
 
+	priv->domain_obj_dn = r.out.ctr.ctr1->array[0].result_name;
+
 	r.in.req.req1.format_offered	= DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT;
 	r.in.req.req1.format_desired	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779;
-	names[0].str = nt4_domain;
+	names[0].str = talloc_asprintf(mem_ctx, "%s%s$", nt4_domain, test_dc);
 
 	printf("testing DsCrackNames with name '%s' desired format:%d\n",
 			names[0].str, r.in.req.req1.format_desired);
@@ -358,10 +362,10 @@
 		return ret;
 	}
 
-	priv->domain_obj_dn = r.out.ctr.ctr1->array[0].result_name;
+	FQDN_1779_name = r.out.ctr.ctr1->array[0].result_name;
 
 	r.in.req.req1.format_offered	= DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT;
-	r.in.req.req1.format_desired	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779;
+	r.in.req.req1.format_desired	= DRSUAPI_DS_NAME_FORMAT_CANONICAL;
 	names[0].str = talloc_asprintf(mem_ctx, "%s%s$", nt4_domain, test_dc);
 
 	printf("testing DsCrackNames with name '%s' desired format:%d\n",
@@ -387,12 +391,11 @@
 		return ret;
 	}
 
-	FQDN_1779_name = r.out.ctr.ctr1->array[0].result_name;
+	canonical_name = r.out.ctr.ctr1->array[0].result_name;
 
-	r.in.req.req1.format_offered	= DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL;
-	r.in.req.req1.format_desired	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779;
-	names[0].str = talloc_asprintf(mem_ctx, "%s$@%s", test_dc, dns_domain);
-	user_principal_name = names[0].str;
+	r.in.req.req1.format_offered	= DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT;
+	r.in.req.req1.format_desired	= DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX;
+	names[0].str = talloc_asprintf(mem_ctx, "%s%s$", nt4_domain, test_dc);
 
 	printf("testing DsCrackNames with name '%s' desired format:%d\n",
 			names[0].str, r.in.req.req1.format_desired);
@@ -417,11 +420,9 @@
 		return ret;
 	}
 
-	if (strcmp(r.out.ctr.ctr1->array[0].result_name, FQDN_1779_name) != 0) {
-		printf("DsCrackNames failed - %s != %s\n", r.out.ctr.ctr1->array[0].result_name, FQDN_1779_name);
-		return False;
-	}
+	canonical_ex_name = r.out.ctr.ctr1->array[0].result_name;
 
+	user_principal_name = talloc_asprintf(mem_ctx, "%s$@%s", test_dc, dns_domain);
 	service_principal_name = talloc_asprintf(mem_ctx, "HOST/%s", test_dc);
 	{
 		
@@ -432,8 +433,16 @@
 			const char *str;
 			const char *expected_str;
 			enum drsuapi_DsNameStatus status;
+			enum drsuapi_DsNameFlags flags;
 		} crack[] = {
 			{
+				.format_offered	= DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL,
+				.format_desired	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+				.str = user_principal_name,
+				.expected_str = FQDN_1779_name,
+				.status = DRSUAPI_DS_NAME_STATUS_OK
+			},
+			{
 				.format_offered	= DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL,
 				.format_desired	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
 				.str = service_principal_name,
@@ -452,10 +461,36 @@
 				.format_offered	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
 				.format_desired	= DRSUAPI_DS_NAME_FORMAT_CANONICAL,
 				.str = FQDN_1779_name,
+				.expected_str = canonical_name,
 				.status = DRSUAPI_DS_NAME_STATUS_OK
 			},
 			{
 				.format_offered	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+				.format_desired	= DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX,
+				.str = FQDN_1779_name,
+				.expected_str = canonical_ex_name,
+				.status = DRSUAPI_DS_NAME_STATUS_OK
+			},
+			{
+				.format_offered	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+				.format_desired	= DRSUAPI_DS_NAME_FORMAT_CANONICAL,
+				.str = FQDN_1779_name,
+				.comment = "DN to cannoical syntactial only",
+				.status = DRSUAPI_DS_NAME_STATUS_OK,
+				.expected_str = canonical_name,
+				.flags = DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY
+			},
+			{
+				.format_offered	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+				.format_desired	= DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX,
+				.str = FQDN_1779_name,
+				.comment = "DN to cannoical EX syntactial only",
+				.status = DRSUAPI_DS_NAME_STATUS_OK,
+				.expected_str = canonical_ex_name,
+				.flags = DRSUAPI_DS_NAME_FLAG_SYNTACTICAL_ONLY
+			},
+			{
+				.format_offered	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
 				.format_desired	= DRSUAPI_DS_NAME_FORMAT_DISPLAY,
 				.str = FQDN_1779_name,
 				.status = DRSUAPI_DS_NAME_STATUS_OK
@@ -467,6 +502,30 @@
 				.status = DRSUAPI_DS_NAME_STATUS_OK
 			},
 			{
+				.format_offered	= DRSUAPI_DS_NAME_FORMAT_GUID,
+				.format_desired	= DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT,
+				.str = priv->domain_guid_str,
+				.comment = "Domain GUID to NT4 ACCOUNT",
+				.expected_str = nt4_domain,
+				.status = DRSUAPI_DS_NAME_STATUS_OK
+			},
+			{
+				.format_offered	= DRSUAPI_DS_NAME_FORMAT_GUID,
+				.format_desired	= DRSUAPI_DS_NAME_FORMAT_CANONICAL,
+				.str = priv->domain_guid_str,
+				.comment = "Domain GUID to Canonical",
+				.expected_str = talloc_asprintf(mem_ctx, "%s/", dns_domain),
+				.status = DRSUAPI_DS_NAME_STATUS_OK
+			},
+			{
+				.format_offered	= DRSUAPI_DS_NAME_FORMAT_GUID,
+				.format_desired	= DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX,
+				.str = priv->domain_guid_str,
+				.comment = "Domain GUID to Canonical EX",
+				.expected_str = talloc_asprintf(mem_ctx, "%s\n", dns_domain),
+				.status = DRSUAPI_DS_NAME_STATUS_OK
+			},
+			{
 				.format_offered	= DRSUAPI_DS_NAME_FORMAT_DISPLAY,
 				.format_desired	= DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
 				.str = "CN=Microsoft Corporation,L=Redmond,S=Washington,C=US",
@@ -631,6 +690,7 @@
 		int i;
 		
 		for (i=0; i < ARRAY_SIZE(crack); i++) {
+			r.in.req.req1.format_flags   = crack[i].flags;
 			r.in.req.req1.format_offered = crack[i].format_offered; 
 			r.in.req.req1.format_desired = crack[i].format_desired;
 			names[0].str = crack[i].str;



More information about the samba-cvs mailing list