int ki_autheph_check(sip_msg_t *_m, str *srealm) { if (eph_auth_api.pre_auth == NULL) { LM_ERR("autheph_check() cannot be used without the auth " "module\n"); return AUTH_ERROR; } if (_m->REQ_METHOD == METHOD_ACK || _m->REQ_METHOD == METHOD_CANCEL) { return AUTH_OK; } if (srealm->len == 0) { LM_ERR("invalid realm parameter - empty value\n"); return AUTH_ERROR; } if (_m->REQ_METHOD == METHOD_REGISTER) { return digest_authenticate(_m, srealm, HDR_AUTHORIZATION_T, &_m->first_line.u.request.method); } else { return digest_authenticate(_m, srealm, HDR_PROXYAUTH_T, &_m->first_line.u.request.method); } }
int ki_autheph_www_method(sip_msg_t *_m, str *srealm, str *smethod) { if (eph_auth_api.pre_auth == NULL) { LM_ERR("autheph_www() cannot be used without the auth " "module\n"); return AUTH_ERROR; } if (_m->REQ_METHOD == METHOD_ACK || _m->REQ_METHOD == METHOD_CANCEL) { return AUTH_OK; } if (srealm->len == 0) { LM_ERR("invalid realm parameter - empty value\n"); return AUTH_ERROR; } if (smethod->len == 0) { LM_ERR("invalid method value - empty value\n"); return AUTH_ERROR; } return digest_authenticate(_m, srealm, HDR_AUTHORIZATION_T, smethod); }
/* * Authenticate using WWW-Authorize header field */ int www_authenticate(struct sip_msg* _m, char* _realm, char* _table) { str srealm; str stable; if(_table==NULL) { LM_ERR("invalid table parameter\n"); return AUTH_ERROR; } stable.s = _table; stable.len = strlen(stable.s); if (get_str_fparam(&srealm, _m, (fparam_t*)_realm) < 0) { LM_ERR("failed to get realm value\n"); return AUTH_ERROR; } if (srealm.len==0) { LM_ERR("invalid realm parameter - empty value\n"); return AUTH_ERROR; } LM_DBG("realm value [%.*s]\n", srealm.len, srealm.s); return digest_authenticate(_m, &srealm, &stable, HDR_AUTHORIZATION_T, &_m->first_line.u.request.method); }
int autheph_check(struct sip_msg *_m, char *_realm) { str srealm; if (eph_auth_api.pre_auth == NULL) { LM_ERR("autheph_check() cannot be used without the auth " "module\n"); return AUTH_ERROR; } if (_m->REQ_METHOD == METHOD_ACK || _m->REQ_METHOD == METHOD_CANCEL) { return AUTH_OK; } if(_m == NULL || _realm == NULL) { LM_ERR("invalid parameters\n"); return AUTH_ERROR; } if (get_str_fparam(&srealm, _m, (fparam_t*)_realm) < 0) { LM_ERR("failed to get realm value\n"); return AUTH_ERROR; } if (srealm.len == 0) { LM_ERR("invalid realm parameter - empty value\n"); return AUTH_ERROR; } if (_m->REQ_METHOD == METHOD_REGISTER) { return digest_authenticate(_m, &srealm, HDR_AUTHORIZATION_T, &_m->first_line.u.request.method); } else { return digest_authenticate(_m, &srealm, HDR_PROXYAUTH_T, &_m->first_line.u.request.method); } }
int autheph_www2(struct sip_msg *_m, char *_realm, char *_method) { str srealm; str smethod; if (eph_auth_api.pre_auth == NULL) { LM_ERR("autheph_www() cannot be used without the auth " "module\n"); return AUTH_ERROR; } if (_m->REQ_METHOD == METHOD_ACK || _m->REQ_METHOD == METHOD_CANCEL) { return AUTH_OK; } if(_m == NULL || _realm == NULL) { LM_ERR("invalid parameters\n"); return AUTH_ERROR; } if (get_str_fparam(&srealm, _m, (fparam_t*)_realm) < 0) { LM_ERR("failed to get realm value\n"); return AUTH_ERROR; } if (srealm.len == 0) { LM_ERR("invalid realm parameter - empty value\n"); return AUTH_ERROR; } if (get_str_fparam(&smethod, _m, (fparam_t*)_method) < 0) { LM_ERR("failed to get method value\n"); return AUTH_ERROR; } if (smethod.len == 0) { LM_ERR("invalid method value - empty value\n"); return AUTH_ERROR; } return digest_authenticate(_m, &srealm, HDR_AUTHORIZATION_T, &smethod); }
/* * Authenticate using WWW-Authorize header field */ int www_authenticate(struct sip_msg* _m, char* _realm, char* _table) { return digest_authenticate(_m, (fparam_t*)_realm, _table, HDR_AUTHORIZATION_T); }
/* * Authenticate using Proxy-Authorize header field */ int proxy_authenticate(struct sip_msg* _m, char* _realm, char* _table) { return digest_authenticate(_m, (fparam_t*)_realm, _table, HDR_PROXYAUTH_T); }