cstr *ssrp_client_start(SRP *srpc, cstr *modulus, cstr *generator, cstr *salt, const char *user) { SRP_RESULT rc; cstr * client_pub = NULL; rc = SRP_set_username(srpc, user); check(SRP_OK(rc), "Failed to set client username."); rc = SRP_set_params(srpc, modulus->data, modulus->length, generator->data, generator->length, salt->data, salt->length); check(SRP_OK(rc), "SRP_set_params failed\n"); rc = SRP_gen_pub(srpc, &client_pub); check(SRP_OK(rc), "SRP_gen_pub failed\n"); return client_pub; error: return NULL; }
cstr *ssrp_server_start(SRP *srps, cstr *modulus, cstr *generator, cstr *salt, cstr *auth, const char * user) { SRP_RESULT rc; cstr *server_pub = NULL; rc = SRP_set_username(srps, user); check(SRP_OK(rc), "SRP_set_username failed\n"); rc = SRP_set_params(srps, modulus->data, modulus->length, generator->data, generator->length, salt->data, salt->length); check(SRP_OK(rc), "SRP_set_params failed\n"); rc = SRP_set_authenticator(srps, auth->data, auth->length); check(SRP_OK(rc), "SRP_set_authenticator failed\n"); rc = SRP_gen_pub(srps, &server_pub); check(SRP_OK(rc), "SRP_gen_pub failed\n"); return server_pub; error: return NULL; }
SRP_server_init_user(SRP * srp, const char * username) { SRP_set_server_lookup(srp, SRP_SERVER_system_lookup()); return SRP_set_username(srp, username); }