Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/krb5/src/include/CredentialsCache2.h
34907 views
1
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
/* include/CredentialsCache2.h */
3
/*
4
* Copyright 2006 Massachusetts Institute of Technology.
5
* All Rights Reserved.
6
*
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.
11
*
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.
25
*/
26
27
/*
28
* This is backwards compatibility for CCache API v2 clients to be able to run
29
* against the CCache API v3 library
30
*/
31
32
#ifndef CCAPI_V2_H
33
#define CCAPI_V2_H
34
35
#include <CredentialsCache.h>
36
37
#if defined(macintosh) || (defined(__MACH__) && defined(__APPLE__))
38
#include <TargetConditionals.h>
39
#include <AvailabilityMacros.h>
40
#ifdef DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER
41
#define CCAPI_DEPRECATED DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER
42
#endif
43
#endif
44
45
#ifndef CCAPI_DEPRECATED
46
#define CCAPI_DEPRECATED
47
#endif
48
49
#ifdef __cplusplus
50
extern "C" {
51
#endif /* __cplusplus */
52
53
#if defined(__APPLE__) && (defined(__ppc__) || defined(__ppc64__) || defined(__i386__) || defined(__x86_64__))
54
#pragma pack(push,2)
55
#endif
56
57
/* Some old types get directly mapped to new types */
58
59
typedef cc_context_d apiCB;
60
typedef cc_ccache_d ccache_p;
61
typedef cc_credentials_iterator_d ccache_cit_creds;
62
typedef cc_ccache_iterator_d ccache_cit_ccache;
63
typedef cc_data cc_data_compat;
64
typedef cc_int32 cc_cred_vers;
65
typedef cc_int32 cc_result;
66
67
/* This doesn't exist in API v3 */
68
typedef cc_uint32 cc_flags;
69
70
/* Credentials types are visible to the caller so we have to keep binary compatibility */
71
72
typedef struct cc_credentials_v5_compat {
73
char* client;
74
char* server;
75
cc_data_compat keyblock;
76
cc_time_t authtime;
77
cc_time_t starttime;
78
cc_time_t endtime;
79
cc_time_t renew_till;
80
cc_uint32 is_skey;
81
cc_uint32 ticket_flags;
82
cc_data_compat** addresses;
83
cc_data_compat ticket;
84
cc_data_compat second_ticket;
85
cc_data_compat** authdata;
86
} cc_credentials_v5_compat;
87
88
enum {
89
KRB_NAME_SZ = 40,
90
KRB_INSTANCE_SZ = 40,
91
KRB_REALM_SZ = 40
92
};
93
94
typedef union cred_ptr_union_compat {
95
cc_credentials_v5_compat* pV5Cred;
96
} cred_ptr_union_compat;
97
98
typedef struct cred_union {
99
cc_int32 cred_type; /* cc_cred_vers */
100
cred_ptr_union_compat cred;
101
} cred_union;
102
103
/* NC info structure is gone in v3 */
104
105
struct infoNC {
106
char* name;
107
char* principal;
108
cc_int32 vers;
109
};
110
111
typedef struct infoNC infoNC;
112
113
/* Some old type names */
114
115
typedef cc_credentials_v5_compat cc_creds;
116
struct ccache_cit;
117
typedef struct ccache_cit ccache_cit;
118
119
enum {
120
CC_API_VER_2 = ccapi_version_2
121
};
122
123
enum {
124
CC_NOERROR,
125
CC_BADNAME,
126
CC_NOTFOUND,
127
CC_END,
128
CC_IO,
129
CC_WRITE,
130
CC_NOMEM,
131
CC_FORMAT,
132
CC_LOCKED,
133
CC_BAD_API_VERSION,
134
CC_NO_EXIST,
135
CC_NOT_SUPP,
136
CC_BAD_PARM,
137
CC_ERR_CACHE_ATTACH,
138
CC_ERR_CACHE_RELEASE,
139
CC_ERR_CACHE_FULL,
140
CC_ERR_CRED_VERSION
141
};
142
143
enum {
144
CC_CRED_UNKNOWN,
145
/* CC_CRED_V4, */
146
CC_CRED_V5,
147
CC_CRED_MAX
148
};
149
150
enum {
151
CC_LOCK_UNLOCK = 1,
152
CC_LOCK_READER = 2,
153
CC_LOCK_WRITER = 3,
154
CC_LOCK_NOBLOCK = 16
155
};
156
157
CCACHE_API cc_int32
158
cc_shutdown (apiCB **io_context)
159
CCAPI_DEPRECATED;
160
161
CCACHE_API cc_int32
162
cc_get_NC_info (apiCB *in_context,
163
infoNC ***out_info)
164
CCAPI_DEPRECATED;
165
166
CCACHE_API cc_int32
167
cc_get_change_time (apiCB *in_context,
168
cc_time_t *out_change_time)
169
CCAPI_DEPRECATED;
170
171
CCACHE_API cc_int32
172
cc_open (apiCB *in_context,
173
const char *in_name,
174
cc_int32 in_version,
175
cc_uint32 in_flags,
176
ccache_p **out_ccache)
177
CCAPI_DEPRECATED;
178
179
CCACHE_API cc_int32
180
cc_create (apiCB *in_context,
181
const char *in_name,
182
const char *in_principal,
183
cc_int32 in_version,
184
cc_uint32 in_flags,
185
ccache_p **out_ccache)
186
CCAPI_DEPRECATED;
187
188
CCACHE_API cc_int32
189
cc_close (apiCB *in_context,
190
ccache_p **ioCCache)
191
CCAPI_DEPRECATED;
192
193
CCACHE_API cc_int32
194
cc_destroy (apiCB *in_context,
195
ccache_p **io_ccache)
196
CCAPI_DEPRECATED;
197
198
CCACHE_API cc_int32
199
cc_seq_fetch_NCs_begin (apiCB *in_context,
200
ccache_cit **out_nc_iterator)
201
CCAPI_DEPRECATED;
202
203
CCACHE_API cc_int32
204
cc_seq_fetch_NCs_next (apiCB *in_context,
205
ccache_p **out_ccache,
206
ccache_cit *in_nc_iterator)
207
CCAPI_DEPRECATED;
208
209
CCACHE_API cc_int32
210
cc_seq_fetch_NCs_end (apiCB *in_context,
211
ccache_cit **io_nc_iterator)
212
CCAPI_DEPRECATED;
213
214
CCACHE_API cc_int32
215
cc_get_name (apiCB *in_context,
216
ccache_p *in_ccache,
217
char **out_name)
218
CCAPI_DEPRECATED;
219
220
CCACHE_API cc_int32
221
cc_get_cred_version (apiCB *in_context,
222
ccache_p *in_ccache,
223
cc_int32 *out_version)
224
CCAPI_DEPRECATED;
225
226
CCACHE_API cc_int32
227
cc_set_principal (apiCB *in_context,
228
ccache_p *in_ccache,
229
cc_int32 in_version,
230
char *in_principal)
231
CCAPI_DEPRECATED;
232
233
CCACHE_API cc_int32
234
cc_get_principal (apiCB *in_context,
235
ccache_p *in_ccache,
236
char **out_principal)
237
CCAPI_DEPRECATED;
238
239
CCACHE_API cc_int32
240
cc_store (apiCB *in_context,
241
ccache_p *in_ccache,
242
cred_union in_credentials)
243
CCAPI_DEPRECATED;
244
245
CCACHE_API cc_int32
246
cc_remove_cred (apiCB *in_context,
247
ccache_p *in_ccache,
248
cred_union in_credentials)
249
CCAPI_DEPRECATED;
250
251
CCACHE_API cc_int32
252
cc_seq_fetch_creds_begin (apiCB *in_context,
253
const ccache_p *in_ccache,
254
ccache_cit **out_ccache_iterator)
255
CCAPI_DEPRECATED;
256
257
CCACHE_API cc_int32
258
cc_seq_fetch_creds_next (apiCB *in_context,
259
cred_union **out_cred_union,
260
ccache_cit *in_ccache_iterator)
261
CCAPI_DEPRECATED;
262
263
CCACHE_API cc_int32
264
cc_seq_fetch_creds_end (apiCB *in_context,
265
ccache_cit **io_ccache_iterator)
266
CCAPI_DEPRECATED;
267
268
CCACHE_API cc_int32
269
cc_free_principal (apiCB *in_context,
270
char **io_principal)
271
CCAPI_DEPRECATED;
272
273
CCACHE_API cc_int32
274
cc_free_name (apiCB *in_context,
275
char **io_name)
276
CCAPI_DEPRECATED;
277
278
CCACHE_API cc_int32
279
cc_free_creds (apiCB *in_context,
280
cred_union **io_cred_union)
281
CCAPI_DEPRECATED;
282
283
CCACHE_API cc_int32
284
cc_free_NC_info (apiCB *in_context,
285
infoNC ***io_info)
286
CCAPI_DEPRECATED;
287
288
CCACHE_API cc_int32
289
cc_lock_request (apiCB *in_context,
290
const ccache_p *in_ccache,
291
const cc_int32 in_lock_type)
292
CCAPI_DEPRECATED;
293
294
#if defined(__APPLE__) && (defined(__ppc__) || defined(__ppc64__) || defined(__i386__) || defined(__x86_64__))
295
#pragma pack(pop)
296
#endif
297
298
#ifdef __cplusplus
299
}
300
#endif /* __cplusplus */
301
302
#endif /* CCAPI_V2_H */
303
304