]>
git.saurik.com Git - apple/security.git/blob - Security/libsecurity_apple_csp/lib/pbkdDigest.h
2 * Copyright (c) 2003,2011,2014 Apple Inc. All Rights Reserved.
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
7 * obtain a copy of the License at http://www.apple.com/publicsource and
8 * read it before using this file.
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
12 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
13 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
14 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
15 * Please see the License for the specific language governing rights and
16 * limitations under the License.
19 * pbkdDigest.h - SHA1/MD5 digest object for HMAC and PBE routines
22 #ifndef _PBKD_DIGEST_H_
23 #define _PBKD_DIGEST_H_
25 #include <Security/cssmtype.h>
26 #include <CommonCrypto/CommonDigest.h>
32 #define kSHA1DigestSize CC_SHA1_DIGEST_LENGTH
33 #define kSHA1BlockSize CC_SHA1_BLOCK_BYTES
35 #define kMD5DigestSize CC_MD5_DIGEST_LENGTH
36 #define kMD5BlockSize CC_MD5_BLOCK_BYTES
38 #define kMD2DigestSize CC_MD2_DIGEST_LENGTH
39 #define kMD2BlockSize CC_MD2_BLOCK_BYTES
41 #define kMaxDigestSize kSHA1DigestSize
43 typedef int (*DigestInitFcn
)(void *ctx
);
44 typedef int (*DigestUpdateFcn
)(void *ctx
, const void *data
, unsigned long len
);
45 typedef int (*DigestFinalFcn
)(void *md
, void *c
);
47 /* callouts to eay/libmd implementations */
50 DigestUpdateFcn update
;
56 CC_SHA1_CTX sha1Context
;
57 CC_MD5_CTX md5Context
;
58 CC_MD2_CTX md2Context
;
61 CSSM_ALGORITHMS hashAlg
;
64 /* Ops on a DigestCtx - all return zero on error, like the underlying digests do */
67 CSSM_ALGORITHMS hashAlg
);
82 #endif /* _PBKD_DIGEST_H_ */