1 /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 #include <kadm5/admin.h>
3 #include <com_err.h>
4 #include <stdio.h>
5 #include <krb5.h>
6 #include <sys/socket.h>
7 #include <sys/file.h>
8 #include <unistd.h>
9 #include <netinet/in.h>
10 #ifdef CLIENT_TEST
11 #include <kadm5/client_internal.h>
12 #else
13 #include <kadm5/server_internal.h>
14 #include <kadm5/admin.h>
15 #endif
16
main(int argc,char * argv[])17 int main(int argc, char *argv[])
18 {
19 kadm5_ret_t ret;
20 void *server_handle;
21 kadm5_server_handle_t handle;
22 kadm5_server_handle_rec orig_handle;
23 kadm5_policy_ent_rec pol;
24 kadm5_principal_ent_t princ;
25 kadm5_principal_ent_rec kprinc;
26 krb5_keyblock *key;
27 krb5_principal tprinc;
28 krb5_context context;
29
30
31 kadm5_init_krb5_context(&context);
32
33 ret = kadm5_init(context, "admin/none", "admin", KADM5_ADMIN_SERVICE, NULL,
34 KADM5_STRUCT_VERSION, KADM5_API_VERSION_4, NULL,
35 &server_handle);
36 if(ret != KADM5_OK) {
37 com_err("test", ret, "init");
38 exit(2);
39 }
40 handle = (kadm5_server_handle_t) server_handle;
41 orig_handle = *handle;
42 handle->magic_number = KADM5_STRUCT_VERSION;
43 krb5_parse_name(context, "testuser", &tprinc);
44 ret = kadm5_get_principal(server_handle, tprinc, &kprinc,
45 KADM5_PRINCIPAL_NORMAL_MASK);
46 if(ret != KADM5_BAD_SERVER_HANDLE) {
47 fprintf(stderr, "%s -- returned -- %s\n", "get-principal",
48 error_message(ret));
49 exit(1);
50 }
51
52 ret = kadm5_get_policy(server_handle, "pol1", &pol);
53 if(ret != KADM5_BAD_SERVER_HANDLE) {
54 fprintf(stderr, "%s -- returned -- %s\n", "get-policy",
55 error_message(ret));
56 exit(1);
57 }
58
59 princ = &kprinc;
60 ret = kadm5_create_principal(server_handle, princ, KADM5_PRINCIPAL, "pass");
61 if(ret != KADM5_BAD_SERVER_HANDLE) {
62 fprintf(stderr, "%s -- returned -- %s\n", "create-principal",
63 error_message(ret));
64 exit(1);
65 }
66
67 ret = kadm5_create_policy(server_handle, &pol, KADM5_POLICY);
68 if(ret != KADM5_BAD_SERVER_HANDLE) {
69 fprintf(stderr, "%s -- returned -- %s\n", "create-policy",
70 error_message(ret));
71 exit(1);
72 }
73
74 ret = kadm5_modify_principal(server_handle, princ, KADM5_PW_EXPIRATION);
75 if(ret != KADM5_BAD_SERVER_HANDLE) {
76 fprintf(stderr, "%s -- returned -- %s\n", "modify-principal",
77 error_message(ret));
78 exit(1);
79 }
80
81 ret = kadm5_modify_policy(server_handle, &pol, KADM5_PW_MAX_LIFE);
82 if(ret != KADM5_BAD_SERVER_HANDLE) {
83 fprintf(stderr, "%s -- returned -- %s\n", "modify-policy",
84 error_message(ret));
85 exit(1);
86 }
87
88 ret = kadm5_delete_principal(server_handle, tprinc);
89 if(ret != KADM5_BAD_SERVER_HANDLE) {
90 fprintf(stderr, "%s -- returned -- %s\n", "delete-principal",
91 error_message(ret));
92 exit(1);
93 }
94
95 ret = kadm5_delete_policy(server_handle, "pol1");
96 if(ret != KADM5_BAD_SERVER_HANDLE) {
97 fprintf(stderr, "%s -- returned -- %s\n", "delete-policy",
98 error_message(ret));
99 exit(1);
100 }
101
102 ret = kadm5_chpass_principal(server_handle, tprinc, "FooBar");
103 if(ret != KADM5_BAD_SERVER_HANDLE) {
104 fprintf(stderr, "%s -- returned -- %s\n", "chpass",
105 error_message(ret));
106 exit(1);
107 }
108 ret = kadm5_randkey_principal(server_handle, tprinc, &key, NULL);
109 if(ret != KADM5_BAD_SERVER_HANDLE) {
110 fprintf(stderr, "%s -- returned -- %s\n", "randkey",
111 error_message(ret));
112 exit(1);
113 }
114
115 ret = kadm5_rename_principal(server_handle, tprinc, tprinc);
116 if(ret != KADM5_BAD_SERVER_HANDLE) {
117 fprintf(stderr, "%s -- returned -- %s\n", "rename",
118 error_message(ret));
119 exit(1);
120 }
121
122 ret = kadm5_destroy(server_handle);
123 if(ret != KADM5_BAD_SERVER_HANDLE) {
124 fprintf(stderr, "%s -- returned -- %s\n", "destroy",
125 error_message(ret));
126 exit(1);
127 }
128
129 *handle = orig_handle;
130 ret = kadm5_destroy(server_handle);
131 if (ret != KADM5_OK) {
132 fprintf(stderr, "valid %s -- returned -- %s\n", "destroy",
133 error_message(ret));
134 exit(1);
135 }
136
137 krb5_free_principal(context, tprinc);
138 krb5_free_context(context);
139 exit(0);
140 }
141