1# We make separate GOAL variables for each algorithm, to make it easy to
2# switch each to the Legacy provider when needed.
3#
4# $TDES_1_GOAL and $TDES_2_GOAL separate FIPSable and non-FIPSable TDES.
5# The latter may become legacy sooner, so it's comfortable to have two
6# variables already now, to switch the non-FIPSable TDES to legacy if needed.
7
8$COMMON_GOAL=../../libcommon.a
9
10$NULL_GOAL=../../libdefault.a
11$AES_GOAL=../../libdefault.a ../../libfips.a
12$TDES_1_GOAL=../../libdefault.a ../../libfips.a
13$TDES_2_GOAL=../../libdefault.a
14$ARIA_GOAL=../../libdefault.a
15$CAMELLIA_GOAL=../../libdefault.a
16$DES_GOAL=../../liblegacy.a
17$BLOWFISH_GOAL=../../liblegacy.a
18$IDEA_GOAL=../../liblegacy.a
19$CAST5_GOAL=../../liblegacy.a
20$RC2_GOAL=../../liblegacy.a
21$RC4_GOAL=../../liblegacy.a
22$RC5_GOAL=../../liblegacy.a
23$SEED_GOAL=../../liblegacy.a
24$SM4_GOAL=../../libdefault.a
25$CHACHA_GOAL=../../libdefault.a
26$CHACHAPOLY_GOAL=../../libdefault.a
27$SIV_GOAL=../../libdefault.a
28
29# This source is common building blocks for all ciphers in all our providers.
30SOURCE[$COMMON_GOAL]=\
31        ciphercommon.c ciphercommon_hw.c ciphercommon_block.c \
32        ciphercommon_gcm.c ciphercommon_gcm_hw.c \
33        ciphercommon_ccm.c ciphercommon_ccm_hw.c
34
35IF[{- !$disabled{des} -}]
36  SOURCE[$TDES_1_GOAL]=cipher_tdes.c cipher_tdes_common.c cipher_tdes_hw.c
37ENDIF
38
39SOURCE[$NULL_GOAL]=\
40        cipher_null.c
41
42SOURCE[$AES_GOAL]=\
43        cipher_aes.c cipher_aes_hw.c \
44        cipher_aes_xts.c cipher_aes_xts_hw.c \
45        cipher_aes_gcm.c cipher_aes_gcm_hw.c \
46        cipher_aes_ccm.c cipher_aes_ccm_hw.c \
47        cipher_aes_wrp.c \
48        cipher_aes_cbc_hmac_sha.c \
49        cipher_aes_cbc_hmac_sha256_hw.c cipher_aes_cbc_hmac_sha1_hw.c \
50        cipher_cts.c
51
52# Extra code to satisfy the FIPS and non-FIPS separation.
53# When the AES-xxx-XTS moves to legacy, cipher_aes_xts_fips.c can be removed.
54SOURCE[$AES_GOAL]=cipher_aes_xts_fips.c
55
56IF[{- !$disabled{siv} -}]
57  SOURCE[$SIV_GOAL]=\
58      cipher_aes_siv.c cipher_aes_siv_hw.c
59ENDIF
60
61IF[{- !$disabled{des} -}]
62  SOURCE[$TDES_2_GOAL]=\
63      cipher_tdes_default.c cipher_tdes_default_hw.c \
64      cipher_tdes_wrap.c cipher_tdes_wrap_hw.c
65  SOURCE[$DES_GOAL]=\
66      cipher_desx.c cipher_desx_hw.c \
67      cipher_des.c cipher_des_hw.c
68 IF[{- !$disabled{module} -}]
69   SOURCE[$DES_GOAL]=\
70       cipher_tdes_common.c
71 ENDIF
72ENDIF
73
74IF[{- !$disabled{aria} -}]
75  SOURCE[$ARIA_GOAL]=\
76      cipher_aria.c cipher_aria_hw.c \
77      cipher_aria_gcm.c cipher_aria_gcm_hw.c \
78      cipher_aria_ccm.c cipher_aria_ccm_hw.c
79ENDIF
80
81IF[{- !$disabled{camellia} -}]
82  SOURCE[$CAMELLIA_GOAL]=\
83      cipher_camellia.c cipher_camellia_hw.c
84ENDIF
85
86IF[{- !$disabled{bf} -}]
87  SOURCE[$BLOWFISH_GOAL]=\
88      cipher_blowfish.c cipher_blowfish_hw.c
89ENDIF
90
91IF[{- !$disabled{idea} -}]
92  SOURCE[$IDEA_GOAL]=\
93      cipher_idea.c cipher_idea_hw.c
94ENDIF
95
96IF[{- !$disabled{cast} -}]
97  SOURCE[$CAST5_GOAL]=\
98      cipher_cast5.c cipher_cast5_hw.c
99ENDIF
100
101IF[{- !$disabled{seed} -}]
102  SOURCE[$SEED_GOAL]=\
103      cipher_seed.c cipher_seed_hw.c
104ENDIF
105
106IF[{- !$disabled{sm4} -}]
107  SOURCE[$SM4_GOAL]=\
108      cipher_sm4.c cipher_sm4_hw.c
109ENDIF
110
111IF[{- !$disabled{ocb} -}]
112  SOURCE[$AES_GOAL]=\
113       cipher_aes_ocb.c cipher_aes_ocb_hw.c
114ENDIF
115
116IF[{- !$disabled{rc4} -}]
117  SOURCE[$RC4_GOAL]=\
118      cipher_rc4.c cipher_rc4_hw.c
119 IF[{- !$disabled{md5} -}]
120   SOURCE[$RC4_GOAL]=\
121       cipher_rc4_hmac_md5.c cipher_rc4_hmac_md5_hw.c
122 ENDIF
123ENDIF
124
125IF[{- !$disabled{rc5} -}]
126  SOURCE[$RC5_GOAL]=\
127      cipher_rc5.c cipher_rc5_hw.c
128ENDIF
129
130IF[{- !$disabled{rc2} -}]
131  SOURCE[$RC2_GOAL]=\
132      cipher_rc2.c cipher_rc2_hw.c
133ENDIF
134
135IF[{- !$disabled{chacha} -}]
136  SOURCE[$CHACHA_GOAL]=\
137      cipher_chacha20.c cipher_chacha20_hw.c
138 IF[{- !$disabled{poly1305} -}]
139  SOURCE[$CHACHAPOLY_GOAL]=\
140      cipher_chacha20_poly1305.c cipher_chacha20_poly1305_hw.c
141 ENDIF
142ENDIF
143