1 | /* Copyright (c) (2011,2012,2013,2014,2015,2016,2017,2018,2019) Apple Inc. All rights reserved. |
2 | * |
3 | * corecrypto is licensed under Apple Inc.’s Internal Use License Agreement (which |
4 | * is contained in the License.txt file distributed with corecrypto) and only to |
5 | * people who accept that license. IMPORTANT: Any license rights granted to you by |
6 | * Apple Inc. (if any) are limited to internal use within your organization only on |
7 | * devices and computers you own or control, for the sole purpose of verifying the |
8 | * security characteristics and correct functioning of the Apple Software. You may |
9 | * not, directly or indirectly, redistribute the Apple Software or any portions thereof. |
10 | */ |
11 | |
12 | #ifndef _CORECRYPTO_CCMODE_FACTORY_H_ |
13 | #define _CORECRYPTO_CCMODE_FACTORY_H_ |
14 | |
15 | #include <corecrypto/ccn.h> |
16 | #include <corecrypto/ccmode_impl.h> |
17 | |
18 | /* Functions defined in this file are only to be used |
19 | within corecrypto files. |
20 | */ |
21 | |
22 | /* Use these function to runtime initialize a ccmode_cbc decrypt object (for |
23 | example if it's part of a larger structure). Normally you would pass a |
24 | ecb decrypt mode implementation of some underlying algorithm as the ecb |
25 | parameter. */ |
26 | void ccmode_factory_cbc_decrypt(struct ccmode_cbc *cbc, |
27 | const struct ccmode_ecb *ecb); |
28 | |
29 | /* Use these function to runtime initialize a ccmode_cbc encrypt object (for |
30 | example if it's part of a larger structure). Normally you would pass a |
31 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
32 | parameter. */ |
33 | void ccmode_factory_cbc_encrypt(struct ccmode_cbc *cbc, |
34 | const struct ccmode_ecb *ecb); |
35 | |
36 | |
37 | /* Use these function to runtime initialize a ccmode_cfb decrypt object (for |
38 | example if it's part of a larger structure). Normally you would pass a |
39 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
40 | parameter. */ |
41 | void ccmode_factory_cfb_decrypt(struct ccmode_cfb *cfb, |
42 | const struct ccmode_ecb *ecb); |
43 | |
44 | /* Use these function to runtime initialize a ccmode_cfb encrypt object (for |
45 | example if it's part of a larger structure). Normally you would pass a |
46 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
47 | parameter. */ |
48 | void ccmode_factory_cfb_encrypt(struct ccmode_cfb *cfb, |
49 | const struct ccmode_ecb *ecb); |
50 | |
51 | /* Use these function to runtime initialize a ccmode_cfb8 decrypt object (for |
52 | example if it's part of a larger structure). Normally you would pass a |
53 | ecb decrypt mode implementation of some underlying algorithm as the ecb |
54 | parameter. */ |
55 | void ccmode_factory_cfb8_decrypt(struct ccmode_cfb8 *cfb8, |
56 | const struct ccmode_ecb *ecb); |
57 | |
58 | /* Use these function to runtime initialize a ccmode_cfb8 encrypt object (for |
59 | example if it's part of a larger structure). Normally you would pass a |
60 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
61 | parameter. */ |
62 | void ccmode_factory_cfb8_encrypt(struct ccmode_cfb8 *cfb8, |
63 | const struct ccmode_ecb *ecb); |
64 | |
65 | /* Use these function to runtime initialize a ccmode_ctr decrypt object (for |
66 | example if it's part of a larger structure). Normally you would pass a |
67 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
68 | parameter. */ |
69 | void ccmode_factory_ctr_crypt(struct ccmode_ctr *ctr, |
70 | const struct ccmode_ecb *ecb); |
71 | |
72 | /* Use these function to runtime initialize a ccmode_gcm decrypt object (for |
73 | example if it's part of a larger structure). For GCM you always pass a |
74 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
75 | parameter. */ |
76 | void ccmode_factory_gcm_decrypt(struct ccmode_gcm *gcm, |
77 | const struct ccmode_ecb *ecb_encrypt); |
78 | |
79 | /* Use these function to runtime initialize a ccmode_gcm encrypt object (for |
80 | example if it's part of a larger structure). For GCM you always pass a |
81 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
82 | parameter. */ |
83 | void ccmode_factory_gcm_encrypt(struct ccmode_gcm *gcm, |
84 | const struct ccmode_ecb *ecb_encrypt); |
85 | |
86 | /* Use these function to runtime initialize a ccmode_ccm decrypt object (for |
87 | example if it's part of a larger structure). For CCM you always pass a |
88 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
89 | parameter. */ |
90 | |
91 | void ccmode_factory_ccm_decrypt(struct ccmode_ccm *ccm, |
92 | const struct ccmode_ecb *ecb_encrypt); |
93 | |
94 | /* Use these function to runtime initialize a ccmode_ccm encrypt object (for |
95 | example if it's part of a larger structure). For CCM you always pass a |
96 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
97 | parameter. */ |
98 | void ccmode_factory_ccm_encrypt(struct ccmode_ccm *ccm, |
99 | const struct ccmode_ecb *ecb_encrypt); |
100 | |
101 | /* Use these function to runtime initialize a ccmode_ofb encrypt object (for |
102 | example if it's part of a larger structure). Normally you would pass a |
103 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
104 | parameter. */ |
105 | void ccmode_factory_ofb_crypt(struct ccmode_ofb *ofb, |
106 | const struct ccmode_ecb *ecb); |
107 | |
108 | /* Use these function to runtime initialize a ccmode_omac decrypt object (for |
109 | example if it's part of a larger structure). Normally you would pass a |
110 | ecb decrypt mode implementation of some underlying algorithm as the ecb |
111 | parameter. */ |
112 | void ccmode_factory_omac_decrypt(struct ccmode_omac *omac, |
113 | const struct ccmode_ecb *ecb); |
114 | |
115 | /* Use these function to runtime initialize a ccmode_omac encrypt object (for |
116 | example if it's part of a larger structure). Normally you would pass a |
117 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
118 | parameter. */ |
119 | void ccmode_factory_omac_encrypt(struct ccmode_omac *omac, |
120 | const struct ccmode_ecb *ecb); |
121 | |
122 | /* Use these function to runtime initialize a ccmode_xts decrypt object (for |
123 | example if it's part of a larger structure). Normally you would pass a |
124 | ecb decrypt mode implementation of some underlying algorithm as the ecb |
125 | parameter. */ |
126 | void ccmode_factory_xts_decrypt(struct ccmode_xts *xts, |
127 | const struct ccmode_ecb *ecb, |
128 | const struct ccmode_ecb *ecb_encrypt); |
129 | |
130 | /* Use these function to runtime initialize a ccmode_xts encrypt object (for |
131 | example if it's part of a larger structure). Normally you would pass a |
132 | ecb encrypt mode implementation of some underlying algorithm as the ecb |
133 | parameter. */ |
134 | void ccmode_factory_xts_encrypt(struct ccmode_xts *xts, |
135 | const struct ccmode_ecb *ecb, |
136 | const struct ccmode_ecb *ecb_encrypt); |
137 | |
138 | #endif /* _CORECRYPTO_CCMODE_FACTORY_H_ */ |
139 | |