Support verification of RADIUS request messages
This commit is contained in:
@@ -319,7 +319,14 @@ METHOD(radius_message_t, verify, bool,
|
|||||||
|
|
||||||
/* replace Response by Request Authenticator for verification */
|
/* replace Response by Request Authenticator for verification */
|
||||||
memcpy(res_auth, this->msg->authenticator, HASH_SIZE_MD5);
|
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));
|
msg = chunk_create((u_char*)this->msg, ntohs(this->msg->length));
|
||||||
|
|
||||||
/* verify Response-Authenticator */
|
/* verify Response-Authenticator */
|
||||||
|
|||||||
@@ -251,9 +251,9 @@ struct radius_message_t {
|
|||||||
hasher_t *hasher, chunk_t secret);
|
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 secret shared RADIUS secret
|
||||||
* @param hasher hasher to verify Response-Authenticator
|
* @param hasher hasher to verify Response-Authenticator
|
||||||
* @param signer signer to verify Message-Authenticator attribute
|
* @param signer signer to verify Message-Authenticator attribute
|
||||||
|
|||||||
Reference in New Issue
Block a user