1189251Ssam/*
2189251Ssam * MD5 hash implementation and interface functions
3214734Srpaulo * Copyright (c) 2003-2009, Jouni Malinen <j@w1.fi>
4189251Ssam *
5189251Ssam * This program is free software; you can redistribute it and/or modify
6189251Ssam * it under the terms of the GNU General Public License version 2 as
7189251Ssam * published by the Free Software Foundation.
8189251Ssam *
9189251Ssam * Alternatively, this software may be distributed under the terms of BSD
10189251Ssam * license.
11189251Ssam *
12189251Ssam * See README and COPYING for more details.
13189251Ssam */
14189251Ssam
15189251Ssam#ifndef MD5_H
16189251Ssam#define MD5_H
17189251Ssam
18189251Ssam#define MD5_MAC_LEN 16
19189251Ssam
20214734Srpauloint hmac_md5_vector(const u8 *key, size_t key_len, size_t num_elem,
21214734Srpaulo		    const u8 *addr[], const size_t *len, u8 *mac);
22214734Srpauloint hmac_md5(const u8 *key, size_t key_len, const u8 *data, size_t data_len,
23214734Srpaulo	     u8 *mac);
24214734Srpaulo#ifdef CONFIG_FIPS
25214734Srpauloint hmac_md5_vector_non_fips_allow(const u8 *key, size_t key_len,
26214734Srpaulo				   size_t num_elem, const u8 *addr[],
27214734Srpaulo				   const size_t *len, u8 *mac);
28214734Srpauloint hmac_md5_non_fips_allow(const u8 *key, size_t key_len, const u8 *data,
29214734Srpaulo			    size_t data_len, u8 *mac);
30214734Srpaulo#else /* CONFIG_FIPS */
31214734Srpaulo#define hmac_md5_vector_non_fips_allow hmac_md5_vector
32214734Srpaulo#define hmac_md5_non_fips_allow hmac_md5
33214734Srpaulo#endif /* CONFIG_FIPS */
34189251Ssam
35189251Ssam#endif /* MD5_H */
36