]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - crypto/heimdal/tests/plugin/windc.c
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / crypto / heimdal / tests / plugin / windc.c
1 #include <krb5.h>
2 #include <hdb.h>
3 #include <windc_plugin.h>
4
5 static krb5_error_code
6 windc_init(krb5_context context, void **ctx)
7 {
8     krb5_warnx(context, "windc init");
9     *ctx = NULL;
10     return 0;
11 }
12
13 static void
14 windc_fini(void *ctx)
15 {
16 }
17
18 static krb5_error_code 
19 pac_generate(void *ctx, krb5_context context,
20              struct hdb_entry_ex *client, krb5_pac *pac)
21 {
22     krb5_error_code ret;
23     krb5_data data;
24
25     krb5_warnx(context, "pac generate");
26
27     data.data = "\x00\x01";
28     data.length = 2;
29
30     ret = krb5_pac_init(context, pac);
31     if (ret)
32         return ret;
33
34     ret = krb5_pac_add_buffer(context, *pac, 1, &data);
35     if (ret)
36         return ret;
37
38     return 0;
39 }
40
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)
47 {
48     krb5_error_code ret;
49     krb5_data data;
50
51     krb5_warnx(context, "pac_verify");
52
53     ret = krb5_pac_get_buffer(context, *pac, 1, &data);
54     if (ret)
55         return ret;
56
57     krb5_data_free(&data);
58
59     return 0;
60 }
61
62 static krb5_error_code 
63 client_access(void *ctx, krb5_context context, 
64               struct hdb_entry_ex *client, KDC_REQ *req)
65 {
66     krb5_warnx(context, "client_access");
67     return 0;
68 }
69
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
77 };