1 /*tests cac_RegSetKeySecurity()*/
6 int main(int argc
, char **argv
) {
7 CacServerHandle
*hnd
= NULL
;
8 TALLOC_CTX
*mem_ctx
= NULL
;
12 mem_ctx
= talloc_init("regsetval");
14 hnd
= cac_NewServerHandle(True
);
16 cac_SetAuthDataFn(hnd
, cactest_GetAuthDataFn
);
18 cac_parse_cmd_line(argc
, argv
, hnd
);
20 if(!cac_Connect(hnd
, NULL
)) {
21 fprintf(stderr
, "Could not connect to server %s. Error: %s\n", hnd
->server
, nt_errstr(hnd
->status
));
25 struct RegOpenKey rok
;
28 printf("enter key to query: ");
29 cactest_readline(stdin
, tmp
);
31 rok
.in
.name
= talloc_strdup(mem_ctx
, tmp
);
32 rok
.in
.access
= REG_KEY_ALL
;
34 if(!cac_RegOpenKey(hnd
, mem_ctx
, &rok
)) {
35 fprintf(stderr
, "Could not open key %s. Error %s\n", rok
.in
.name
, nt_errstr(hnd
->status
));
39 struct RegGetKeySecurity rks
;
42 rks
.in
.key
= rok
.out
.key
;
43 rks
.in
.info_type
= ALL_SECURITY_INFORMATION
;
45 if(!cac_RegGetKeySecurity(hnd
, mem_ctx
, &rks
)) {
46 fprintf(stderr
, "Could not query security for %s. Error: %s\n", rok
.in
.name
, nt_errstr(hnd
->status
));
50 printf("resetting key security...\n");
52 struct RegSetKeySecurity rss
;
55 rss
.in
.key
= rok
.out
.key
;
56 rss
.in
.info_type
= ALL_SECURITY_INFORMATION
;
57 rss
.in
.size
= rks
.out
.size
;
58 rss
.in
.descriptor
= rks
.out
.descriptor
;
60 if(!cac_RegSetKeySecurity(hnd
, mem_ctx
, &rss
)) {
61 fprintf(stderr
, "Could not set security. Error %s\n", nt_errstr(hnd
->status
));
65 cac_RegClose(hnd
, mem_ctx
, rok
.out
.key
);
69 talloc_destroy(mem_ctx
);