Staging: rt28x0: updates from vendor's V2.1.0.0 drivers
[sfrench/cifs-2.6.git] / drivers / staging / rt2860 / crypt_hmac.h
1 /*
2  *************************************************************************
3  * Ralink Tech Inc.
4  * 5F., No.36, Taiyuan St., Jhubei City,
5  * Hsinchu County 302,
6  * Taiwan, R.O.C.
7  *
8  * (c) Copyright 2002-2007, Ralink Technology, Inc.
9  *
10  * This program is free software; you can redistribute it and/or modify  *
11  * it under the terms of the GNU General Public License as published by  *
12  * the Free Software Foundation; either version 2 of the License, or     *
13  * (at your option) any later version.                                   *
14  *                                                                       *
15  * This program is distributed in the hope that it will be useful,       *
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of        *
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
18  * GNU General Public License for more details.                          *
19  *                                                                       *
20  * You should have received a copy of the GNU General Public License     *
21  * along with this program; if not, write to the                         *
22  * Free Software Foundation, Inc.,                                       *
23  * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
24  *                                                                       *
25  *************************************************************************
26  */
27
28 /****************************************************************************
29     Module Name:
30     HMAC
31
32     Abstract:
33     FIPS 198: The Keyed-Hash Message Authentication Code (HMAC)
34
35     Revision History:
36     Who         When            What
37     --------    ----------      ------------------------------------------
38     Eddy        2008/11/24      Create HMAC-SHA1, HMAC-SHA256
39 ***************************************************************************/
40 #ifndef __CRYPT_HMAC_H__
41 #define __CRYPT_HMAC_H__
42
43 #ifdef CRYPT_TESTPLAN
44 #include "crypt_testplan.h"
45 #else
46 #include "rt_config.h"
47 #endif /* CRYPT_TESTPLAN */
48
49 #ifdef SHA1_SUPPORT
50 #define HMAC_SHA1_SUPPORT
51 VOID HMAC_SHA1 (
52     IN  const UINT8 Key[],
53     IN  UINT KeyLen,
54     IN  const UINT8 Message[],
55     IN  UINT MessageLen,
56     OUT UINT8 MAC[],
57     IN  UINT MACLen);
58 #endif /* SHA1_SUPPORT */
59
60 #ifdef SHA256_SUPPORT
61 #define HMAC_SHA256_SUPPORT
62 VOID HMAC_SHA256 (
63     IN  const UINT8 Key[],
64     IN  UINT KeyLen,
65     IN  const UINT8 Message[],
66     IN  UINT MessageLen,
67     OUT UINT8 MAC[],
68     IN  UINT MACLen);
69 #endif /* SHA256_SUPPORT */
70
71 #ifdef MD5_SUPPORT
72 #define HMAC_MD5_SUPPORT
73 VOID HMAC_MD5 (
74     IN  const UINT8 Key[],
75     IN  UINT KeyLen,
76     IN  const UINT8 Message[],
77     IN  UINT MessageLen,
78     OUT UINT8 MAC[],
79     IN  UINT MACLen);
80 #endif /* MD5_SUPPORT */
81
82 #endif /* __CRYPT_HMAC_H__ */