xref: /freebsd/contrib/wpa/src/eap_common/chap.c (revision 39beb93c3f8bdbf72a61fda42300b5ebed7390c8)
139beb93cSSam Leffler /*
239beb93cSSam Leffler  * CHAP-MD5 (RFC 1994)
339beb93cSSam Leffler  * Copyright (c) 2007, Jouni Malinen <j@w1.fi>
439beb93cSSam Leffler  *
539beb93cSSam Leffler  * This program is free software; you can redistribute it and/or modify
639beb93cSSam Leffler  * it under the terms of the GNU General Public License version 2 as
739beb93cSSam Leffler  * published by the Free Software Foundation.
839beb93cSSam Leffler  *
939beb93cSSam Leffler  * Alternatively, this software may be distributed under the terms of BSD
1039beb93cSSam Leffler  * license.
1139beb93cSSam Leffler  *
1239beb93cSSam Leffler  * See README and COPYING for more details.
1339beb93cSSam Leffler  */
1439beb93cSSam Leffler 
1539beb93cSSam Leffler #include "includes.h"
1639beb93cSSam Leffler 
1739beb93cSSam Leffler #include "common.h"
1839beb93cSSam Leffler #include "md5.h"
1939beb93cSSam Leffler #include "crypto.h"
2039beb93cSSam Leffler #include "chap.h"
2139beb93cSSam Leffler 
2239beb93cSSam Leffler void chap_md5(u8 id, const u8 *secret, size_t secret_len, const u8 *challenge,
2339beb93cSSam Leffler 	      size_t challenge_len, u8 *response)
2439beb93cSSam Leffler {
2539beb93cSSam Leffler 	const u8 *addr[3];
2639beb93cSSam Leffler 	size_t len[3];
2739beb93cSSam Leffler 
2839beb93cSSam Leffler 	addr[0] = &id;
2939beb93cSSam Leffler 	len[0] = 1;
3039beb93cSSam Leffler 	addr[1] = secret;
3139beb93cSSam Leffler 	len[1] = secret_len;
3239beb93cSSam Leffler 	addr[2] = challenge;
3339beb93cSSam Leffler 	len[2] = challenge_len;
3439beb93cSSam Leffler 	md5_vector(3, addr, len, response);
3539beb93cSSam Leffler }
36