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, "[EMAIL PROTECTED]", 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, "[EMAIL PROTECTED]", 
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;

Reply via email to