*/
static int eapleap_ntpwdhash(unsigned char *ntpwdhash, VALUE_PAIR *password)
{
- if (password->attribute == PW_PASSWORD) {
- int i;
+ if ((password->attribute == PW_USER_PASSWORD) ||
+ (password->attribute == PW_CLEARTEXT_PASSWORD)) {
+ size_t i;
unsigned char unicode[512];
/*
/*
* Get the NT Password hash.
*/
- md4_calc(ntpwdhash, unicode, password->length * 2);
+ fr_md4_calc(ntpwdhash, unicode, password->length * 2);
} else { /* MUST be NT-Password */
if (password->length == 32) {
- password->length = lrad_hex2bin(password->vp_strvalue,
- password->vp_strvalue,
+ password->length = fr_hex2bin(password->vp_strvalue,
+ password->vp_octets,
16);
}
if (password->length != 16) {
VALUE_PAIR *user_name, VALUE_PAIR* password,
leap_session_t *session, VALUE_PAIR **reply_vps)
{
- int i;
+ size_t i;
unsigned char ntpwdhash[16], ntpwdhashhash[16];
unsigned char buffer[256];
LEAP_PACKET *reply;
- char *p;
+ unsigned char *p;
VALUE_PAIR *vp;
/*
eapleap_free(&reply);
return NULL;
}
- md4_calc(ntpwdhashhash, ntpwdhash, 16);
+ fr_md4_calc(ntpwdhashhash, ntpwdhash, 16);
/*
* Calculate our response, to authenticate ourselves
memcpy(p, session->peer_challenge, 8); /* PC */
p += 8;
memcpy(p, session->peer_response, 24); /* PR */
- p += 24;
/*
* These 16 bytes are the session key to use.
*/
- librad_md5_calc(ntpwdhash, buffer, 16 + 8 + 24 + 8 + 24);
+ fr_md5_calc(ntpwdhash, buffer, 16 + 8 + 24 + 8 + 24);
memcpy(vp->vp_strvalue + vp->length, ntpwdhash, 16);
memset(vp->vp_strvalue + vp->length + 16, 0,
i = 16;
rad_tunnel_pwencode(vp->vp_strvalue + vp->length, &i,
- request->secret, request->packet->vector);
+ request->client->secret, request->packet->vector);
vp->length += i;
pairadd(reply_vps, vp);
* Fill the challenge with random bytes.
*/
for (i = 0; i < reply->count; i++) {
- reply->challenge[i] = lrad_rand();
+ reply->challenge[i] = fr_rand();
}
DEBUG2(" rlm_eap_leap: Issuing AP Challenge");