#include "scod.h"
static int _anonymous_client_start(scod_mech_t mech, scod_t sd, char **resp, int *resplen) {
log_debug(ZONE, "ANONYMOUS client start");
return sd_SUCCESS;
}
static int _anonymous_server_start(scod_mech_t mech, scod_t sd, const char *resp, int resplen, char **chal, int *challen) {
char authzid[3072];
log_debug(ZONE, "ANONYMOUS server start");
if((mech->ctx->cb)(sd, sd_cb_ANONYMOUS_GEN_AUTHZID, NULL, (void **) authzid, mech->ctx->cbarg) != 0) {
log_debug(ZONE, "app failed to generate authzid, auth failed");
return sd_auth_AUTH_FAILED;
}
sd->authzid = strdup(authzid);
return sd_SUCCESS;
}
int scod_mech_anonymous_init(scod_mech_t mech) {
log_debug(ZONE, "initialising ANONYMOUS mechanism");
mech->name = "ANONYMOUS";
mech->client_start = _anonymous_client_start;
mech->server_start = _anonymous_server_start;
return 0;
}