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