iked includes a few mschap functions that it doesn't use. smaller,
cleaner, better without them.

Another copy of this code lives in npppd, though the required
functions there are slightly different. (The chap_ms.c file in pppd is
entirely different.)

Index: chap_ms.c
===================================================================
RCS file: /cvs/src/sbin/iked/chap_ms.c,v
retrieving revision 1.7
diff -u -p -r1.7 chap_ms.c
--- chap_ms.c   16 Apr 2014 04:59:56 -0000      1.7
+++ chap_ms.c   19 Nov 2014 03:32:13 -0000
@@ -331,79 +331,3 @@ mschap_msk(u_int8_t *password, int passw
        memcpy(msk, &recvkey, sizeof(recvkey));
        memcpy(msk + sizeof(recvkey), &sendkey, sizeof(sendkey));
 }
-
-void
-mschap_newkey(u_int8_t *startkey, u_int8_t *sessionkey,
-    long sessionkeylen, u_int8_t *key)
-{
-       EVP_MD_CTX       ctx;
-       u_int8_t         md[SHA_DIGEST_LENGTH];
-       u_int            mdlen;
-
-       EVP_DigestInit(&ctx, EVP_sha1());
-       EVP_DigestUpdate(&ctx, startkey, sessionkeylen);
-       EVP_DigestUpdate(&ctx, sha1_pad1, sizeof(sha1_pad1));
-       EVP_DigestUpdate(&ctx, sessionkey, sessionkeylen);
-       EVP_DigestUpdate(&ctx, sha1_pad2, sizeof(sha1_pad2));
-       EVP_DigestFinal(&ctx, md, &mdlen);
-
-       memcpy(key, md, sessionkeylen);
-}
-
-void
-mschap_nt(u_int8_t *password_hash, u_int8_t *challenge)
-{
-       u_int8_t         response[24];
-
-       mschap_challenge_response(challenge, password_hash, response);
-       memcpy(password_hash, response, sizeof(response));
-       password_hash[24] = 1;  /* NT-style response */
-}
-
-void
-mschap_lanman(u_int8_t *digest, u_int8_t *challenge, u_int8_t *secret)
-{
-       static u_int8_t  salt[] = "KGS!@#$%"; /* RASAPI32.dll */
-       u_int8_t         SECRET[14 + 1], *ptr, *end;
-       u_int8_t         hash[MSCHAP_HASH_SZ];
-
-       bzero(&SECRET, sizeof(SECRET));
-       end = SECRET + (sizeof(SECRET) - 1);
-       for (ptr = SECRET; *secret && ptr < end; ptr++, secret++)
-               *ptr = toupper(*secret);
-
-       mschap_des_encrypt(salt, SECRET, hash);
-       mschap_des_encrypt(salt, SECRET + 7, hash + 8);
-
-       mschap_challenge_response(challenge, hash, digest);
-}
-
-void
-mschap_radiuskey(u_int8_t *plain, const u_int8_t *crypted,
-    const u_int8_t *authenticator, const u_int8_t *secret)
-{
-       EVP_MD_CTX       ctx;
-       u_int8_t         b[MD5_DIGEST_LENGTH], p[32];
-       u_int            i, mdlen;
-
-       EVP_DigestInit(&ctx, EVP_md5());
-       EVP_DigestUpdate(&ctx, secret, strlen(secret));
-       EVP_DigestUpdate(&ctx, authenticator, 16);
-       EVP_DigestUpdate(&ctx, crypted, 2);
-       EVP_DigestFinal(&ctx, b, &mdlen);
-
-       for (i = 0; i < mdlen; i++) {
-               p[i] = b[i] ^ crypted[i+2];
-       }
-
-       EVP_DigestInit(&ctx, EVP_md5());
-       EVP_DigestUpdate(&ctx, secret, strlen(secret));
-       EVP_DigestUpdate(&ctx, crypted + 2, mdlen);
-       EVP_DigestFinal(&ctx, b, &mdlen);
-
-       for (i = 0; i < mdlen; i++) {
-               p[i+16] = b[i] ^ crypted[i+18];
-       }
-
-       memcpy(plain, p+1, 16);
-}
Index: chap_ms.h
===================================================================
RCS file: /cvs/src/sbin/iked/chap_ms.h,v
retrieving revision 1.3
diff -u -p -r1.3 chap_ms.h
--- chap_ms.h   8 Jan 2013 10:38:19 -0000       1.3
+++ chap_ms.h   19 Nov 2014 03:32:35 -0000
@@ -34,18 +34,12 @@ void         mschap_nt_response(u_int8_t *, u_i
 void    mschap_auth_response(u_int8_t *, int, u_int8_t *, u_int8_t *,
            u_int8_t *, u_int8_t *, int, u_int8_t *);
 
-void    mschap_nt(u_int8_t *, u_int8_t *);
-void    mschap_lanman(u_int8_t *, u_int8_t *, u_int8_t *);
-
 void    mschap_ntpassword_hash(u_int8_t *, int, u_int8_t *);
 void    mschap_challenge_hash(u_int8_t *, u_int8_t *, u_int8_t *,
            int, u_int8_t *);
 
 void    mschap_asymetric_startkey(u_int8_t *, u_int8_t *, int, int, int);
 void    mschap_masterkey(u_int8_t *, u_int8_t *, u_int8_t *);
-void    mschap_newkey(u_int8_t *, u_int8_t *, long, u_int8_t *);
-void    mschap_radiuskey(u_int8_t *, const u_int8_t *, const u_int8_t *,
-           const u_int8_t *);
 void    mschap_msk(u_int8_t *, int, u_int8_t *, u_int8_t *);
 
 #endif /* _CHAP_MS_H */

Reply via email to