update client_access
[metze/heimdal/wip.git] / tests / plugin / windc.c
1 #include <krb5.h>
2 #include <hdb.h>
3 #include <kdc.h>
4 #include <windc_plugin.h>
5
6 static krb5_error_code
7 windc_init(krb5_context context, void **ctx)
8 {
9     krb5_warnx(context, "windc init");
10     *ctx = NULL;
11     return 0;
12 }
13
14 static void
15 windc_fini(void *ctx)
16 {
17 }
18
19 static krb5_error_code
20 pac_generate(void *ctx, krb5_context context,
21              struct hdb_entry_ex *client, krb5_pac *pac)
22 {
23     krb5_error_code ret;
24     krb5_data data;
25
26     krb5_warnx(context, "pac generate");
27
28     data.data = "\x00\x01";
29     data.length = 2;
30
31     ret = krb5_pac_init(context, pac);
32     if (ret)
33         return ret;
34
35     ret = krb5_pac_add_buffer(context, *pac, 1, &data);
36     if (ret)
37         return ret;
38
39     return 0;
40 }
41
42 static krb5_error_code
43 pac_verify(void *ctx, krb5_context context,
44            const krb5_principal new_ticket_client,
45            const krb5_principal delegation_proxy,
46            struct hdb_entry_ex * client,
47            struct hdb_entry_ex * server,
48            struct hdb_entry_ex * krbtgt,
49            krb5_pac *pac)
50 {
51     krb5_error_code ret;
52     krb5_data data;
53
54     krb5_warnx(context, "pac_verify");
55
56     ret = krb5_pac_get_buffer(context, *pac, 1, &data);
57     if (ret)
58         return ret;
59
60     krb5_data_free(&data);
61
62     return 0;
63 }
64
65 static krb5_error_code
66 client_access(void *ctx,
67               krb5_context context,
68               krb5_kdc_configuration *config,
69               hdb_entry_ex *client, const char *client_name,
70               hdb_entry_ex *server, const char *server_name,
71               KDC_REQ *req,
72               METHOD_DATA *data)
73 {
74     krb5_warnx(context, "client_access");
75     return 0;
76 }
77
78 krb5plugin_windc_ftable windc = {
79     KRB5_WINDC_PLUGING_MINOR,
80     windc_init,
81     windc_fini,
82     pac_generate,
83     pac_verify,
84     client_access
85 };