4
* Copyright 2006 Massachusetts Institute of Technology.
7
* Export of this software from the United States of America may
8
* require a specific license from the United States Government.
9
* It is the responsibility of any person or organization contemplating
10
* export to obtain such a license before exporting.
12
* WITHIN THAT CONSTRAINT, permission to use, copy, modify, and
13
* distribute this software and its documentation for any purpose and
14
* without fee is hereby granted, provided that the above copyright
15
* notice appear in all copies and that both that copyright notice and
16
* this permission notice appear in supporting documentation, and that
17
* the name of M.I.T. not be used in advertising or publicity pertaining
18
* to distribution of the software without specific, written prior
19
* permission. Furthermore if you modify this software you must label
20
* your software as modified software and not distribute it in such a
21
* fashion that it might be confused with the original M.I.T. software.
22
* M.I.T. makes no representations about the suitability of
23
* this software for any purpose. It is provided "as is" without express
24
* or implied warranty.
27
#ifndef KIM_PREFERENCES_PRIVATE_H
28
#define KIM_PREFERENCES_PRIVATE_H
32
typedef struct kim_favorites_opaque *kim_favorites;
34
typedef enum kim_preference_key_enum {
35
kim_preference_key_options,
36
kim_preference_key_lifetime,
37
kim_preference_key_renewable,
38
kim_preference_key_renewal_lifetime,
39
kim_preference_key_forwardable,
40
kim_preference_key_proxiable,
41
kim_preference_key_addressless,
42
kim_preference_key_remember_options,
43
kim_preference_key_client_identity,
44
kim_preference_key_remember_client_identity,
45
kim_preference_key_favorites,
46
kim_preference_key_minimum_lifetime,
47
kim_preference_key_maximum_lifetime,
48
kim_preference_key_minimum_renewal_lifetime,
49
kim_preference_key_maximum_renewal_lifetime
53
#define kim_default_lifetime 10*60*60
54
#define kim_default_renewable TRUE
55
#define kim_default_renewal_lifetime 7*24*60*60
56
#define kim_default_forwardable TRUE
57
#define kim_default_proxiable TRUE
58
#define kim_default_addressless TRUE
59
#define kim_default_remember_options TRUE
60
#define kim_default_client_identity KIM_IDENTITY_ANY
61
#define kim_default_remember_client_identity TRUE
62
#define kim_default_minimum_lifetime 10*60
63
#define kim_default_maximum_lifetime 10*60*60
64
#define kim_default_minimum_renewal_lifetime 10*60
65
#define kim_default_maximum_renewal_lifetime 7*24*60*60
67
extern const struct kim_favorites_opaque kim_default_favorites;
70
/* Helper functions for use by kim_os_preferences_get_favorites_for_key
71
* and kim_os_preferences_set_favorites_for_key */
73
kim_error kim_favorites_get_number_of_identities (kim_favorites in_favorites,
74
kim_count *out_number_of_identities);
76
kim_error kim_favorites_get_identity_at_index (kim_favorites in_favorites,
78
kim_identity *out_identity,
79
kim_options *out_options);
81
kim_error kim_favorites_add_identity (kim_favorites io_favorites,
82
kim_identity in_identity,
83
kim_options in_options);
85
kim_error kim_favorites_remove_identity (kim_favorites io_favorites,
86
kim_identity in_identity);
88
kim_error kim_favorites_remove_all_identities (kim_favorites io_favorites);
91
/* OS-specific functions to be implemented per-platform */
93
kim_error kim_os_preferences_get_options_for_key (kim_preference_key in_key,
94
kim_options *out_options);
96
kim_error kim_os_preferences_set_options_for_key (kim_preference_key in_key,
97
kim_options in_options);
99
kim_error kim_os_preferences_get_identity_for_key (kim_preference_key in_key,
100
kim_identity in_hardcoded_default,
101
kim_identity *out_identity);
103
kim_error kim_os_preferences_set_identity_for_key (kim_preference_key in_key,
104
kim_identity in_identity);
106
kim_error kim_os_preferences_get_favorites_for_key (kim_preference_key in_key,
107
kim_favorites io_favorites);
109
kim_error kim_os_preferences_set_favorites_for_key (kim_preference_key in_key,
110
kim_favorites in_favorites);
112
kim_error kim_os_preferences_get_lifetime_for_key (kim_preference_key in_key,
113
kim_lifetime in_hardcoded_default,
114
kim_lifetime *out_lifetime);
116
kim_error kim_os_preferences_set_lifetime_for_key (kim_preference_key in_key,
117
kim_lifetime in_lifetime);
119
kim_error kim_os_preferences_get_boolean_for_key (kim_preference_key in_key,
120
kim_boolean in_hardcoded_default,
121
kim_boolean *out_boolean);
123
kim_error kim_os_preferences_set_boolean_for_key (kim_preference_key in_key,
124
kim_boolean in_boolean);
126
#endif /* KIM_PREFERENCES_PRIVATE_H */