xref: /freebsd/contrib/wpa/src/eap_common/chap.c (revision 0bfd163f522701b486e066fa2e56624c02f5081a)
139beb93cSSam Leffler /*
239beb93cSSam Leffler  * CHAP-MD5 (RFC 1994)
3e28a4053SRui Paulo  * Copyright (c) 2007-2009, Jouni Malinen <j@w1.fi>
439beb93cSSam Leffler  *
5*f05cddf9SRui Paulo  * This software may be distributed under the terms of the BSD license.
6*f05cddf9SRui Paulo  * See README for more details.
739beb93cSSam Leffler  */
839beb93cSSam Leffler 
939beb93cSSam Leffler #include "includes.h"
1039beb93cSSam Leffler 
1139beb93cSSam Leffler #include "common.h"
12e28a4053SRui Paulo #include "crypto/crypto.h"
1339beb93cSSam Leffler #include "chap.h"
1439beb93cSSam Leffler 
chap_md5(u8 id,const u8 * secret,size_t secret_len,const u8 * challenge,size_t challenge_len,u8 * response)15e28a4053SRui Paulo int chap_md5(u8 id, const u8 *secret, size_t secret_len, const u8 *challenge,
1639beb93cSSam Leffler 	      size_t challenge_len, u8 *response)
1739beb93cSSam Leffler {
1839beb93cSSam Leffler 	const u8 *addr[3];
1939beb93cSSam Leffler 	size_t len[3];
2039beb93cSSam Leffler 
2139beb93cSSam Leffler 	addr[0] = &id;
2239beb93cSSam Leffler 	len[0] = 1;
2339beb93cSSam Leffler 	addr[1] = secret;
2439beb93cSSam Leffler 	len[1] = secret_len;
2539beb93cSSam Leffler 	addr[2] = challenge;
2639beb93cSSam Leffler 	len[2] = challenge_len;
27e28a4053SRui Paulo 	return md5_vector(3, addr, len, response);
2839beb93cSSam Leffler }
29