typedef struct _krb5_cc_ops {
char *prefix;
- char *(*get_name) PROTOTYPE((krb5_ccache));
- krb5_error_code (*resolve) PROTOTYPE((krb5_ccache *, char *));
- krb5_error_code (*gen_new) PROTOTYPE((krb5_ccache *));
- krb5_error_code (*init) PROTOTYPE((krb5_ccache, krb5_principal));
- krb5_error_code (*destroy) PROTOTYPE((krb5_ccache));
- krb5_error_code (*close) PROTOTYPE((krb5_ccache));
- krb5_error_code (*store) PROTOTYPE((krb5_ccache, krb5_creds *));
- krb5_error_code (*retrieve) PROTOTYPE((krb5_ccache, krb5_flags,
+ char *(*get_name) NPROTOTYPE((krb5_ccache));
+ krb5_error_code (*resolve) NPROTOTYPE((krb5_ccache *, char *));
+ krb5_error_code (*gen_new) NPROTOTYPE((krb5_ccache *));
+ krb5_error_code (*init) NPROTOTYPE((krb5_ccache, krb5_principal));
+ krb5_error_code (*destroy) NPROTOTYPE((krb5_ccache));
+ krb5_error_code (*close) NPROTOTYPE((krb5_ccache));
+ krb5_error_code (*store) NPROTOTYPE((krb5_ccache, krb5_creds *));
+ krb5_error_code (*retrieve) NPROTOTYPE((krb5_ccache, krb5_flags,
krb5_creds *, krb5_creds *));
- krb5_error_code (*get_princ) PROTOTYPE((krb5_ccache,
+ krb5_error_code (*get_princ) NPROTOTYPE((krb5_ccache,
krb5_principal *));
- krb5_error_code (*get_first) PROTOTYPE((krb5_ccache,
+ krb5_error_code (*get_first) NPROTOTYPE((krb5_ccache,
krb5_cc_cursor *));
- krb5_error_code (*get_next) PROTOTYPE((krb5_ccache, krb5_cc_cursor *,
+ krb5_error_code (*get_next) NPROTOTYPE((krb5_ccache, krb5_cc_cursor *,
krb5_creds *));
- krb5_error_code (*end_get) PROTOTYPE((krb5_ccache, krb5_cc_cursor *));
- krb5_error_code (*remove_cred) PROTOTYPE((krb5_ccache, krb5_flags,
+ krb5_error_code (*end_get) NPROTOTYPE((krb5_ccache, krb5_cc_cursor *));
+ krb5_error_code (*remove_cred) NPROTOTYPE((krb5_ccache, krb5_flags,
krb5_creds *));
- krb5_error_code (*set_flags) PROTOTYPE((krb5_ccache, krb5_flags));
+ krb5_error_code (*set_flags) NPROTOTYPE((krb5_ccache, krb5_flags));
} krb5_cc_ops;
/* for retrieve_cred */
/* could be used in a table to find an etype and initialize a block */
typedef struct _krb5_cryptosystem_entry {
- krb5_error_code (*encrypt_func) PROTOTYPE((krb5_const_pointer /* in */,
+ krb5_error_code (*encrypt_func) NPROTOTYPE((krb5_const_pointer /* in */,
krb5_pointer /* out */,
const size_t,
krb5_encrypt_block *,
krb5_pointer));
- krb5_error_code (*decrypt_func) PROTOTYPE((krb5_const_pointer /* in */,
+ krb5_error_code (*decrypt_func) NPROTOTYPE((krb5_const_pointer /* in */,
krb5_pointer /* out */,
const size_t,
krb5_encrypt_block *,
krb5_pointer));
- krb5_error_code (*process_key) PROTOTYPE((krb5_encrypt_block *,
+ krb5_error_code (*process_key) NPROTOTYPE((krb5_encrypt_block *,
const krb5_keyblock *));
- krb5_error_code (*finish_key) PROTOTYPE((krb5_encrypt_block *));
- krb5_error_code (*string_to_key) PROTOTYPE((const krb5_keytype,
+ krb5_error_code (*finish_key) NPROTOTYPE((krb5_encrypt_block *));
+ krb5_error_code (*string_to_key) NPROTOTYPE((const krb5_keytype,
krb5_keyblock *,
const krb5_data *,
const krb5_data *));
- krb5_error_code (*init_random_key) PROTOTYPE((const krb5_keyblock *,
+ krb5_error_code (*init_random_key) NPROTOTYPE((const krb5_keyblock *,
krb5_pointer *));
- krb5_error_code (*finish_random_key) PROTOTYPE((krb5_pointer *));
- krb5_error_code (*random_key) PROTOTYPE((krb5_pointer,
+ krb5_error_code (*finish_random_key) NPROTOTYPE((krb5_pointer *));
+ krb5_error_code (*random_key) NPROTOTYPE((krb5_pointer,
krb5_keyblock **));
int block_length;
int pad_minimum; /* needed for cksum size computation */
/* could be used in a table to find a sumtype */
typedef struct _krb5_checksum_entry {
- krb5_error_code (*sum_func) PROTOTYPE ((krb5_pointer /* in */,
+ krb5_error_code (*sum_func) NPROTOTYPE ((krb5_pointer /* in */,
size_t /* in_length */,
krb5_pointer /* key/seed */,
size_t /* key/seed size */,
typedef struct krb5_keytab_entry_st {
krb5_principal principal; /* principal of this key */
+ krb5_timestamp timestamp; /* time entry written to keytable */
krb5_kvno vno; /* key version number */
krb5_keyblock key; /* the secret key */
} krb5_keytab_entry;
typedef struct _krb5_kt_ops {
char *prefix;
/* routines always present */
- krb5_error_code (*resolve) PROTOTYPE((char *,
+ krb5_error_code (*resolve) NPROTOTYPE((char *,
krb5_keytab *));
- krb5_error_code (*get_name) PROTOTYPE((krb5_keytab,
+ krb5_error_code (*get_name) NPROTOTYPE((krb5_keytab,
char *,
int));
- krb5_error_code (*close) PROTOTYPE((krb5_keytab));
- krb5_error_code (*get) PROTOTYPE((krb5_keytab,
+ krb5_error_code (*close) NPROTOTYPE((krb5_keytab));
+ krb5_error_code (*get) NPROTOTYPE((krb5_keytab,
krb5_principal,
krb5_kvno,
krb5_keytab_entry *));
- krb5_error_code (*start_seq_get) PROTOTYPE((krb5_keytab,
+ krb5_error_code (*start_seq_get) NPROTOTYPE((krb5_keytab,
krb5_kt_cursor *));
- krb5_error_code (*get_next) PROTOTYPE((krb5_keytab,
+ krb5_error_code (*get_next) NPROTOTYPE((krb5_keytab,
krb5_keytab_entry *,
krb5_kt_cursor *));
- krb5_error_code (*end_get) PROTOTYPE((krb5_keytab,
+ krb5_error_code (*end_get) NPROTOTYPE((krb5_keytab,
krb5_kt_cursor *));
/* routines to be included on extended version (write routines) */
- krb5_error_code (*add) PROTOTYPE((krb5_keytab,
+ krb5_error_code (*add) NPROTOTYPE((krb5_keytab,
krb5_keytab_entry *));
- krb5_error_code (*remove) PROTOTYPE((krb5_keytab,
+ krb5_error_code (*remove) NPROTOTYPE((krb5_keytab,
krb5_keytab_entry *));
} krb5_kt_ops;
typedef struct _krb5_rc_ops {
char *type;
- krb5_error_code (*init)PROTOTYPE((krb5_rcache,krb5_deltat)); /* create */
- krb5_error_code (*recover)PROTOTYPE((krb5_rcache)); /* open */
- krb5_error_code (*destroy)PROTOTYPE((krb5_rcache));
- krb5_error_code (*close)PROTOTYPE((krb5_rcache));
- krb5_error_code (*store)PROTOTYPE((krb5_rcache,krb5_donot_replay *));
- krb5_error_code (*expunge)PROTOTYPE((krb5_rcache));
- krb5_error_code (*get_span)PROTOTYPE((krb5_rcache,krb5_deltat *));
- char *(*get_name)PROTOTYPE((krb5_rcache));
- krb5_error_code (*resolve)PROTOTYPE((krb5_rcache, char *));
+ krb5_error_code (*init)NPROTOTYPE((krb5_rcache,krb5_deltat)); /* create */
+ krb5_error_code (*recover)NPROTOTYPE((krb5_rcache)); /* open */
+ krb5_error_code (*destroy)NPROTOTYPE((krb5_rcache));
+ krb5_error_code (*close)NPROTOTYPE((krb5_rcache));
+ krb5_error_code (*store)NPROTOTYPE((krb5_rcache,krb5_donot_replay *));
+ krb5_error_code (*expunge)NPROTOTYPE((krb5_rcache));
+ krb5_error_code (*get_span)NPROTOTYPE((krb5_rcache,krb5_deltat *));
+ char *(*get_name)NPROTOTYPE((krb5_rcache));
+ krb5_error_code (*resolve)NPROTOTYPE((krb5_rcache, char *));
} krb5_rc_ops;
krb5_error_code krb5_rc_default PROTOTYPE((krb5_rcache *));