31 #define MAX_CREDS_LENGTH 250 32 #define APPROX_TOKEN_LEN 250 47 "stub-gss: no memory",
48 "stub-gss: invalid arguments",
49 "stub-gss: invalid credentials",
50 "stub-gss: invalid context",
51 "stub-gss: server returned error",
52 "stub-gss: cannot find a mechanism",
82 const char *
creds = NULL;
90 if(!context_handle || !target_name || !output_token) {
95 creds =
getenv(
"CURL_STUB_GSS_CREDS");
101 ctx = *context_handle;
102 if(ctx && strcmp(ctx->
creds, creds)) {
108 output_token->
value = NULL;
110 if(input_token && input_token->
length) {
117 if(((
char *) input_token->
value)[0] ==
'D') {
123 *ret_flags = ctx->
flags;
133 if(((
char *) input_token->
value)[0] !=
'C') {
171 if(strstr(creds,
"KRB5"))
174 if(strstr(creds,
"NTLM"))
187 strcpy(ctx->
creds, creds);
188 ctx->
flags = req_flags;
199 used =
snprintf(token, length,
"%s:%s:%d:", creds,
200 (
char *) target_name, ctx->
sent);
210 memset(token + used,
'A', length - used);
212 *context_handle = ctx;
214 output_token->
value = token;
215 output_token->
length = length;
227 if(!context_handle) {
232 free(*context_handle);
233 *context_handle = NULL;
245 if(buffer && buffer->
length) {
263 if(!input_name_buffer || !output_name) {
268 name = strndup(input_name_buffer->
value, input_name_buffer->
length);
299 const char maj_str[] =
"Stub GSS error";
304 *message_context = 0;
307 status_string->
value = NULL;
308 status_string->
length = 0;
313 switch(status_type) {
324 if(status_string->
value)
325 status_string->
length = strlen(status_string->
value);
350 int *locally_initiated,
OM_uint32 gss_release_buffer(OM_uint32 *min, gss_buffer_t buffer)
#define GSS_S_CONTINUE_NEEDED
OM_uint32 gss_display_status(OM_uint32 *min, OM_uint32 status_value, int status_type, const gss_OID mech_type, OM_uint32 *message_context, gss_buffer_t status_string)
OM_uint32 gss_delete_sec_context(OM_uint32 *min, gss_ctx_id_t *context_handle, gss_buffer_t output_token)
char creds[MAX_CREDS_LENGTH]
OM_uint32 gss_display_name(OM_uint32 *min, gss_const_name_t input_name, gss_buffer_t output_name_buffer, gss_OID *output_name_type)
const struct gss_cred_id_t_desc_struct * gss_const_cred_id_t
struct gss_name_t_desc_struct * gss_name_t
OM_uint32 gss_init_sec_context(OM_uint32 *min, gss_const_cred_id_t initiator_cred_handle, gss_ctx_id_t *context_handle, gss_const_name_t target_name, const gss_OID mech_type, OM_uint32 req_flags, OM_uint32 time_req, const gss_channel_bindings_t input_chan_bindings, const gss_buffer_t input_token, gss_OID *actual_mech_type, gss_buffer_t output_token, OM_uint32 *ret_flags, OM_uint32 *time_rec)
enum gss_ctx_id_t_desc_struct::@43 sent
OM_uint32 gss_import_name(OM_uint32 *min, const gss_buffer_t input_name_buffer, const gss_OID input_name_type, gss_name_t *output_name)
const char * min_err_table[]
OM_uint32 gss_release_name(OM_uint32 *min, gss_name_t *input_name)
OM_uint32 gss_unseal(OM_uint32 *min, gss_ctx_id_t context_handle, gss_buffer_t input_message_buffer, gss_buffer_t output_message_buffer, int *conf_state, int *qop_state)
OM_uint32 gss_unwrap(OM_uint32 *min, gss_const_ctx_id_t context_handle, const gss_buffer_t input_message_buffer, gss_buffer_t output_message_buffer, int *conf_state, gss_qop_t *qop_state)
OM_uint32 gss_inquire_context(OM_uint32 *min, gss_const_ctx_id_t context_handle, gss_name_t *src_name, gss_name_t *targ_name, OM_uint32 *lifetime_rec, gss_OID *mech_type, OM_uint32 *ctx_flags, int *locally_initiated, int *open_context)
TFSIMD_FORCE_INLINE tfScalar length(const Quaternion &q)
OM_uint32 gss_seal(OM_uint32 *min, gss_ctx_id_t context_handle, int conf_req_flag, int qop_req, gss_buffer_t input_message_buffer, int *conf_state, gss_buffer_t output_message_buffer)
const struct gss_name_t_desc_struct * gss_const_name_t
OM_uint32 gss_wrap(OM_uint32 *min, gss_const_ctx_id_t context_handle, int conf_req_flag, gss_qop_t qop_req, const gss_buffer_t input_message_buffer, int *conf_state, gss_buffer_t output_message_buffer)
struct gss_ctx_id_t_desc_struct * gss_ctx_id_t
#define calloc(nbelem, size)