1505d05c7Sgtb /* 2505d05c7Sgtb * lib/krb5/keytab/rc-int.h 3505d05c7Sgtb * 4505d05c7Sgtb * Copyright 2004 by the Massachusetts Institute of Technology. 5505d05c7Sgtb * All Rights Reserved. 6505d05c7Sgtb * 7505d05c7Sgtb * Export of this software from the United States of America may 8505d05c7Sgtb * require a specific license from the United States Government. 9505d05c7Sgtb * It is the responsibility of any person or organization contemplating 10505d05c7Sgtb * export to obtain such a license before exporting. 11*55fea89dSDan Cross * 12505d05c7Sgtb * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 13505d05c7Sgtb * distribute this software and its documentation for any purpose and 14505d05c7Sgtb * without fee is hereby granted, provided that the above copyright 15505d05c7Sgtb * notice appear in all copies and that both that copyright notice and 16505d05c7Sgtb * this permission notice appear in supporting documentation, and that 17505d05c7Sgtb * the name of M.I.T. not be used in advertising or publicity pertaining 18505d05c7Sgtb * to distribution of the software without specific, written prior 19505d05c7Sgtb * permission. Furthermore if you modify this software you must label 20505d05c7Sgtb * your software as modified software and not distribute it in such a 21505d05c7Sgtb * fashion that it might be confused with the original M.I.T. software. 22505d05c7Sgtb * M.I.T. makes no representations about the suitability of 23505d05c7Sgtb * this software for any purpose. It is provided "as is" without express 24505d05c7Sgtb * or implied warranty. 25*55fea89dSDan Cross * 26505d05c7Sgtb * 27505d05c7Sgtb * This file contains constant and function declarations used in the 28505d05c7Sgtb * file-based replay cache routines. 29505d05c7Sgtb */ 30505d05c7Sgtb 31505d05c7Sgtb #ifndef __KRB5_RCACHE_INT_H__ 32505d05c7Sgtb #define __KRB5_RCACHE_INT_H__ 33505d05c7Sgtb 34505d05c7Sgtb int krb5int_rc_finish_init(void); 35505d05c7Sgtb 36505d05c7Sgtb void krb5int_rc_terminate(void); 37505d05c7Sgtb 38505d05c7Sgtb struct krb5_rc_st { 39505d05c7Sgtb krb5_magic magic; 40505d05c7Sgtb const struct _krb5_rc_ops *ops; 41505d05c7Sgtb krb5_pointer data; 42505d05c7Sgtb k5_mutex_t lock; 43505d05c7Sgtb }; 44505d05c7Sgtb 45505d05c7Sgtb struct _krb5_rc_ops { 46505d05c7Sgtb krb5_magic magic; 47505d05c7Sgtb char *type; 48505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *init) 49505d05c7Sgtb (krb5_context, krb5_rcache,krb5_deltat); /* create */ 50505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *recover) 51505d05c7Sgtb (krb5_context, krb5_rcache); /* open */ 52505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *recover_or_init) 53505d05c7Sgtb (krb5_context, krb5_rcache,krb5_deltat); 54505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *destroy) 55505d05c7Sgtb (krb5_context, krb5_rcache); 56505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *close) 57505d05c7Sgtb (krb5_context, krb5_rcache); 58505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *store) 59505d05c7Sgtb (krb5_context, krb5_rcache,krb5_donot_replay *); 60505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *expunge) 61505d05c7Sgtb (krb5_context, krb5_rcache); 62505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *get_span) 63505d05c7Sgtb (krb5_context, krb5_rcache,krb5_deltat *); 64505d05c7Sgtb char *(KRB5_CALLCONV *get_name) 65505d05c7Sgtb (krb5_context, krb5_rcache); 66505d05c7Sgtb krb5_error_code (KRB5_CALLCONV *resolve) 67505d05c7Sgtb (krb5_context, krb5_rcache, char *); 68505d05c7Sgtb }; 69505d05c7Sgtb 70505d05c7Sgtb typedef struct _krb5_rc_ops krb5_rc_ops; 71505d05c7Sgtb 72505d05c7Sgtb krb5_error_code krb5_rc_register_type (krb5_context, const krb5_rc_ops *); 73505d05c7Sgtb 74159d09a2SMark Phalan /* Solaris Kerberos */ 75159d09a2SMark Phalan extern krb5_rc_ops const *krb5_rc_dfl_ops; 7657607821Ssuha extern const krb5_rc_ops krb5_rc_none_ops; 77505d05c7Sgtb 78505d05c7Sgtb #endif /* __KRB5_RCACHE_INT_H__ */ 79