xref: /netbsd-src/crypto/external/bsd/heimdal/include/kadm5-protos.h (revision d3273b5b76f5afaafe308cead5511dbb8df8c5e9)
1170f4091Selric /* This is a generated file */
2170f4091Selric #ifndef __kadm5_protos_h__
3170f4091Selric #define __kadm5_protos_h__
4*d3273b5bSchristos #ifndef DOXY
5170f4091Selric 
6170f4091Selric #include <stdarg.h>
7170f4091Selric 
8170f4091Selric #ifdef __cplusplus
9170f4091Selric extern "C" {
10170f4091Selric #endif
11170f4091Selric 
12170f4091Selric kadm5_ret_t
13170f4091Selric kadm5_ad_init_with_password (
14170f4091Selric 	const char */*client_name*/,
15170f4091Selric 	const char */*password*/,
16170f4091Selric 	const char */*service_name*/,
17170f4091Selric 	kadm5_config_params */*realm_params*/,
18170f4091Selric 	unsigned long /*struct_version*/,
19170f4091Selric 	unsigned long /*api_version*/,
20170f4091Selric 	void **/*server_handle*/);
21170f4091Selric 
22170f4091Selric kadm5_ret_t
23170f4091Selric kadm5_ad_init_with_password_ctx (
24170f4091Selric 	krb5_context /*context*/,
25170f4091Selric 	const char */*client_name*/,
26170f4091Selric 	const char */*password*/,
27170f4091Selric 	const char */*service_name*/,
28170f4091Selric 	kadm5_config_params */*realm_params*/,
29170f4091Selric 	unsigned long /*struct_version*/,
30170f4091Selric 	unsigned long /*api_version*/,
31170f4091Selric 	void **/*server_handle*/);
32170f4091Selric 
33170f4091Selric krb5_error_code
34170f4091Selric kadm5_add_passwd_quality_verifier (
35170f4091Selric 	krb5_context /*context*/,
36170f4091Selric 	const char */*check_library*/);
37170f4091Selric 
38*d3273b5bSchristos int
39*d3273b5bSchristos kadm5_all_keys_are_bogus (
40*d3273b5bSchristos 	size_t /*n_keys*/,
41*d3273b5bSchristos 	krb5_key_data */*keys*/);
42*d3273b5bSchristos 
43170f4091Selric const char *
44170f4091Selric kadm5_check_password_quality (
45170f4091Selric 	krb5_context /*context*/,
46170f4091Selric 	krb5_principal /*principal*/,
47170f4091Selric 	krb5_data */*pwd_data*/);
48170f4091Selric 
49170f4091Selric kadm5_ret_t
50170f4091Selric kadm5_chpass_principal (
51170f4091Selric 	void */*server_handle*/,
52170f4091Selric 	krb5_principal /*princ*/,
53170f4091Selric 	const char */*password*/);
54170f4091Selric 
55170f4091Selric kadm5_ret_t
56*d3273b5bSchristos kadm5_chpass_principal_3 (
57*d3273b5bSchristos 	void */*server_handle*/,
58*d3273b5bSchristos 	krb5_principal /*princ*/,
59*d3273b5bSchristos 	krb5_boolean /*keepold*/,
60*d3273b5bSchristos 	int /*n_ks_tuple*/,
61*d3273b5bSchristos 	krb5_key_salt_tuple */*ks_tuple*/,
62*d3273b5bSchristos 	const char */*password*/);
63*d3273b5bSchristos 
64*d3273b5bSchristos kadm5_ret_t
65170f4091Selric kadm5_chpass_principal_with_key (
66170f4091Selric 	void */*server_handle*/,
67170f4091Selric 	krb5_principal /*princ*/,
68170f4091Selric 	int /*n_key_data*/,
69170f4091Selric 	krb5_key_data */*key_data*/);
70170f4091Selric 
71170f4091Selric kadm5_ret_t
72*d3273b5bSchristos kadm5_chpass_principal_with_key_3 (
73*d3273b5bSchristos 	void */*server_handle*/,
74*d3273b5bSchristos 	krb5_principal /*princ*/,
75*d3273b5bSchristos 	int /*keepold*/,
76*d3273b5bSchristos 	int /*n_key_data*/,
77*d3273b5bSchristos 	krb5_key_data */*key_data*/);
78*d3273b5bSchristos 
79*d3273b5bSchristos kadm5_ret_t
80*d3273b5bSchristos kadm5_create_policy (
81*d3273b5bSchristos 	void */*server_handle*/,
82*d3273b5bSchristos 	kadm5_policy_ent_t /*policy*/,
83*d3273b5bSchristos 	long /*mask*/);
84*d3273b5bSchristos 
85*d3273b5bSchristos kadm5_ret_t
86170f4091Selric kadm5_create_principal (
87170f4091Selric 	void */*server_handle*/,
88170f4091Selric 	kadm5_principal_ent_t /*princ*/,
89170f4091Selric 	uint32_t /*mask*/,
90170f4091Selric 	const char */*password*/);
91170f4091Selric 
92170f4091Selric kadm5_ret_t
93*d3273b5bSchristos kadm5_create_principal_3 (
94*d3273b5bSchristos 	void */*server_handle*/,
95*d3273b5bSchristos 	kadm5_principal_ent_t /*princ*/,
96*d3273b5bSchristos 	uint32_t /*mask*/,
97*d3273b5bSchristos 	int /*n_ks_tuple*/,
98*d3273b5bSchristos 	krb5_key_salt_tuple */*ks_tuple*/,
99*d3273b5bSchristos 	char */*password*/);
100*d3273b5bSchristos 
101*d3273b5bSchristos /**
102*d3273b5bSchristos  * Extract decrypted keys from kadm5_principal_ent_t object.  Mostly a
103*d3273b5bSchristos  * no-op for Heimdal because we fetch the entry with decrypted keys.
104*d3273b5bSchristos  * Sadly this is not fully a no-op, as we have to allocate a copy.
105*d3273b5bSchristos  *
106*d3273b5bSchristos  * @server_handle is the kadm5 handle
107*d3273b5bSchristos  * @entry is the HDB entry for the principal in question
108*d3273b5bSchristos  * @ktype is the enctype to get a key for, or -1 to get the first one
109*d3273b5bSchristos  * @stype is the salttype to get a key for, or -1 to get the first match
110*d3273b5bSchristos  * @kvno is the kvno to search for, or -1 to get the first match (highest kvno)
111*d3273b5bSchristos  * @keyblock is where the key will be placed
112*d3273b5bSchristos  * @keysalt, if not NULL, is where the salt will be placed
113*d3273b5bSchristos  * @kvnop, if not NULL, is where the selected kvno will be placed
114*d3273b5bSchristos  */
115*d3273b5bSchristos 
116*d3273b5bSchristos kadm5_ret_t
117*d3273b5bSchristos kadm5_decrypt_key (
118*d3273b5bSchristos 	void */*server_handle*/,
119*d3273b5bSchristos 	kadm5_principal_ent_t /*entry*/,
120*d3273b5bSchristos 	int32_t /*ktype*/,
121*d3273b5bSchristos 	int32_t /*stype*/,
122*d3273b5bSchristos 	int32_t /*kvno*/,
123*d3273b5bSchristos 	krb5_keyblock */*keyblock*/,
124*d3273b5bSchristos 	krb5_keysalt */*keysalt*/,
125*d3273b5bSchristos 	int */*kvnop*/);
126*d3273b5bSchristos 
127*d3273b5bSchristos kadm5_ret_t
128*d3273b5bSchristos kadm5_delete_policy (
129*d3273b5bSchristos 	void */*server_handle*/,
130*d3273b5bSchristos 	char */*name*/);
131*d3273b5bSchristos 
132*d3273b5bSchristos kadm5_ret_t
133170f4091Selric kadm5_delete_principal (
134170f4091Selric 	void */*server_handle*/,
135170f4091Selric 	krb5_principal /*princ*/);
136170f4091Selric 
137170f4091Selric kadm5_ret_t
138170f4091Selric kadm5_destroy (void */*server_handle*/);
139170f4091Selric 
140170f4091Selric kadm5_ret_t
141170f4091Selric kadm5_flush (void */*server_handle*/);
142170f4091Selric 
143170f4091Selric void
144170f4091Selric kadm5_free_key_data (
145170f4091Selric 	void */*server_handle*/,
146170f4091Selric 	int16_t */*n_key_data*/,
147170f4091Selric 	krb5_key_data */*key_data*/);
148170f4091Selric 
149170f4091Selric void
150170f4091Selric kadm5_free_name_list (
151170f4091Selric 	void */*server_handle*/,
152170f4091Selric 	char **/*names*/,
153170f4091Selric 	int */*count*/);
154170f4091Selric 
155*d3273b5bSchristos kadm5_ret_t
156*d3273b5bSchristos kadm5_free_policy_ent (kadm5_policy_ent_t /*ent*/);
157*d3273b5bSchristos 
158170f4091Selric void
159170f4091Selric kadm5_free_principal_ent (
160170f4091Selric 	void */*server_handle*/,
161170f4091Selric 	kadm5_principal_ent_t /*princ*/);
162170f4091Selric 
163170f4091Selric kadm5_ret_t
164*d3273b5bSchristos kadm5_get_policies (
165*d3273b5bSchristos 	void */*server_handle*/,
166*d3273b5bSchristos 	char */*exp*/,
167*d3273b5bSchristos 	char ***/*pols*/,
168*d3273b5bSchristos 	int */*count*/);
169*d3273b5bSchristos 
170*d3273b5bSchristos kadm5_ret_t
171*d3273b5bSchristos kadm5_get_policy (
172*d3273b5bSchristos 	void */*server_handle*/,
173*d3273b5bSchristos 	char */*policy*/,
174*d3273b5bSchristos 	kadm5_policy_ent_t /*ent*/);
175*d3273b5bSchristos 
176*d3273b5bSchristos kadm5_ret_t
177170f4091Selric kadm5_get_principal (
178170f4091Selric 	void */*server_handle*/,
179170f4091Selric 	krb5_principal /*princ*/,
180170f4091Selric 	kadm5_principal_ent_t /*out*/,
181170f4091Selric 	uint32_t /*mask*/);
182170f4091Selric 
183170f4091Selric kadm5_ret_t
184170f4091Selric kadm5_get_principals (
185170f4091Selric 	void */*server_handle*/,
186170f4091Selric 	const char */*expression*/,
187170f4091Selric 	char ***/*princs*/,
188170f4091Selric 	int */*count*/);
189170f4091Selric 
190170f4091Selric kadm5_ret_t
191170f4091Selric kadm5_get_privs (
192170f4091Selric 	void */*server_handle*/,
193170f4091Selric 	uint32_t */*privs*/);
194170f4091Selric 
195170f4091Selric kadm5_ret_t
196170f4091Selric kadm5_init_with_creds (
197170f4091Selric 	const char */*client_name*/,
198170f4091Selric 	krb5_ccache /*ccache*/,
199170f4091Selric 	const char */*service_name*/,
200170f4091Selric 	kadm5_config_params */*realm_params*/,
201170f4091Selric 	unsigned long /*struct_version*/,
202170f4091Selric 	unsigned long /*api_version*/,
203170f4091Selric 	void **/*server_handle*/);
204170f4091Selric 
205170f4091Selric kadm5_ret_t
206170f4091Selric kadm5_init_with_creds_ctx (
207170f4091Selric 	krb5_context /*context*/,
208170f4091Selric 	const char */*client_name*/,
209170f4091Selric 	krb5_ccache /*ccache*/,
210170f4091Selric 	const char */*service_name*/,
211170f4091Selric 	kadm5_config_params */*realm_params*/,
212170f4091Selric 	unsigned long /*struct_version*/,
213170f4091Selric 	unsigned long /*api_version*/,
214170f4091Selric 	void **/*server_handle*/);
215170f4091Selric 
216170f4091Selric kadm5_ret_t
217170f4091Selric kadm5_init_with_password (
218170f4091Selric 	const char */*client_name*/,
219170f4091Selric 	const char */*password*/,
220170f4091Selric 	const char */*service_name*/,
221170f4091Selric 	kadm5_config_params */*realm_params*/,
222170f4091Selric 	unsigned long /*struct_version*/,
223170f4091Selric 	unsigned long /*api_version*/,
224170f4091Selric 	void **/*server_handle*/);
225170f4091Selric 
226170f4091Selric kadm5_ret_t
227170f4091Selric kadm5_init_with_password_ctx (
228170f4091Selric 	krb5_context /*context*/,
229170f4091Selric 	const char */*client_name*/,
230170f4091Selric 	const char */*password*/,
231170f4091Selric 	const char */*service_name*/,
232170f4091Selric 	kadm5_config_params */*realm_params*/,
233170f4091Selric 	unsigned long /*struct_version*/,
234170f4091Selric 	unsigned long /*api_version*/,
235170f4091Selric 	void **/*server_handle*/);
236170f4091Selric 
237170f4091Selric kadm5_ret_t
238170f4091Selric kadm5_init_with_skey (
239170f4091Selric 	const char */*client_name*/,
240170f4091Selric 	const char */*keytab*/,
241170f4091Selric 	const char */*service_name*/,
242170f4091Selric 	kadm5_config_params */*realm_params*/,
243170f4091Selric 	unsigned long /*struct_version*/,
244170f4091Selric 	unsigned long /*api_version*/,
245170f4091Selric 	void **/*server_handle*/);
246170f4091Selric 
247170f4091Selric kadm5_ret_t
248170f4091Selric kadm5_init_with_skey_ctx (
249170f4091Selric 	krb5_context /*context*/,
250170f4091Selric 	const char */*client_name*/,
251170f4091Selric 	const char */*keytab*/,
252170f4091Selric 	const char */*service_name*/,
253170f4091Selric 	kadm5_config_params */*realm_params*/,
254170f4091Selric 	unsigned long /*struct_version*/,
255170f4091Selric 	unsigned long /*api_version*/,
256170f4091Selric 	void **/*server_handle*/);
257170f4091Selric 
258170f4091Selric kadm5_ret_t
259*d3273b5bSchristos kadm5_lock (void */*server_handle*/);
260*d3273b5bSchristos 
261*d3273b5bSchristos kadm5_ret_t
262*d3273b5bSchristos kadm5_modify_policy (
263*d3273b5bSchristos 	void */*server_handle*/,
264*d3273b5bSchristos 	kadm5_policy_ent_t /*policy*/,
265*d3273b5bSchristos 	uint32_t /*mask*/);
266*d3273b5bSchristos 
267*d3273b5bSchristos kadm5_ret_t
268170f4091Selric kadm5_modify_principal (
269170f4091Selric 	void */*server_handle*/,
270170f4091Selric 	kadm5_principal_ent_t /*princ*/,
271170f4091Selric 	uint32_t /*mask*/);
272170f4091Selric 
273170f4091Selric kadm5_ret_t
274170f4091Selric kadm5_randkey_principal (
275170f4091Selric 	void */*server_handle*/,
276170f4091Selric 	krb5_principal /*princ*/,
277170f4091Selric 	krb5_keyblock **/*new_keys*/,
278170f4091Selric 	int */*n_keys*/);
279170f4091Selric 
280170f4091Selric kadm5_ret_t
281*d3273b5bSchristos kadm5_randkey_principal_3 (
282*d3273b5bSchristos 	void */*server_handle*/,
283*d3273b5bSchristos 	krb5_principal /*princ*/,
284*d3273b5bSchristos 	krb5_boolean /*keepold*/,
285*d3273b5bSchristos 	int /*n_ks_tuple*/,
286*d3273b5bSchristos 	krb5_key_salt_tuple */*ks_tuple*/,
287*d3273b5bSchristos 	krb5_keyblock **/*new_keys*/,
288*d3273b5bSchristos 	int */*n_keys*/);
289*d3273b5bSchristos 
290*d3273b5bSchristos kadm5_ret_t
291170f4091Selric kadm5_rename_principal (
292170f4091Selric 	void */*server_handle*/,
293170f4091Selric 	krb5_principal /*source*/,
294170f4091Selric 	krb5_principal /*target*/);
295170f4091Selric 
296170f4091Selric kadm5_ret_t
297170f4091Selric kadm5_ret_key_data (
298170f4091Selric 	krb5_storage */*sp*/,
299170f4091Selric 	krb5_key_data */*key*/);
300170f4091Selric 
301170f4091Selric kadm5_ret_t
302170f4091Selric kadm5_ret_principal_ent (
303170f4091Selric 	krb5_storage */*sp*/,
304170f4091Selric 	kadm5_principal_ent_t /*princ*/);
305170f4091Selric 
306170f4091Selric kadm5_ret_t
307170f4091Selric kadm5_ret_principal_ent_mask (
308170f4091Selric 	krb5_storage */*sp*/,
309170f4091Selric 	kadm5_principal_ent_t /*princ*/,
310170f4091Selric 	uint32_t */*mask*/);
311170f4091Selric 
312170f4091Selric kadm5_ret_t
313170f4091Selric kadm5_ret_tl_data (
314170f4091Selric 	krb5_storage */*sp*/,
315170f4091Selric 	krb5_tl_data */*tl*/);
316170f4091Selric 
317*d3273b5bSchristos /**
318*d3273b5bSchristos  * This function is allows the caller to set new keys for a principal.
319*d3273b5bSchristos  * This is a trivial wrapper around kadm5_setkey_principal_3().
320*d3273b5bSchristos  */
321*d3273b5bSchristos 
322*d3273b5bSchristos kadm5_ret_t
323*d3273b5bSchristos kadm5_setkey_principal (
324*d3273b5bSchristos 	void */*server_handle*/,
325*d3273b5bSchristos 	krb5_principal /*princ*/,
326*d3273b5bSchristos 	krb5_keyblock */*new_keys*/,
327*d3273b5bSchristos 	int /*n_keys*/);
328*d3273b5bSchristos 
329*d3273b5bSchristos /**
330*d3273b5bSchristos  * This function is allows the caller to set new keys for a principal.
331*d3273b5bSchristos  * This is a simple wrapper around kadm5_get_principal() and
332*d3273b5bSchristos  * kadm5_modify_principal().
333*d3273b5bSchristos  */
334*d3273b5bSchristos 
335*d3273b5bSchristos kadm5_ret_t
336*d3273b5bSchristos kadm5_setkey_principal_3 (
337*d3273b5bSchristos 	void */*server_handle*/,
338*d3273b5bSchristos 	krb5_principal /*princ*/,
339*d3273b5bSchristos 	krb5_boolean /*keepold*/,
340*d3273b5bSchristos 	int /*n_ks_tuple*/,
341*d3273b5bSchristos 	krb5_key_salt_tuple */*ks_tuple*/,
342*d3273b5bSchristos 	krb5_keyblock */*keyblocks*/,
343*d3273b5bSchristos 	int /*n_keys*/);
344*d3273b5bSchristos 
345170f4091Selric void
346170f4091Selric kadm5_setup_passwd_quality_check (
347170f4091Selric 	krb5_context /*context*/,
348170f4091Selric 	const char */*check_library*/,
349170f4091Selric 	const char */*check_function*/);
350170f4091Selric 
351*d3273b5bSchristos int
352*d3273b5bSchristos kadm5_some_keys_are_bogus (
353*d3273b5bSchristos 	size_t /*n_keys*/,
354*d3273b5bSchristos 	krb5_key_data */*keys*/);
355*d3273b5bSchristos 
356*d3273b5bSchristos kadm5_ret_t
357*d3273b5bSchristos kadm5_store_fake_key_data (
358*d3273b5bSchristos 	krb5_storage */*sp*/,
359*d3273b5bSchristos 	krb5_key_data */*key*/);
360*d3273b5bSchristos 
361170f4091Selric kadm5_ret_t
362170f4091Selric kadm5_store_key_data (
363170f4091Selric 	krb5_storage */*sp*/,
364170f4091Selric 	krb5_key_data */*key*/);
365170f4091Selric 
366170f4091Selric kadm5_ret_t
367170f4091Selric kadm5_store_principal_ent (
368170f4091Selric 	krb5_storage */*sp*/,
369170f4091Selric 	kadm5_principal_ent_t /*princ*/);
370170f4091Selric 
371170f4091Selric kadm5_ret_t
372170f4091Selric kadm5_store_principal_ent_mask (
373170f4091Selric 	krb5_storage */*sp*/,
374170f4091Selric 	kadm5_principal_ent_t /*princ*/,
375170f4091Selric 	uint32_t /*mask*/);
376170f4091Selric 
377170f4091Selric kadm5_ret_t
378*d3273b5bSchristos kadm5_store_principal_ent_nokeys (
379*d3273b5bSchristos 	krb5_storage */*sp*/,
380*d3273b5bSchristos 	kadm5_principal_ent_t /*princ*/);
381*d3273b5bSchristos 
382*d3273b5bSchristos kadm5_ret_t
383170f4091Selric kadm5_store_tl_data (
384170f4091Selric 	krb5_storage */*sp*/,
385170f4091Selric 	krb5_tl_data */*tl*/);
386170f4091Selric 
387*d3273b5bSchristos kadm5_ret_t
388*d3273b5bSchristos kadm5_unlock (void */*server_handle*/);
389*d3273b5bSchristos 
390170f4091Selric #ifdef __cplusplus
391170f4091Selric }
392170f4091Selric #endif
393170f4091Selric 
394*d3273b5bSchristos #endif /* DOXY */
395170f4091Selric #endif /* __kadm5_protos_h__ */
396