diff options
Diffstat (limited to 'src/libradius/radius_message.c')
-rw-r--r-- | src/libradius/radius_message.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/libradius/radius_message.c b/src/libradius/radius_message.c index a63374b5c..03be5a227 100644 --- a/src/libradius/radius_message.c +++ b/src/libradius/radius_message.c @@ -280,7 +280,7 @@ METHOD(radius_message_t, add, void, METHOD(radius_message_t, sign, void, private_radius_message_t *this, u_int8_t *req_auth, chunk_t secret, - hasher_t *hasher, signer_t *signer, rng_t *rng) + hasher_t *hasher, signer_t *signer, rng_t *rng, bool msg_auth) { if (rng) { @@ -289,7 +289,7 @@ METHOD(radius_message_t, sign, void, } else { - /* build Response-Authenticator */ + /* prepare build of Response-Authenticator */ if (req_auth) { memcpy(this->msg->authenticator, req_auth, HASH_SIZE_MD5); @@ -300,9 +300,7 @@ METHOD(radius_message_t, sign, void, } } - if (rng || this->msg->code == RMC_ACCESS_CHALLENGE - || this->msg->code == RMC_ACCESS_ACCEPT - || this->msg->code == RMC_ACCESS_REJECT) + if (msg_auth) { char buf[HASH_SIZE_MD5]; @@ -318,6 +316,7 @@ METHOD(radius_message_t, sign, void, { chunk_t msg; + /* build Response-Authenticator */ msg = chunk_create((u_char*)this->msg, ntohs(this->msg->length)); hasher->get_hash(hasher, msg, NULL); hasher->get_hash(hasher, secret, this->msg->authenticator); |