]>
Commit | Line | Data |
---|---|---|
bac41a7b A |
1 | /* |
2 | * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved. | |
3 | * | |
4 | * The contents of this file constitute Original Code as defined in and are | |
5 | * subject to the Apple Public Source License Version 1.2 (the 'License'). | |
6 | * You may not use this file except in compliance with the License. Please obtain | |
7 | * a copy of the License at http://www.apple.com/publicsource and read it before | |
8 | * using this file. | |
9 | * | |
10 | * This Original Code and all software distributed under the License are | |
11 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS | |
12 | * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT | |
13 | * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | |
14 | * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the | |
15 | * specific language governing rights and limitations under the License. | |
16 | */ | |
17 | ||
18 | ||
19 | /* | |
20 | File: HMACSHA1.h | |
29654253 | 21 | Contains: Apple Data Security Services HMAC{SHA1,MD5} function declaration. |
bac41a7b A |
22 | Copyright: (C) 1999 by Apple Computer, Inc., all rights reserved |
23 | Written by: Michael Brouwer <mb@apple.com> | |
24 | */ | |
25 | #ifndef __HMACSHA1__ | |
26 | #define __HMACSHA1__ | |
27 | ||
28 | #include <CoreServices/../Frameworks/CarbonCore.framework/Headers/MacTypes.h> | |
29 | #include <Security/cssmtype.h> | |
df0e469f A |
30 | #include <MiscCSPAlgs/MD5.h> |
31 | #include <MiscCSPAlgs/SHA1.h> | |
bac41a7b A |
32 | |
33 | #ifdef __cplusplus | |
34 | extern "C" { | |
35 | #endif | |
36 | ||
df0e469f A |
37 | #define kHMACSHA1DigestSize SHA1_DIGEST_SIZE |
38 | #define kHMACMD5DigestSize MD5_DIGEST_SIZE | |
bac41a7b | 39 | |
29654253 A |
40 | /* This function create an HMACSHA1 digest of kHMACSHA1DigestSizestSize bytes |
41 | * and outputs it to resultPtr. See RFC 2104 for details. */ | |
bac41a7b A |
42 | void |
43 | hmacsha1 (const void *keyPtr, UInt32 keyLen, | |
44 | const void *textPtr, UInt32 textLen, | |
45 | void *resultPtr); | |
46 | ||
47 | /* | |
48 | * Staged version. | |
49 | * | |
29654253 | 50 | * Opaque reference to an hmac session |
bac41a7b A |
51 | */ |
52 | struct hmacContext; | |
53 | typedef struct hmacContext *hmacContextRef; | |
54 | ||
55 | hmacContextRef hmacAlloc(); | |
56 | void hmacFree( | |
57 | hmacContextRef hmac); | |
58 | CSSM_RETURN hmacInit( | |
59 | hmacContextRef hmac, | |
60 | const void *keyPtr, | |
29654253 A |
61 | UInt32 keyLen, |
62 | CSSM_BOOL sha1Digest); // true -> SHA1; false -> MD5 | |
bac41a7b A |
63 | CSSM_RETURN hmacUpdate( |
64 | hmacContextRef hmac, | |
65 | const void *textPtr, | |
66 | UInt32 textLen); | |
67 | CSSM_RETURN hmacFinal( | |
68 | hmacContextRef hmac, | |
69 | void *resultPtr); // caller mallocs, must be kSHA1DigestSize bytes | |
70 | ||
71 | #ifdef __cplusplus | |
72 | } | |
73 | #endif | |
74 | ||
75 | #endif /* __HMACSHA1__ */ |