xref: /freebsd/crypto/krb5/src/lib/kadm5/clnt/client_rpc.c (revision b670c9bafc0e31c7609969bf374b2e80bdc00211)
1 /* -*- mode: c; c-file-style: "bsd"; indent-tabs-mode: t -*- */
2 #include <gssrpc/rpc.h>
3 #include <kadm5/kadm_rpc.h>
4 #include <krb5.h>
5 #include <kadm5/admin.h>
6 #include <string.h>  /* for memset prototype */
7 
8 #ifdef HAVE_MEMORY_H
9 #include <memory.h>
10 #endif
11 
12 /* Default timeout can be changed using clnt_control() */
13 static struct timeval TIMEOUT = { 25, 0 };
14 
15 enum clnt_stat
16 create_principal_2(cprinc_arg *argp, generic_ret *res, CLIENT *clnt)
17 {
18 	return clnt_call(clnt, CREATE_PRINCIPAL,
19 			 (xdrproc_t)xdr_cprinc_arg, (caddr_t)argp,
20 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
21 }
22 
23 enum clnt_stat
24 create_principal3_2(cprinc3_arg *argp, generic_ret *res, CLIENT *clnt)
25 {
26 	return clnt_call(clnt, CREATE_PRINCIPAL3,
27 			 (xdrproc_t)xdr_cprinc3_arg, (caddr_t)argp,
28 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
29 }
30 
31 enum clnt_stat
32 delete_principal_2(dprinc_arg *argp, generic_ret *res, CLIENT *clnt)
33 {
34 	return clnt_call(clnt, DELETE_PRINCIPAL,
35 			 (xdrproc_t)xdr_dprinc_arg, (caddr_t)argp,
36 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
37 }
38 
39 enum clnt_stat
40 modify_principal_2(mprinc_arg *argp, generic_ret *res, CLIENT *clnt)
41 {
42 	return clnt_call(clnt, MODIFY_PRINCIPAL,
43 			 (xdrproc_t)xdr_mprinc_arg, (caddr_t)argp,
44 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
45 }
46 
47 enum clnt_stat
48 rename_principal_2(rprinc_arg *argp, generic_ret *res, CLIENT *clnt)
49 {
50 	return clnt_call(clnt, RENAME_PRINCIPAL,
51 			 (xdrproc_t)xdr_rprinc_arg, (caddr_t)argp,
52 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
53 }
54 
55 enum clnt_stat
56 get_principal_2(gprinc_arg *argp, gprinc_ret *res, CLIENT *clnt)
57 {
58 	return clnt_call(clnt, GET_PRINCIPAL,
59 			 (xdrproc_t)xdr_gprinc_arg, (caddr_t)argp,
60 			 (xdrproc_t)xdr_gprinc_ret, (caddr_t)res, TIMEOUT);
61 }
62 
63 enum clnt_stat
64 get_princs_2(gprincs_arg *argp, gprincs_ret *res, CLIENT *clnt)
65 {
66 	return clnt_call(clnt, GET_PRINCS,
67 			 (xdrproc_t)xdr_gprincs_arg, (caddr_t)argp,
68 			 (xdrproc_t)xdr_gprincs_ret, (caddr_t)res, TIMEOUT);
69 }
70 
71 enum clnt_stat
72 chpass_principal_2(chpass_arg *argp, generic_ret *res, CLIENT *clnt)
73 {
74 	return clnt_call(clnt, CHPASS_PRINCIPAL,
75 			 (xdrproc_t)xdr_chpass_arg, (caddr_t)argp,
76 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
77 }
78 
79 enum clnt_stat
80 chpass_principal3_2(chpass3_arg *argp, generic_ret *res, CLIENT *clnt)
81 {
82 	return clnt_call(clnt, CHPASS_PRINCIPAL3,
83 			 (xdrproc_t)xdr_chpass3_arg, (caddr_t)argp,
84 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
85 }
86 
87 enum clnt_stat
88 setkey_principal_2(setkey_arg *argp, generic_ret *res, CLIENT *clnt)
89 {
90 	return clnt_call(clnt, SETKEY_PRINCIPAL,
91 			 (xdrproc_t)xdr_setkey_arg, (caddr_t)argp,
92 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
93 }
94 
95 enum clnt_stat
96 setkey_principal3_2(setkey3_arg *argp, generic_ret *res, CLIENT *clnt)
97 {
98 	return clnt_call(clnt, SETKEY_PRINCIPAL3,
99 			 (xdrproc_t)xdr_setkey3_arg, (caddr_t)argp,
100 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
101 }
102 
103 enum clnt_stat
104 setkey_principal4_2(setkey4_arg *argp, generic_ret *res, CLIENT *clnt)
105 {
106 	return clnt_call(clnt, SETKEY_PRINCIPAL4,
107 			 (xdrproc_t)xdr_setkey4_arg, (caddr_t)argp,
108 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
109 }
110 
111 enum clnt_stat
112 chrand_principal_2(chrand_arg *argp, chrand_ret *res, CLIENT *clnt)
113 {
114 	return clnt_call(clnt, CHRAND_PRINCIPAL,
115 			 (xdrproc_t)xdr_chrand_arg, (caddr_t)argp,
116 			 (xdrproc_t)xdr_chrand_ret, (caddr_t)res, TIMEOUT);
117 }
118 
119 enum clnt_stat
120 chrand_principal3_2(chrand3_arg *argp, chrand_ret *res, CLIENT *clnt)
121 {
122 	return clnt_call(clnt, CHRAND_PRINCIPAL3,
123 			 (xdrproc_t)xdr_chrand3_arg, (caddr_t)argp,
124 			 (xdrproc_t)xdr_chrand_ret, (caddr_t)res, TIMEOUT);
125 }
126 
127 enum clnt_stat
128 create_policy_2(cpol_arg *argp, generic_ret *res, CLIENT *clnt)
129 {
130 	return clnt_call(clnt, CREATE_POLICY,
131 			 (xdrproc_t)xdr_cpol_arg, (caddr_t)argp,
132 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
133 }
134 
135 enum clnt_stat
136 delete_policy_2(dpol_arg *argp, generic_ret *res, CLIENT *clnt)
137 {
138 	return clnt_call(clnt, DELETE_POLICY,
139 			 (xdrproc_t)xdr_dpol_arg, (caddr_t)argp,
140 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
141 }
142 
143 enum clnt_stat
144 modify_policy_2(mpol_arg *argp, generic_ret *res, CLIENT *clnt)
145 {
146 	return clnt_call(clnt, MODIFY_POLICY,
147 			 (xdrproc_t)xdr_mpol_arg, (caddr_t)argp,
148 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
149 }
150 
151 enum clnt_stat
152 get_policy_2(gpol_arg *argp, gpol_ret *res, CLIENT *clnt)
153 {
154 	return clnt_call(clnt, GET_POLICY,
155 			 (xdrproc_t)xdr_gpol_arg, (caddr_t)argp,
156 			 (xdrproc_t)xdr_gpol_ret, (caddr_t)res, TIMEOUT);
157 }
158 
159 enum clnt_stat
160 get_pols_2(gpols_arg *argp, gpols_ret *res, CLIENT *clnt)
161 {
162 	return clnt_call(clnt, GET_POLS,
163 			 (xdrproc_t)xdr_gpols_arg, (caddr_t)argp,
164 			 (xdrproc_t)xdr_gpols_ret, (caddr_t)res, TIMEOUT);
165 }
166 
167 enum clnt_stat
168 get_privs_2(void *argp, getprivs_ret *res, CLIENT *clnt)
169 {
170 	return clnt_call(clnt, GET_PRIVS,
171 			 (xdrproc_t)xdr_u_int32, (caddr_t)argp,
172 			 (xdrproc_t)xdr_getprivs_ret, (caddr_t)res, TIMEOUT);
173 }
174 
175 enum clnt_stat
176 init_2(void *argp, generic_ret *res, CLIENT *clnt)
177 {
178 	return clnt_call(clnt, INIT,
179 			 (xdrproc_t)xdr_u_int32, (caddr_t)argp,
180 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
181 }
182 
183 enum clnt_stat
184 purgekeys_2(purgekeys_arg *argp, generic_ret *res, CLIENT *clnt)
185 {
186 	return clnt_call(clnt, PURGEKEYS,
187 			 (xdrproc_t)xdr_purgekeys_arg, (caddr_t)argp,
188 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
189 }
190 
191 enum clnt_stat
192 get_strings_2(gstrings_arg *argp, gstrings_ret *res, CLIENT *clnt)
193 {
194 	return clnt_call(clnt, GET_STRINGS,
195 			 (xdrproc_t)xdr_gstrings_arg, (caddr_t)argp,
196 			 (xdrproc_t)xdr_gstrings_ret, (caddr_t)res, TIMEOUT);
197 }
198 
199 enum clnt_stat
200 set_string_2(sstring_arg *argp, generic_ret *res, CLIENT *clnt)
201 {
202 	return clnt_call(clnt, SET_STRING,
203 			 (xdrproc_t)xdr_sstring_arg, (caddr_t)argp,
204 			 (xdrproc_t)xdr_generic_ret, (caddr_t)res, TIMEOUT);
205 }
206 
207 enum clnt_stat
208 get_principal_keys_2(getpkeys_arg *argp, getpkeys_ret *res, CLIENT *clnt)
209 {
210 	return clnt_call(clnt, EXTRACT_KEYS,
211 			 (xdrproc_t)xdr_getpkeys_arg, (caddr_t)argp,
212 			 (xdrproc_t)xdr_getpkeys_ret, (caddr_t)res, TIMEOUT);
213 }
214