My guess is that it would be easy. The differences are mainly in exported callbacks and some missing or extra script functions. k version has the *challenge() functions (which were removed from ser, but could be re-added easily) and some pv stuff.
andrei,
i tried to add k compatible www_challenge/proxy_challenge functions to modules_s/auth and it is not easy (at least for me). i created function
static inline int build_hf(struct sip_msg* msg, int stale, str* realm, str* nonce, str* algorithm, int hftype, str* hf)
that just builds the hf str and then using it, it is easy to implement current build_challenge_hf function:
int build_challenge_hf(struct sip_msg* msg, int stale, str* realm, str* nonce, str* algorithm, int hftype) { str hf; avp_value_t val;
if (build_hf(msg, stale, realm, nonce, algorithm, hftype, &hf)) { val.s = hf; if (add_avp(challenge_avpid.flags | AVP_VAL_STR, challenge_avpid.name, val) < 0) { ERR("auth: Error while creating attribute\n"); pkg_free(hf.s); return -1; } pkg_free(hf.s); return 0; } else { return -1; } }
but when i tried to implement k *_challenge functions using it, i was not able to figure out how to create nonce parameter. also, qop is module param in s auth.
-- juha