+ buflen = sizeof(buf);
+ if (!PPP_DigestInit(ctx, PPP_md5())) {
+ error("RADIUS: Error setting hash algorithm to MD5 for MS-MPPE-%s-Key attribute", type);
+ } else if (!PPP_DigestUpdate(ctx, req_info->secret, strlen(req_info->secret))) {
+ error("RADIUS: Error mixing in radius secret for MS-MPPE-%s-Key attribute", type);
+ } else if (!PPP_DigestUpdate(ctx, req_info->request_vector, AUTH_VECTOR_LEN)) {
+ error("RADIUS: Error mixing in request vector for MS-MPPE-%s-Key attribute", type);
+ } else if (!PPP_DigestUpdate(ctx, salt, 2)) {
+ error("RADIUS: Error mixing in salt for MS-MPPE-%s-Key attribute", type);
+ } else if (!PPP_DigestFinal(ctx, buf, &buflen)) {
+ error("RADIUS: Error finalizing key buffer for MS-MPPE-%s-Key attribute", type);
+ } else {
+ status = 1;
+ }