diff options
Diffstat (limited to 'examples/libmsrpc/test/lsa/lsatrust.c')
-rw-r--r-- | examples/libmsrpc/test/lsa/lsatrust.c | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/examples/libmsrpc/test/lsa/lsatrust.c b/examples/libmsrpc/test/lsa/lsatrust.c deleted file mode 100644 index 6ad293f832..0000000000 --- a/examples/libmsrpc/test/lsa/lsatrust.c +++ /dev/null @@ -1,151 +0,0 @@ -/*queries trusted domain information*/ - -#include "libmsrpc.h" -#include "includes.h" - -#define MAX_STRING_LEN 50; - -void print_info(LSA_TRUSTED_DOMAIN_INFO *info) { - switch(info->info_class) { - case CAC_INFO_TRUSTED_DOMAIN_FULL_INFO: - case CAC_INFO_TRUSTED_DOMAIN_INFO_ALL: - printf(" Domain Name: %s\n", unistr2_static(&info->info_ex.domain_name.unistring)); - printf(" Netbios Name: %s\n", unistr2_static(&info->info_ex.netbios_name.unistring)); - printf(" Domain Sid: %s\n", sid_string_static(&info->info_ex.sid.sid)); - printf(" Trust direction: %d\n", info->info_ex.trust_direction); - printf(" Trust Type: %d\n", info->info_ex.trust_type); - printf(" Trust attr: %d\n", info->info_ex.trust_attributes); - printf(" Posix Offset: %d\n", info->posix_offset.posix_offset); - break; - } -} - -int main() { - CacServerHandle *hnd = NULL; - TALLOC_CTX *mem_ctx = NULL; - POLICY_HND *lsa_pol = NULL; - - int i; - - mem_ctx = talloc_init("lsatrust"); - - hnd = cac_NewServerHandle(False); - - /*malloc some memory so get_auth_data_fn can work*/ - hnd->username = SMB_MALLOC_ARRAY(char, sizeof(fstring)); - hnd->domain = SMB_MALLOC_ARRAY(char, sizeof(fstring)); - hnd->netbios_name = SMB_MALLOC_ARRAY(char, sizeof(fstring)); - hnd->password = SMB_MALLOC_ARRAY(char, sizeof(fstring)); - - hnd->server = SMB_MALLOC_ARRAY(char, sizeof(fstring)); - - - printf("Server: "); - fscanf(stdin, "%s", hnd->server); - - printf("Connecting to server....\n"); - - if(!cac_Connect(hnd, NULL)) { - fprintf(stderr, "Could not connect to server.\n Error: %s\n errno %s\n", nt_errstr(hnd->status), strerror(errno)); - cac_FreeHandle(hnd); - exit(-1); - } - - printf("Connected to server\n"); - - struct LsaOpenPolicy lop; - ZERO_STRUCT(lop); - - lop.in.access = SEC_RIGHT_MAXIMUM_ALLOWED; - lop.in.security_qos = True; - - - if(!cac_LsaOpenPolicy(hnd, mem_ctx, &lop)) { - fprintf(stderr, "Could not open policy handle.\n Error: %s\n", nt_errstr(hnd->status)); - cac_FreeHandle(hnd); - exit(-1); - } - - lsa_pol = lop.out.pol; - - printf("Enumerating Trusted Domains\n"); - - struct LsaEnumTrustedDomains etd; - ZERO_STRUCT(etd); - - etd.in.pol = lsa_pol; - - while(cac_LsaEnumTrustedDomains(hnd, mem_ctx, &etd)) { - printf(" Enumerated %d domains\n", etd.out.num_domains); - - for(i = 0; i < etd.out.num_domains; i++) { - printf(" Name: %s\n", etd.out.domain_names[i]); - printf(" SID: %s\n", sid_string_static(&etd.out.domain_sids[i])); - - printf("\n Attempting to open domain...\n"); - - struct LsaOpenTrustedDomain otd; - ZERO_STRUCT(otd); - - otd.in.pol = lsa_pol; - otd.in.domain_sid = &etd.out.domain_sids[i]; - otd.in.access = SEC_RIGHT_MAXIMUM_ALLOWED; - - /*try to query trusted domain info by name*/ - struct LsaQueryTrustedDomainInfo qtd; - ZERO_STRUCT(qtd); - - qtd.in.pol = lsa_pol; - qtd.in.domain_name = etd.out.domain_names[i]; - - - int j; - for(j = 0; j < 100; j++ ) { - qtd.in.info_class = j; - - printf(" Querying trustdom by name\n"); - if(!cac_LsaQueryTrustedDomainInfo(hnd, mem_ctx, &qtd)) { - fprintf(stderr, " could not query trusted domain info.\n Error %s\n", nt_errstr(hnd->status)); - continue; - } - - printf(" info_class %d succeeded\n", j); - printf(" Query result:\n"); - printf(" size %d\n", sizeof(*qtd.out.info)); - } - - /*try to query trusted domain info by SID*/ - printf(" Querying trustdom by sid\n"); - qtd.in.domain_sid = &etd.out.domain_sids[i]; - if(!cac_LsaQueryTrustedDomainInfo(hnd, mem_ctx, &qtd)) { - fprintf(stderr, " could not query trusted domain info.\n Error %s\n", nt_errstr(hnd->status)); - continue; - } - - printf(" Query result:\n"); -/* print_info(qtd.out.info);*/ - - if(CAC_OP_FAILED(hnd->status)) { - fprintf(stderr, " Could not enum sids.\n Error: %s\n", nt_errstr(hnd->status)); - continue; - } - } - - printf("\n"); - } - - if(CAC_OP_FAILED(hnd->status)) { - fprintf(stderr, "Error while enumerating trusted domains.\n Error: %s\n", nt_errstr(hnd->status)); - goto done; - } - -done: - if(!cac_LsaClosePolicy(hnd, mem_ctx, lsa_pol)) { - fprintf(stderr, "Could not close policy handle.\n Error: %s\n", nt_errstr(hnd->status)); - } - - cac_FreeHandle(hnd); - talloc_destroy(mem_ctx); - - return 0; -} |