1 | /* |
2 | * ccsha2.h |
3 | * corecrypto |
4 | * |
5 | * Created on 12/03/2010 |
6 | * |
7 | * Copyright (c) 2010,2011,2012,2014,2015 Apple Inc. All rights reserved. |
8 | * |
9 | */ |
10 | |
11 | #ifndef _CORECRYPTO_CCSHA2_H_ |
12 | #define _CORECRYPTO_CCSHA2_H_ |
13 | |
14 | #include <corecrypto/ccdigest.h> |
15 | |
16 | /* sha2 selectors */ |
17 | const struct ccdigest_info *ccsha224_di(void); |
18 | const struct ccdigest_info *ccsha256_di(void); |
19 | const struct ccdigest_info *ccsha384_di(void); |
20 | const struct ccdigest_info *ccsha512_di(void); |
21 | |
22 | /* TODO: Placeholders */ |
23 | #define ccoid_sha224 ((unsigned char *)"\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x04") |
24 | #define ccoid_sha224_len 11 |
25 | |
26 | #define ccoid_sha256 ((unsigned char *)"\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x01") |
27 | #define ccoid_sha256_len 11 |
28 | |
29 | #define ccoid_sha384 ((unsigned char *)"\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x02") |
30 | #define ccoid_sha384_len 11 |
31 | |
32 | #define ccoid_sha512 ((unsigned char *)"\x06\x09\x60\x86\x48\x01\x65\x03\x04\x02\x03") |
33 | #define ccoid_sha512_len 11 |
34 | |
35 | |
36 | /* SHA256 */ |
37 | #define CCSHA256_BLOCK_SIZE 64 |
38 | #define CCSHA256_OUTPUT_SIZE 32 |
39 | #define CCSHA256_STATE_SIZE 32 |
40 | extern const struct ccdigest_info ccsha256_ltc_di; |
41 | #if CCSHA2_VNG_INTEL |
42 | extern const struct ccdigest_info ccsha224_vng_intel_SupplementalSSE3_di; |
43 | extern const struct ccdigest_info ccsha256_vng_intel_SupplementalSSE3_di; |
44 | #endif |
45 | #if CCSHA2_VNG_ARMV7NEON |
46 | extern const struct ccdigest_info ccsha224_vng_armv7neon_di; |
47 | extern const struct ccdigest_info ccsha256_vng_armv7neon_di; |
48 | #endif |
49 | |
50 | /* SHA224 */ |
51 | #define CCSHA224_OUTPUT_SIZE 28 |
52 | extern const struct ccdigest_info ccsha224_ltc_di; |
53 | |
54 | /* SHA512 */ |
55 | #define CCSHA512_BLOCK_SIZE 128 |
56 | #define CCSHA512_OUTPUT_SIZE 64 |
57 | #define CCSHA512_STATE_SIZE 64 |
58 | extern const struct ccdigest_info ccsha512_ltc_di; |
59 | |
60 | /* SHA384 */ |
61 | #define CCSHA384_OUTPUT_SIZE 48 |
62 | extern const struct ccdigest_info ccsha384_ltc_di; |
63 | |
64 | #endif /* _CORECRYPTO_CCSHA2_H_ */ |
65 | |