switch to rk_strerror_r
[heimdal.git] / tests / plugin / windc.c
blob6ec5a830256a2379627558e2c8fcbe0ddb998ead
1 #include <krb5.h>
2 #include <hdb.h>
3 #include <kdc.h>
4 #include <windc_plugin.h>
6 static krb5_error_code
7 windc_init(krb5_context context, void **ctx)
9 krb5_warnx(context, "windc init");
10 *ctx = NULL;
11 return 0;
14 static void
15 windc_fini(void *ctx)
19 static krb5_error_code
20 pac_generate(void *ctx, krb5_context context,
21 struct hdb_entry_ex *client, krb5_pac *pac)
23 krb5_error_code ret;
24 krb5_data data;
26 krb5_warnx(context, "pac generate");
28 data.data = "\x00\x01";
29 data.length = 2;
31 ret = krb5_pac_init(context, pac);
32 if (ret)
33 return ret;
35 ret = krb5_pac_add_buffer(context, *pac, 1, &data);
36 if (ret)
37 return ret;
39 return 0;
42 static krb5_error_code
43 pac_verify(void *ctx, krb5_context context,
44 const krb5_principal client_principal,
45 struct hdb_entry_ex *client,
46 struct hdb_entry_ex *server,
47 krb5_pac *pac)
49 krb5_error_code ret;
50 krb5_data data;
52 krb5_warnx(context, "pac_verify");
54 ret = krb5_pac_get_buffer(context, *pac, 1, &data);
55 if (ret)
56 return ret;
58 krb5_data_free(&data);
60 return 0;
63 static krb5_error_code
64 client_access(void *ctx,
65 krb5_context context,
66 krb5_kdc_configuration *config,
67 hdb_entry_ex *client, const char *client_name,
68 hdb_entry_ex *server, const char *server_name,
69 KDC_REQ *req,
70 krb5_data *e_data)
72 krb5_warnx(context, "client_access");
73 return 0;
76 krb5plugin_windc_ftable windc = {
77 KRB5_WINDC_PLUGING_MINOR,
78 windc_init,
79 windc_fini,
80 pac_generate,
81 pac_verify,
82 client_access