X-Git-Url: http://www.project-moonshot.org/gitweb/?p=mech_eap.git;a=blobdiff_plain;f=mech_eap%2Futil_radius.cpp;h=d8ec3df4d2550468bb7bdcd3c4b3dca1d520d8a6;hp=e152cd269d31f796d1cc37d861680bbdd2d01a53;hb=HEAD;hpb=c9c327931f22818098c26999f613560ac7128726 diff --git a/mech_eap/util_radius.cpp b/mech_eap/util_radius.cpp index e152cd2..d8ec3df 100644 --- a/mech_eap/util_radius.cpp +++ b/mech_eap/util_radius.cpp @@ -35,6 +35,10 @@ */ #include "gssapiP_eap.h" +#include "util_radius.h" +#include "utils/radius_utils.h" + +#ifdef GSSEAP_ENABLE_ACCEPTOR #define RS_MAP_ERROR(code) (ERROR_TABLE_BASE_rse + (code)) @@ -171,11 +175,19 @@ isInternalAttributeP(const gss_eap_attrid &attrid) switch (attrid.first) { case VENDORPEC_UKERNA: switch (attrid.second) { + case PW_SAML_AAA_ASSERTION: + bInternalAttribute = true; + break; + default: + break; + } + break; + case 0: + switch (attrid.second) { case PW_GSS_ACCEPTOR_SERVICE_NAME: case PW_GSS_ACCEPTOR_HOST_NAME: - case PW_GSS_ACCEPTOR_SERVICE_SPECIFIC: + case PW_GSS_ACCEPTOR_SERVICE_SPECIFICS: case PW_GSS_ACCEPTOR_REALM_NAME: - case PW_SAML_AAA_ASSERTION: bInternalAttribute = true; break; default: @@ -822,7 +834,7 @@ gss_eap_radius_attr_provider::initWithJsonObject(const gss_eap_attr_ctx *ctx, const char * gss_eap_radius_attr_provider::prefix(void) const { - return "urn:ietf:params:gssapi:aaa-radius"; + return "urn:ietf:params:gss:radius-attribute"; } JSONObject @@ -926,3 +938,17 @@ fail: return major; } + +#endif /* GSSEAP_ENABLE_ACCEPTOR */ + +OM_uint32 +gssEapRadiusAddAttr(OM_uint32 *minor, struct wpabuf **buf, uint16_t attr, + uint16_t vendor, gss_buffer_t buffer) +{ + if (radius_add_tlv(buf, attr, vendor, (u8 *)buffer->value, + buffer->length) < 0) { + *minor = ENOMEM; /* could be length too long, though */ + return GSS_S_FAILURE; + } + return GSS_S_COMPLETE; +}