61 const char *input,
size_t input_len,
62 char **output,
size_t *output_len)
82 &authzid, &headerlen);
95 input_len -= headerlen;
105 *output_len = strlen (p);
106 *output = malloc (*output_len);
110 memcpy (*output, p, *output_len);
119 const char *outcome_data;
121 if (!(input_len == 1 && *input ==
'='))
127 const char *failstr =
"openid.error=fail";
129 *output_len = strlen (failstr);
130 *output = strdup (failstr);
151 *output = strdup (outcome_data);
154 *output_len = strlen (*output);
175 if (!(input_len == 1 && *input ==
'='))
int gsasl_callback(Gsasl *ctx, Gsasl_session *sctx, Gsasl_property prop)
@ GSASL_NO_OPENID20_REDIRECT_URL
@ GSASL_AUTHENTICATION_ERROR
@ GSASL_MECHANISM_CALLED_TOO_MANY_TIMES
@ GSASL_MECHANISM_PARSE_ERROR
_GSASL_API int gsasl_property_set_raw(Gsasl_session *sctx, Gsasl_property prop, const char *data, size_t len)
_GSASL_API int gsasl_property_set(Gsasl_session *sctx, Gsasl_property prop, const char *data)
_GSASL_API const char * gsasl_property_get(Gsasl_session *sctx, Gsasl_property prop)
@ GSASL_OPENID20_OUTCOME_DATA
@ GSASL_VALIDATE_OPENID20
@ GSASL_OPENID20_REDIRECT_URL
void _gsasl_openid20_server_finish(Gsasl_session *sctx _GL_UNUSED, void *mech_data)
int _gsasl_openid20_server_step(Gsasl_session *sctx, void *mech_data, const char *input, size_t input_len, char **output, size_t *output_len)
int _gsasl_openid20_server_start(Gsasl_session *sctx _GL_UNUSED, void **mech_data)