document.
[heimdal.git] / tests / plugin / windc.c
blob7c78847f797d78528789761b044ac9d59a2dcfea
1 #include <krb5.h>
2 #include <hdb.h>
3 #include <windc_plugin.h>
5 static krb5_error_code
6 windc_init(krb5_context context, void **ctx)
8 krb5_warnx(context, "windc init");
9 *ctx = NULL;
10 return 0;
13 static void
14 windc_fini(void *ctx)
18 static krb5_error_code
19 pac_generate(void *ctx, krb5_context context,
20 struct hdb_entry_ex *client, krb5_pac *pac)
22 krb5_error_code ret;
23 krb5_data data;
25 krb5_warnx(context, "pac generate");
27 data.data = "\x00\x01";
28 data.length = 2;
30 ret = krb5_pac_init(context, pac);
31 if (ret)
32 return ret;
34 ret = krb5_pac_add_buffer(context, *pac, 1, &data);
35 if (ret)
36 return ret;
38 return 0;
41 static krb5_error_code
42 pac_verify(void *ctx, krb5_context context,
43 const krb5_principal client_principal,
44 struct hdb_entry_ex *client,
45 struct hdb_entry_ex *server,
46 krb5_pac *pac)
48 krb5_error_code ret;
49 krb5_data data;
51 krb5_warnx(context, "pac_verify");
53 ret = krb5_pac_get_buffer(context, *pac, 1, &data);
54 if (ret)
55 return ret;
57 krb5_data_free(&data);
59 return 0;
62 static krb5_error_code
63 client_access(void *ctx, krb5_context context,
64 struct hdb_entry_ex *client, KDC_REQ *req)
66 krb5_warnx(context, "client_access");
67 return 0;
70 krb5plugin_windc_ftable windc = {
71 KRB5_WINDC_PLUGING_MINOR,
72 windc_init,
73 windc_fini,
74 pac_generate,
75 pac_verify,
76 client_access