Support verification of RADIUS request messages

This commit is contained in:
Martin Willi
2012-03-05 18:06:13 +01:00
parent 3bc1829211
commit e8a8179706
2 changed files with 10 additions and 3 deletions
@@ -319,7 +319,14 @@ METHOD(radius_message_t, verify, bool,
/* replace Response by Request Authenticator for verification */
memcpy(res_auth, this->msg->authenticator, HASH_SIZE_MD5);
memcpy(this->msg->authenticator, req_auth, HASH_SIZE_MD5);
if (req_auth)
{
memcpy(this->msg->authenticator, req_auth, HASH_SIZE_MD5);
}
else
{
memset(this->msg->authenticator, 0, HASH_SIZE_MD5);
}
msg = chunk_create((u_char*)this->msg, ntohs(this->msg->length));
/* verify Response-Authenticator */
@@ -251,9 +251,9 @@ struct radius_message_t {
hasher_t *hasher, chunk_t secret);
/**
* Verify the integrity of a received RADIUS response.
* Verify the integrity of a received RADIUS message.
*
* @param req_auth 16 byte Authenticator of the corresponding request
* @param req_auth 16 byte Authenticator of request, or NULL
* @param secret shared RADIUS secret
* @param hasher hasher to verify Response-Authenticator
* @param signer signer to verify Message-Authenticator attribute