xref: /aosp_15_r20/external/curl/tests/libtest/stub_gssapi.h (revision 6236dae45794135f37c4eb022389c904c8b0090d)
1*6236dae4SAndroid Build Coastguard Worker #ifndef HEADER_CURL_GSSAPI_STUBS_H
2*6236dae4SAndroid Build Coastguard Worker #define HEADER_CURL_GSSAPI_STUBS_H
3*6236dae4SAndroid Build Coastguard Worker /***************************************************************************
4*6236dae4SAndroid Build Coastguard Worker  *                                  _   _ ____  _
5*6236dae4SAndroid Build Coastguard Worker  *  Project                     ___| | | |  _ \| |
6*6236dae4SAndroid Build Coastguard Worker  *                             / __| | | | |_) | |
7*6236dae4SAndroid Build Coastguard Worker  *                            | (__| |_| |  _ <| |___
8*6236dae4SAndroid Build Coastguard Worker  *                             \___|\___/|_| \_\_____|
9*6236dae4SAndroid Build Coastguard Worker  *
10*6236dae4SAndroid Build Coastguard Worker  * Copyright (C) Daniel Stenberg, <[email protected]>, et al.
11*6236dae4SAndroid Build Coastguard Worker  *
12*6236dae4SAndroid Build Coastguard Worker  * This software is licensed as described in the file COPYING, which
13*6236dae4SAndroid Build Coastguard Worker  * you should have received as part of this distribution. The terms
14*6236dae4SAndroid Build Coastguard Worker  * are also available at https://curl.se/docs/copyright.html.
15*6236dae4SAndroid Build Coastguard Worker  *
16*6236dae4SAndroid Build Coastguard Worker  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
17*6236dae4SAndroid Build Coastguard Worker  * copies of the Software, and permit persons to whom the Software is
18*6236dae4SAndroid Build Coastguard Worker  * furnished to do so, under the terms of the COPYING file.
19*6236dae4SAndroid Build Coastguard Worker  *
20*6236dae4SAndroid Build Coastguard Worker  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21*6236dae4SAndroid Build Coastguard Worker  * KIND, either express or implied.
22*6236dae4SAndroid Build Coastguard Worker  *
23*6236dae4SAndroid Build Coastguard Worker  * SPDX-License-Identifier: curl
24*6236dae4SAndroid Build Coastguard Worker  *
25*6236dae4SAndroid Build Coastguard Worker  ***************************************************************************/
26*6236dae4SAndroid Build Coastguard Worker 
27*6236dae4SAndroid Build Coastguard Worker /* Roughly based on Heimdal's gssapi.h */
28*6236dae4SAndroid Build Coastguard Worker 
29*6236dae4SAndroid Build Coastguard Worker #include <stdint.h>
30*6236dae4SAndroid Build Coastguard Worker #include <stddef.h>
31*6236dae4SAndroid Build Coastguard Worker 
32*6236dae4SAndroid Build Coastguard Worker #define GSS_ERROR(status) (status & 0x80000000)
33*6236dae4SAndroid Build Coastguard Worker 
34*6236dae4SAndroid Build Coastguard Worker #define GSS_S_COMPLETE 0
35*6236dae4SAndroid Build Coastguard Worker #define GSS_S_FAILURE (0x80000000)
36*6236dae4SAndroid Build Coastguard Worker #define GSS_S_CONTINUE_NEEDED (1ul)
37*6236dae4SAndroid Build Coastguard Worker 
38*6236dae4SAndroid Build Coastguard Worker #define GSS_C_QOP_DEFAULT 0
39*6236dae4SAndroid Build Coastguard Worker #define GSS_C_NO_OID ((gss_OID) 0)
40*6236dae4SAndroid Build Coastguard Worker #define GSS_C_NO_NAME ((gss_name_t) 0)
41*6236dae4SAndroid Build Coastguard Worker #define GSS_C_NO_BUFFER ((gss_buffer_t) 0)
42*6236dae4SAndroid Build Coastguard Worker #define GSS_C_NO_CONTEXT ((gss_ctx_id_t) 0)
43*6236dae4SAndroid Build Coastguard Worker #define GSS_C_NO_CREDENTIAL ((gss_cred_id_t) 0)
44*6236dae4SAndroid Build Coastguard Worker #define GSS_C_NO_CHANNEL_BINDINGS ((gss_channel_bindings_t) 0)
45*6236dae4SAndroid Build Coastguard Worker 
46*6236dae4SAndroid Build Coastguard Worker #define GSS_C_NULL_OID GSS_C_NO_OID
47*6236dae4SAndroid Build Coastguard Worker 
48*6236dae4SAndroid Build Coastguard Worker #define GSS_C_EMPTY_BUFFER {0, NULL}
49*6236dae4SAndroid Build Coastguard Worker 
50*6236dae4SAndroid Build Coastguard Worker #define GSS_C_AF_INET 2
51*6236dae4SAndroid Build Coastguard Worker 
52*6236dae4SAndroid Build Coastguard Worker #define GSS_C_GSS_CODE 1
53*6236dae4SAndroid Build Coastguard Worker #define GSS_C_MECH_CODE 2
54*6236dae4SAndroid Build Coastguard Worker 
55*6236dae4SAndroid Build Coastguard Worker #define GSS_C_DELEG_FLAG 1
56*6236dae4SAndroid Build Coastguard Worker #define GSS_C_MUTUAL_FLAG 2
57*6236dae4SAndroid Build Coastguard Worker #define GSS_C_REPLAY_FLAG 4
58*6236dae4SAndroid Build Coastguard Worker #define GSS_C_CONF_FLAG 16
59*6236dae4SAndroid Build Coastguard Worker #define GSS_C_INTEG_FLAG 32
60*6236dae4SAndroid Build Coastguard Worker 
61*6236dae4SAndroid Build Coastguard Worker /*
62*6236dae4SAndroid Build Coastguard Worker  * Expiration time of 2^32-1 seconds means infinite lifetime for a
63*6236dae4SAndroid Build Coastguard Worker  * credential or security context
64*6236dae4SAndroid Build Coastguard Worker  */
65*6236dae4SAndroid Build Coastguard Worker #define GSS_C_INDEFINITE 0xfffffffful
66*6236dae4SAndroid Build Coastguard Worker 
67*6236dae4SAndroid Build Coastguard Worker #define GSS_C_NT_HOSTBASED_SERVICE NULL
68*6236dae4SAndroid Build Coastguard Worker 
69*6236dae4SAndroid Build Coastguard Worker typedef uint32_t OM_uint32;
70*6236dae4SAndroid Build Coastguard Worker 
71*6236dae4SAndroid Build Coastguard Worker typedef OM_uint32 gss_qop_t;
72*6236dae4SAndroid Build Coastguard Worker 
73*6236dae4SAndroid Build Coastguard Worker typedef struct gss_buffer_desc_struct {
74*6236dae4SAndroid Build Coastguard Worker   size_t length;
75*6236dae4SAndroid Build Coastguard Worker   void *value;
76*6236dae4SAndroid Build Coastguard Worker } gss_buffer_desc, *gss_buffer_t;
77*6236dae4SAndroid Build Coastguard Worker 
78*6236dae4SAndroid Build Coastguard Worker struct gss_cred_id_t_desc_struct;
79*6236dae4SAndroid Build Coastguard Worker typedef struct gss_cred_id_t_desc_struct *gss_cred_id_t;
80*6236dae4SAndroid Build Coastguard Worker typedef const struct gss_cred_id_t_desc_struct *gss_const_cred_id_t;
81*6236dae4SAndroid Build Coastguard Worker 
82*6236dae4SAndroid Build Coastguard Worker struct gss_ctx_id_t_desc_struct;
83*6236dae4SAndroid Build Coastguard Worker typedef struct gss_ctx_id_t_desc_struct *gss_ctx_id_t;
84*6236dae4SAndroid Build Coastguard Worker typedef const struct gss_ctx_id_t_desc_struct *gss_const_ctx_id_t;
85*6236dae4SAndroid Build Coastguard Worker 
86*6236dae4SAndroid Build Coastguard Worker struct gss_name_t_desc_struct;
87*6236dae4SAndroid Build Coastguard Worker typedef struct gss_name_t_desc_struct *gss_name_t;
88*6236dae4SAndroid Build Coastguard Worker typedef const struct gss_name_t_desc_struct *gss_const_name_t;
89*6236dae4SAndroid Build Coastguard Worker 
90*6236dae4SAndroid Build Coastguard Worker typedef struct gss_OID_desc_struct {
91*6236dae4SAndroid Build Coastguard Worker   OM_uint32 length;
92*6236dae4SAndroid Build Coastguard Worker   void      *elements;
93*6236dae4SAndroid Build Coastguard Worker } gss_OID_desc, *gss_OID;
94*6236dae4SAndroid Build Coastguard Worker 
95*6236dae4SAndroid Build Coastguard Worker typedef struct gss_channel_bindings_struct {
96*6236dae4SAndroid Build Coastguard Worker   OM_uint32 initiator_addrtype;
97*6236dae4SAndroid Build Coastguard Worker   gss_buffer_desc initiator_address;
98*6236dae4SAndroid Build Coastguard Worker   OM_uint32 acceptor_addrtype;
99*6236dae4SAndroid Build Coastguard Worker   gss_buffer_desc acceptor_address;
100*6236dae4SAndroid Build Coastguard Worker   gss_buffer_desc application_data;
101*6236dae4SAndroid Build Coastguard Worker } *gss_channel_bindings_t;
102*6236dae4SAndroid Build Coastguard Worker 
103*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_release_buffer(OM_uint32 * /* minor_status */,
104*6236dae4SAndroid Build Coastguard Worker                              gss_buffer_t /* buffer */);
105*6236dae4SAndroid Build Coastguard Worker 
106*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_init_sec_context(OM_uint32 * /* minor_status */,
107*6236dae4SAndroid Build Coastguard Worker             gss_const_cred_id_t /* initiator_cred_handle */,
108*6236dae4SAndroid Build Coastguard Worker             gss_ctx_id_t * /* context_handle */,
109*6236dae4SAndroid Build Coastguard Worker             gss_const_name_t /* target_name */,
110*6236dae4SAndroid Build Coastguard Worker             const gss_OID /* mech_type */,
111*6236dae4SAndroid Build Coastguard Worker             OM_uint32 /* req_flags */,
112*6236dae4SAndroid Build Coastguard Worker             OM_uint32 /* time_req */,
113*6236dae4SAndroid Build Coastguard Worker             const gss_channel_bindings_t /* input_chan_bindings */,
114*6236dae4SAndroid Build Coastguard Worker             const gss_buffer_t /* input_token */,
115*6236dae4SAndroid Build Coastguard Worker             gss_OID * /* actual_mech_type */,
116*6236dae4SAndroid Build Coastguard Worker             gss_buffer_t /* output_token */,
117*6236dae4SAndroid Build Coastguard Worker             OM_uint32 * /* ret_flags */,
118*6236dae4SAndroid Build Coastguard Worker             OM_uint32 * /* time_rec */);
119*6236dae4SAndroid Build Coastguard Worker 
120*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_delete_sec_context(OM_uint32 * /* minor_status */,
121*6236dae4SAndroid Build Coastguard Worker                                  gss_ctx_id_t * /* context_handle */,
122*6236dae4SAndroid Build Coastguard Worker                                  gss_buffer_t /* output_token */);
123*6236dae4SAndroid Build Coastguard Worker 
124*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_inquire_context(OM_uint32 * /* minor_status */,
125*6236dae4SAndroid Build Coastguard Worker                               gss_const_ctx_id_t /* context_handle */,
126*6236dae4SAndroid Build Coastguard Worker                               gss_name_t * /* src_name */,
127*6236dae4SAndroid Build Coastguard Worker                               gss_name_t * /* targ_name */,
128*6236dae4SAndroid Build Coastguard Worker                               OM_uint32 * /* lifetime_rec */,
129*6236dae4SAndroid Build Coastguard Worker                               gss_OID * /* mech_type */,
130*6236dae4SAndroid Build Coastguard Worker                               OM_uint32 * /* ctx_flags */,
131*6236dae4SAndroid Build Coastguard Worker                               int * /* locally_initiated */,
132*6236dae4SAndroid Build Coastguard Worker                               int * /* open_context */);
133*6236dae4SAndroid Build Coastguard Worker 
134*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_wrap(OM_uint32 * /* minor_status */,
135*6236dae4SAndroid Build Coastguard Worker                    gss_const_ctx_id_t /* context_handle */,
136*6236dae4SAndroid Build Coastguard Worker                    int /* conf_req_flag */,
137*6236dae4SAndroid Build Coastguard Worker                    gss_qop_t /* qop_req */,
138*6236dae4SAndroid Build Coastguard Worker                    const gss_buffer_t /* input_message_buffer */,
139*6236dae4SAndroid Build Coastguard Worker                    int * /* conf_state */,
140*6236dae4SAndroid Build Coastguard Worker                    gss_buffer_t /* output_message_buffer */);
141*6236dae4SAndroid Build Coastguard Worker 
142*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_unwrap(OM_uint32 * /* minor_status */,
143*6236dae4SAndroid Build Coastguard Worker                      gss_const_ctx_id_t /* context_handle */,
144*6236dae4SAndroid Build Coastguard Worker                      const gss_buffer_t /* input_message_buffer */,
145*6236dae4SAndroid Build Coastguard Worker                      gss_buffer_t /* output_message_buffer */,
146*6236dae4SAndroid Build Coastguard Worker                      int * /* conf_state */,
147*6236dae4SAndroid Build Coastguard Worker                      gss_qop_t * /* qop_state */);
148*6236dae4SAndroid Build Coastguard Worker 
149*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_seal(OM_uint32 * /* minor_status */,
150*6236dae4SAndroid Build Coastguard Worker                    gss_ctx_id_t /* context_handle n */,
151*6236dae4SAndroid Build Coastguard Worker                    int /* conf_req_flag */,
152*6236dae4SAndroid Build Coastguard Worker                    int /* qop_req */,
153*6236dae4SAndroid Build Coastguard Worker                    gss_buffer_t /* input_message_buffer */,
154*6236dae4SAndroid Build Coastguard Worker                    int * /* conf_state */,
155*6236dae4SAndroid Build Coastguard Worker                    gss_buffer_t /* output_message_buffer */);
156*6236dae4SAndroid Build Coastguard Worker 
157*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_unseal(OM_uint32 * /* minor_status */,
158*6236dae4SAndroid Build Coastguard Worker                      gss_ctx_id_t /* context_handle */,
159*6236dae4SAndroid Build Coastguard Worker                      gss_buffer_t /* input_message_buffer */,
160*6236dae4SAndroid Build Coastguard Worker                      gss_buffer_t /* output_message_buffer */,
161*6236dae4SAndroid Build Coastguard Worker                      int * /* conf_state */,
162*6236dae4SAndroid Build Coastguard Worker                      int * /* qop_state */);
163*6236dae4SAndroid Build Coastguard Worker 
164*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_import_name(OM_uint32 * /* minor_status */,
165*6236dae4SAndroid Build Coastguard Worker                           const gss_buffer_t /* input_name_buffer */,
166*6236dae4SAndroid Build Coastguard Worker                           const gss_OID /* input_name_type */,
167*6236dae4SAndroid Build Coastguard Worker                           gss_name_t * /* output_name */);
168*6236dae4SAndroid Build Coastguard Worker 
169*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_release_name(OM_uint32 * /* minor_status */,
170*6236dae4SAndroid Build Coastguard Worker                            gss_name_t * /* input_name */);
171*6236dae4SAndroid Build Coastguard Worker 
172*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_display_name(OM_uint32 * /* minor_status */,
173*6236dae4SAndroid Build Coastguard Worker                            gss_const_name_t /* input_name */,
174*6236dae4SAndroid Build Coastguard Worker                            gss_buffer_t /* output_name_buffer */,
175*6236dae4SAndroid Build Coastguard Worker                            gss_OID * /* output_name_type */);
176*6236dae4SAndroid Build Coastguard Worker 
177*6236dae4SAndroid Build Coastguard Worker OM_uint32 gss_display_status(OM_uint32 * /* minor_status */,
178*6236dae4SAndroid Build Coastguard Worker                              OM_uint32 /* status_value */,
179*6236dae4SAndroid Build Coastguard Worker                              int /* status_type */,
180*6236dae4SAndroid Build Coastguard Worker                              const gss_OID /* mech_type */,
181*6236dae4SAndroid Build Coastguard Worker                              OM_uint32 * /* message_context */,
182*6236dae4SAndroid Build Coastguard Worker                              gss_buffer_t /* status_string */);
183*6236dae4SAndroid Build Coastguard Worker 
184*6236dae4SAndroid Build Coastguard Worker #endif /* HEADER_CURL_GSSAPI_STUBS_H */
185