xref: /freebsd/crypto/krb5/src/ccapi/lib/ccapi_ccache.h (revision 7f2fe78b9dd5f51c821d771b63d2e096f6fd49e9)
1*7f2fe78bSCy Schubert /* ccapi/lib/ccapi_ccache.h */
2*7f2fe78bSCy Schubert /*
3*7f2fe78bSCy Schubert  * Copyright 2006 Massachusetts Institute of Technology.
4*7f2fe78bSCy Schubert  * All Rights Reserved.
5*7f2fe78bSCy Schubert  *
6*7f2fe78bSCy Schubert  * Export of this software from the United States of America may
7*7f2fe78bSCy Schubert  * require a specific license from the United States Government.
8*7f2fe78bSCy Schubert  * It is the responsibility of any person or organization contemplating
9*7f2fe78bSCy Schubert  * export to obtain such a license before exporting.
10*7f2fe78bSCy Schubert  *
11*7f2fe78bSCy Schubert  * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
12*7f2fe78bSCy Schubert  * distribute this software and its documentation for any purpose and
13*7f2fe78bSCy Schubert  * without fee is hereby granted, provided that the above copyright
14*7f2fe78bSCy Schubert  * notice appear in all copies and that both that copyright notice and
15*7f2fe78bSCy Schubert  * this permission notice appear in supporting documentation, and that
16*7f2fe78bSCy Schubert  * the name of M.I.T. not be used in advertising or publicity pertaining
17*7f2fe78bSCy Schubert  * to distribution of the software without specific, written prior
18*7f2fe78bSCy Schubert  * permission.  Furthermore if you modify this software you must label
19*7f2fe78bSCy Schubert  * your software as modified software and not distribute it in such a
20*7f2fe78bSCy Schubert  * fashion that it might be confused with the original M.I.T. software.
21*7f2fe78bSCy Schubert  * M.I.T. makes no representations about the suitability of
22*7f2fe78bSCy Schubert  * this software for any purpose.  It is provided "as is" without express
23*7f2fe78bSCy Schubert  * or implied warranty.
24*7f2fe78bSCy Schubert  */
25*7f2fe78bSCy Schubert 
26*7f2fe78bSCy Schubert #ifndef CCAPI_CCACHE_H
27*7f2fe78bSCy Schubert #define CCAPI_CCACHE_H
28*7f2fe78bSCy Schubert 
29*7f2fe78bSCy Schubert #include "cci_common.h"
30*7f2fe78bSCy Schubert 
31*7f2fe78bSCy Schubert cc_int32 cci_ccache_new (cc_ccache_t      *out_ccache,
32*7f2fe78bSCy Schubert                          cci_identifier_t  in_identifier);
33*7f2fe78bSCy Schubert 
34*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_release (cc_ccache_t io_ccache);
35*7f2fe78bSCy Schubert 
36*7f2fe78bSCy Schubert cc_int32 cci_ccache_write (cc_ccache_t  in_ccache,
37*7f2fe78bSCy Schubert                            k5_ipc_stream in_stream);
38*7f2fe78bSCy Schubert 
39*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_destroy (cc_ccache_t io_ccache);
40*7f2fe78bSCy Schubert 
41*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_set_default (cc_ccache_t io_ccache);
42*7f2fe78bSCy Schubert 
43*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_get_credentials_version (cc_ccache_t  in_ccache,
44*7f2fe78bSCy Schubert                                                cc_uint32   *out_credentials_version);
45*7f2fe78bSCy Schubert 
46*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_get_name (cc_ccache_t  in_ccache,
47*7f2fe78bSCy Schubert                                 cc_string_t *out_name);
48*7f2fe78bSCy Schubert 
49*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_get_principal (cc_ccache_t  in_ccache,
50*7f2fe78bSCy Schubert                                      cc_uint32    in_credentials_version,
51*7f2fe78bSCy Schubert                                      cc_string_t *out_principal);
52*7f2fe78bSCy Schubert 
53*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_set_principal (cc_ccache_t  io_ccache,
54*7f2fe78bSCy Schubert                                      cc_uint32    in_credentials_version,
55*7f2fe78bSCy Schubert                                      const char  *in_principal);
56*7f2fe78bSCy Schubert 
57*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_store_credentials (cc_ccache_t                 io_ccache,
58*7f2fe78bSCy Schubert                                          const cc_credentials_union *in_credentials_union);
59*7f2fe78bSCy Schubert 
60*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_remove_credentials (cc_ccache_t      io_ccache,
61*7f2fe78bSCy Schubert                                           cc_credentials_t in_credentials);
62*7f2fe78bSCy Schubert 
63*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_new_credentials_iterator (cc_ccache_t                in_ccache,
64*7f2fe78bSCy Schubert                                                 cc_credentials_iterator_t *out_credentials_iterator);
65*7f2fe78bSCy Schubert 
66*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_move (cc_ccache_t io_source_ccache,
67*7f2fe78bSCy Schubert                             cc_ccache_t io_destination_ccache);
68*7f2fe78bSCy Schubert 
69*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_lock (cc_ccache_t io_ccache,
70*7f2fe78bSCy Schubert                             cc_uint32   in_lock_type,
71*7f2fe78bSCy Schubert                             cc_uint32   in_block);
72*7f2fe78bSCy Schubert 
73*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_unlock (cc_ccache_t io_ccache);
74*7f2fe78bSCy Schubert 
75*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_get_last_default_time (cc_ccache_t  in_ccache,
76*7f2fe78bSCy Schubert                                              cc_time_t   *out_last_default_time);
77*7f2fe78bSCy Schubert 
78*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_get_change_time (cc_ccache_t  in_ccache,
79*7f2fe78bSCy Schubert                                        cc_time_t   *out_change_time);
80*7f2fe78bSCy Schubert 
81*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_wait_for_change (cc_ccache_t  in_ccache);
82*7f2fe78bSCy Schubert 
83*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_compare (cc_ccache_t  in_ccache,
84*7f2fe78bSCy Schubert                                cc_ccache_t  in_compare_to_ccache,
85*7f2fe78bSCy Schubert                                cc_uint32   *out_equal);
86*7f2fe78bSCy Schubert 
87*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_get_kdc_time_offset (cc_ccache_t  in_ccache,
88*7f2fe78bSCy Schubert                                            cc_uint32    in_credentials_version,
89*7f2fe78bSCy Schubert                                            cc_time_t   *out_time_offset);
90*7f2fe78bSCy Schubert 
91*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_set_kdc_time_offset (cc_ccache_t io_ccache,
92*7f2fe78bSCy Schubert                                            cc_uint32   in_credentials_version,
93*7f2fe78bSCy Schubert                                            cc_time_t   in_time_offset);
94*7f2fe78bSCy Schubert 
95*7f2fe78bSCy Schubert cc_int32 ccapi_ccache_clear_kdc_time_offset (cc_ccache_t io_ccache,
96*7f2fe78bSCy Schubert                                              cc_uint32   in_credentials_version);
97*7f2fe78bSCy Schubert 
98*7f2fe78bSCy Schubert cc_int32 cci_ccache_get_compat_version (cc_ccache_t  in_ccache,
99*7f2fe78bSCy Schubert                                         cc_uint32   *out_compat_version);
100*7f2fe78bSCy Schubert 
101*7f2fe78bSCy Schubert cc_int32 cci_ccache_set_compat_version (cc_ccache_t io_ccache,
102*7f2fe78bSCy Schubert                                         cc_uint32   in_compat_version);
103*7f2fe78bSCy Schubert 
104*7f2fe78bSCy Schubert 
105*7f2fe78bSCy Schubert #endif /* CCAPI_CCACHE_H */
106