@@ -66,13 +66,34 @@ extern "C" {
6666 * the derived options and any override options leave wolfSSH without
6767 * at least one algorithm to use, throw an error. */
6868
69+ #ifdef NO_RSA
70+ #undef WOLFSSH_NO_RSA
71+ #define WOLFSSH_NO_RSA
72+ #endif
73+
74+ #ifndef HAVE_ECC
75+ #undef WOLFSSH_NO_ECDSA
76+ #define WOLFSSH_NO_ECDSA
77+ #undef WOLFSSH_NO_ECDHE
78+ #define WOLFSSH_NO_ECDHE
79+ #endif
80+
81+ #ifdef NO_DH
82+ #undef WOLFSSH_NO_DH
83+ #define WOLFSSH_NO_DH
84+ #endif
85+
86+
6987#if defined(NO_HMAC ) || defined(NO_SHA )
88+ #undef WOLFSSH_NO_HMAC_SHA1
7089 #define WOLFSSH_NO_HMAC_SHA1
7190#endif
7291#if defined(NO_HMAC ) || defined(NO_SHA )
92+ #undef WOLFSSH_NO_HMAC_SHA1_96
7393 #define WOLFSSH_NO_HMAC_SHA1_96
7494#endif
7595#if defined(NO_HMAC ) || defined(NO_SHA256 )
96+ #undef WOLFSSH_NO_HMAC_SHA2_256
7697 #define WOLFSSH_NO_HMAC_SHA2_256
7798#endif
7899#if defined(WOLFSSH_NO_HMAC_SHA1 ) && \
@@ -82,35 +103,33 @@ extern "C" {
82103#endif
83104
84105
85- #ifdef WOLFSSH_NO_DH
106+ #if defined( WOLFSSH_NO_DH ) || defined( NO_SHA )
86107 #undef WOLFSSH_NO_DH_GROUP1_SHA1
87108 #define WOLFSSH_NO_DH_GROUP1_SHA1
88- #undef WOLFSSH_NO_DH_GROUP14_SHA1
89- #define WOLFSSH_NO_DH_GROUP14_SHA1
90- #undef WOLFSSH_NO_DH_GEX_SHA256
91- #define WOLFSSH_NO_DH_GEX_SHA256
92- #endif
93-
94- #if defined(NO_DH ) || defined(NO_SHA )
95- #define WOLFSSH_NO_DH_GROUP1_SHA1
96109#endif
97- #if defined(NO_DH ) || defined(NO_SHA )
110+ #if defined(WOLFSSH_NO_DH ) || defined(NO_SHA )
111+ #undef WOLFSSH_NO_DH_GROUP14_SHA1
98112 #define WOLFSSH_NO_DH_GROUP14_SHA1
99113#endif
100- #if defined(NO_DH ) || defined(NO_SHA256 )
114+ #if defined(WOLFSSH_NO_DH ) || defined(NO_SHA256 )
115+ #undef WOLFSSH_NO_DH_GEX_SHA256
101116 #define WOLFSSH_NO_DH_GEX_SHA256
102117#endif
103- #if !defined(HAVE_ECC ) || defined(NO_SHA256 ) || defined(NO_ECC256 )
118+ #if defined(WOLFSSH_NO_ECDHE ) || defined(NO_SHA256 ) || defined(NO_ECC256 )
119+ #undef WOLFSSH_NO_ECDH_SHA2_NISTP256
104120 #define WOLFSSH_NO_ECDH_SHA2_NISTP256
105121#endif
106- #if !defined(HAVE_ECC ) || !defined(WOLFSSL_SHA384 ) || !defined(HAVE_ECC384 )
122+ #if defined(WOLFSSH_NO_ECDHE ) || !defined(WOLFSSL_SHA384 ) || !defined(HAVE_ECC384 )
123+ #undef WOLFSSH_NO_ECDH_SHA2_NISTP384
107124 #define WOLFSSH_NO_ECDH_SHA2_NISTP384
108125#endif
109- #if !defined(HAVE_ECC ) || !defined(WOLFSSL_SHA512 ) || !defined(HAVE_ECC521 )
126+ #if defined(WOLFSSH_NO_ECDHE ) || !defined(WOLFSSL_SHA512 ) || !defined(HAVE_ECC521 )
127+ #undef WOLFSSH_NO_ECDH_SHA2_NISTP521
110128 #define WOLFSSH_NO_ECDH_SHA2_NISTP521
111129#endif
112130#if !defined(HAVE_ED25519 ) || defined(NO_SHA256 ) || 1
113131 /* ED25519 isn't supported yet. Force disabled. */
132+ #undef WOLFSSH_NO_ECDH_SHA2_ED25519
114133 #define WOLFSSH_NO_ECDH_SHA2_ED25519
115134#endif
116135
@@ -127,28 +146,33 @@ extern "C" {
127146#if defined(WOLFSSH_NO_DH_GROUP1_SHA1 ) && \
128147 defined(WOLFSSH_NO_DH_GROUP14_SHA1 ) && \
129148 defined(WOLFSSH_NO_DH_GEX_SHA256 )
149+ #undef WOLFSSH_NO_DH
130150 #define WOLFSSH_NO_DH
131151#endif
132-
133-
134- #ifdef NO_RSA
135- #define WOLFSSH_NO_RSA
136- #endif
137- #ifndef HAVE_ECC
138- #define WOLFSSH_NO_ECDSA
152+ #if defined(WOLFSSH_NO_ECDH_SHA2_NISTP256 ) && \
153+ defined(WOLFSSH_NO_ECDH_SHA2_NISTP384 ) && \
154+ defined(WOLFSSH_NO_ECDH_SHA2_NISTP521 )
155+ #undef WOLFSSH_NO_ECDHE
139156 #define WOLFSSH_NO_ECDHE
140157#endif
141158
142- #if defined(NO_RSA ) || defined(NO_SHA )
159+ #if defined(WOLFSSH_NO_RSA ) || defined(NO_SHA )
160+ #undef WOLFSSH_NO_SSH_RSA_SHA1
143161 #define WOLFSSH_NO_SSH_RSA_SHA1
144162#endif
145- #if !defined(HAVE_ECC ) || defined(NO_SHA256 ) || defined(NO_ECC256 )
163+ #if defined(WOLFSSH_NO_ECDSA ) || \
164+ defined(NO_SHA256 ) || defined(NO_ECC256 )
165+ #undef WOLFSSH_NO_ECDSA_SHA2_NISTP256
146166 #define WOLFSSH_NO_ECDSA_SHA2_NISTP256
147167#endif
148- #if !defined(HAVE_ECC ) || !defined(WOLFSSL_SHA384 ) || !defined(HAVE_ECC384 )
168+ #if defined(WOLFSSH_NO_ECDSA ) || \
169+ !defined(WOLFSSL_SHA384 ) || !defined(HAVE_ECC384 )
170+ #undef WOLFSSH_NO_ECDSA_SHA2_NISTP384
149171 #define WOLFSSH_NO_ECDSA_SHA2_NISTP384
150172#endif
151- #if !defined(HAVE_ECC ) || !defined(WOLFSSL_SHA512 ) || !defined(HAVE_ECC521 )
173+ #if defined(WOLFSSH_NO_ECDSA ) || \
174+ !defined(WOLFSSL_SHA512 ) || !defined(HAVE_ECC521 )
175+ #undef WOLFSSH_NO_ECDSA_SHA2_NISTP521
152176 #define WOLFSSH_NO_ECDSA_SHA2_NISTP521
153177#endif
154178#if defined(WOLFSSH_NO_SHA_RSA_SHA1 ) && \
@@ -158,19 +182,33 @@ extern "C" {
158182 #error "You need at least one signing algorithm."
159183#endif
160184
185+ #ifdef WOLFSSH_NO_SHA_RSA_SHA1
186+ #undef WOLFSSH_NO_RSA
187+ #define WOLFSSH_NO_RSA
188+ #endif
189+ #if defined(WOLFSSH_NO_ECDSA_SHA2_NISTP256 ) && \
190+ defined(WOLFSSH_NO_ECDSA_SHA2_NISTP384 ) && \
191+ defined(WOLFSSH_NO_ECDSA_SHA2_NISTP521 )
192+ #undef WOLFSSH_NO_ECDSA
193+ #define WOLFSSH_NO_ECDSA
194+ #endif
195+
161196
162197#ifdef WOLFSSH_NO_AEAD
163198 #undef WOLFSSH_NO_AES_GCM
164199 #define WOLFSSH_NO_AES_GCM
165200#endif
166201
167202#if defined(NO_AES ) || !defined(HAVE_AES_CBC )
203+ #undef WOLFSSH_NO_AES_CBC
168204 #define WOLFSSH_NO_AES_CBC
169205#endif
170206#if defined(NO_AES ) || !defined(WOLFSSL_AES_COUNTER )
207+ #undef WOLFSSH_NO_AES_CTR
171208 #define WOLFSSH_NO_AES_CTR
172209#endif
173210#if defined(NO_AES ) || !defined(HAVE_AESGCM )
211+ #undef WOLFSSH_NO_AES_GCM
174212 #define WOLFSSH_NO_AES_GCM
175213#endif
176214
@@ -181,6 +219,7 @@ extern "C" {
181219#endif
182220
183221#if defined(WOLFSSH_NO_AES_GCM )
222+ #undef WOLFSSH_NO_AEAD
184223 #define WOLFSSH_NO_AEAD
185224#endif
186225
0 commit comments