Add build option to remove all internal RC4 uses
The new CONFIG_NO_RC4=y build option can be used to remove all internal hostapd and wpa_supplicant uses of RC4. It should be noted that external uses (e.g., within a TLS library) do not get disabled when doing this. This removes capability of supporting WPA/TKIP, dynamic WEP keys with IEEE 802.1X, WEP shared key authentication, and MSCHAPv2 password changes. Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
a1eabc74b8
commit
7cb53ded11
12 changed files with 82 additions and 0 deletions
|
@ -122,6 +122,7 @@ void des_encrypt(const u8 *clear, const u8 *key, u8 *cypher)
|
|||
}
|
||||
|
||||
|
||||
#ifndef CONFIG_NO_RC4
|
||||
int rc4_skip(const u8 *key, size_t keylen, size_t skip,
|
||||
u8 *data, size_t data_len)
|
||||
{
|
||||
|
@ -157,6 +158,7 @@ out:
|
|||
return res;
|
||||
#endif /* OPENSSL_NO_RC4 */
|
||||
}
|
||||
#endif /* CONFIG_NO_RC4 */
|
||||
|
||||
|
||||
#ifndef CONFIG_FIPS
|
||||
|
@ -438,11 +440,13 @@ struct crypto_cipher * crypto_cipher_init(enum crypto_cipher_alg alg,
|
|||
return NULL;
|
||||
|
||||
switch (alg) {
|
||||
#ifndef CONFIG_NO_RC4
|
||||
#ifndef OPENSSL_NO_RC4
|
||||
case CRYPTO_CIPHER_ALG_RC4:
|
||||
cipher = EVP_rc4();
|
||||
break;
|
||||
#endif /* OPENSSL_NO_RC4 */
|
||||
#endif /* CONFIG_NO_RC4 */
|
||||
#ifndef OPENSSL_NO_AES
|
||||
case CRYPTO_CIPHER_ALG_AES:
|
||||
switch (key_len) {
|
||||
|
|
|
@ -412,6 +412,8 @@ int get_asymetric_start_key(const u8 *master_key, u8 *session_key,
|
|||
}
|
||||
|
||||
|
||||
#ifndef CONFIG_NO_RC4
|
||||
|
||||
#define PWBLOCK_LEN 516
|
||||
|
||||
/**
|
||||
|
@ -477,6 +479,8 @@ int new_password_encrypted_with_old_nt_password_hash(
|
|||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_NO_RC4 */
|
||||
|
||||
|
||||
/**
|
||||
* nt_password_hash_encrypted_with_block - NtPasswordHashEncryptedWithBlock() - RFC 2759, Sect 8.13
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue