diff --git a/lib/krb5/krb5.h b/lib/krb5/krb5.h index 12384c0a2..3cae3114b 100644 --- a/lib/krb5/krb5.h +++ b/lib/krb5/krb5.h @@ -314,11 +314,23 @@ struct krb5_rcache_data; typedef struct krb5_rcache_data *krb5_rcache; typedef Authenticator krb5_donot_reply; -typedef struct krb5_keytab_data { - char *filename; -}krb5_keytab_data; +struct krb5_keytab_data { + char *prefix; + krb5_error_code (*resolve)(krb5_context, const char*, krb5_keytab); + krb5_error_code (*get_name)(krb5_context, krb5_keytab, char*, size_t); + krb5_error_code (*close)(krb5_context, krb5_keytab); + krb5_error_code (*get)(krb5_context, krb5_keytab, krb5_const_principal, + krb5_kvno, krb5_keytype, krb5_keytab_entry*); + krb5_error_code (*start_seq_get)(krb5_context, krb5_keytab, krb5_kt_cursor*); + krb5_error_code (*next_entry)(krb5_context, krb5_keytab, + krb5_keytab_entry*, krb5_kt_cursor*); + krb5_error_code (*end_seq_get)(krb5_context, krb5_keytab, krb5_kt_cursor*); + krb5_error_code (*add)(krb5_context, krb5_keytab, krb5_keytab_entry*); + krb5_error_code (*remove)(krb5_context, krb5_keytab, krb5_keytab_entry*); + void *data; +}; -typedef struct krb5_keytab_data *krb5_keytab; +typedef struct krb5_keytab_data *krb5_keytab, krb5_kt_ops; struct krb5_keytab_key_proc_args { krb5_keytab keytab;