mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 22:00:05 +00:00 
			
		
		
		
	Remove Crypto++ weak algorithm warning
This commit is contained in:
		
							parent
							
								
									5b22cf08f0
								
							
						
					
					
						commit
						e46f66a5fa
					
				
					 2 changed files with 16 additions and 9 deletions
				
			
		|  | @ -2,6 +2,8 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
|  | #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1 | ||||||
|  | 
 | ||||||
| #include <cstring> | #include <cstring> | ||||||
| #include <cryptopp/aes.h> | #include <cryptopp/aes.h> | ||||||
| #include <cryptopp/md5.h> | #include <cryptopp/md5.h> | ||||||
|  | @ -204,9 +206,10 @@ std::vector<u8> GeneratedEncryptedData(const NetworkInfo& network_info, const No | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Calculate the MD5 hash of the data in the buffer, not including the hash field.
 |     // Calculate the MD5 hash of the data in the buffer, not including the hash field.
 | ||||||
|     std::array<u8, CryptoPP::MD5::DIGESTSIZE> hash; |     std::array<u8, CryptoPP::Weak::MD5::DIGESTSIZE> hash; | ||||||
|     CryptoPP::MD5().CalculateDigest(hash.data(), buffer.data() + offsetof(BeaconData, bitmask), |     CryptoPP::Weak::MD5().CalculateDigest(hash.data(), | ||||||
|                                     buffer.size() - sizeof(data.md5_hash)); |                                           buffer.data() + offsetof(BeaconData, bitmask), | ||||||
|  |                                           buffer.size() - sizeof(data.md5_hash)); | ||||||
| 
 | 
 | ||||||
|     // Copy the hash into the buffer.
 |     // Copy the hash into the buffer.
 | ||||||
|     std::memcpy(buffer.data(), hash.data(), hash.size()); |     std::memcpy(buffer.data(), hash.data(), hash.size()); | ||||||
|  |  | ||||||
|  | @ -2,6 +2,8 @@ | ||||||
| // Licensed under GPLv2 or any later version
 | // Licensed under GPLv2 or any later version
 | ||||||
| // Refer to the license.txt file included.
 | // Refer to the license.txt file included.
 | ||||||
| 
 | 
 | ||||||
|  | #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1 | ||||||
|  | 
 | ||||||
| #include <algorithm> | #include <algorithm> | ||||||
| #include <cstring> | #include <cstring> | ||||||
| #include <cryptopp/aes.h> | #include <cryptopp/aes.h> | ||||||
|  | @ -62,7 +64,8 @@ static std::vector<u8> GenerateSecureDataHeader(u16 data_size, u8 channel, u16 d | ||||||
|  * the CCMP crypto key for data frames. |  * the CCMP crypto key for data frames. | ||||||
|  * @returns The CTR used for data frames crypto key generation. |  * @returns The CTR used for data frames crypto key generation. | ||||||
|  */ |  */ | ||||||
| static std::array<u8, CryptoPP::MD5::DIGESTSIZE> GetDataCryptoCTR(const NetworkInfo& network_info) { | static std::array<u8, CryptoPP::Weak::MD5::DIGESTSIZE> GetDataCryptoCTR( | ||||||
|  |     const NetworkInfo& network_info) { | ||||||
|     DataFrameCryptoCTR data{}; |     DataFrameCryptoCTR data{}; | ||||||
| 
 | 
 | ||||||
|     data.host_mac = network_info.host_mac_address; |     data.host_mac = network_info.host_mac_address; | ||||||
|  | @ -70,8 +73,8 @@ static std::array<u8, CryptoPP::MD5::DIGESTSIZE> GetDataCryptoCTR(const NetworkI | ||||||
|     data.id = network_info.id; |     data.id = network_info.id; | ||||||
|     data.network_id = network_info.network_id; |     data.network_id = network_info.network_id; | ||||||
| 
 | 
 | ||||||
|     std::array<u8, CryptoPP::MD5::DIGESTSIZE> hash; |     std::array<u8, CryptoPP::Weak::MD5::DIGESTSIZE> hash; | ||||||
|     CryptoPP::MD5().CalculateDigest(hash.data(), reinterpret_cast<u8*>(&data), sizeof(data)); |     CryptoPP::Weak::MD5().CalculateDigest(hash.data(), reinterpret_cast<u8*>(&data), sizeof(data)); | ||||||
| 
 | 
 | ||||||
|     return hash; |     return hash; | ||||||
| } | } | ||||||
|  | @ -83,15 +86,16 @@ static std::array<u8, CryptoPP::MD5::DIGESTSIZE> GetDataCryptoCTR(const NetworkI | ||||||
| static std::array<u8, CryptoPP::AES::BLOCKSIZE> GenerateDataCCMPKey( | static std::array<u8, CryptoPP::AES::BLOCKSIZE> GenerateDataCCMPKey( | ||||||
|     const std::vector<u8>& passphrase, const NetworkInfo& network_info) { |     const std::vector<u8>& passphrase, const NetworkInfo& network_info) { | ||||||
|     // Calculate the MD5 hash of the input passphrase.
 |     // Calculate the MD5 hash of the input passphrase.
 | ||||||
|     std::array<u8, CryptoPP::MD5::DIGESTSIZE> passphrase_hash; |     std::array<u8, CryptoPP::Weak::MD5::DIGESTSIZE> passphrase_hash; | ||||||
|     CryptoPP::MD5().CalculateDigest(passphrase_hash.data(), passphrase.data(), passphrase.size()); |     CryptoPP::Weak::MD5().CalculateDigest(passphrase_hash.data(), passphrase.data(), | ||||||
|  |                                           passphrase.size()); | ||||||
| 
 | 
 | ||||||
|     std::array<u8, CryptoPP::AES::BLOCKSIZE> ccmp_key; |     std::array<u8, CryptoPP::AES::BLOCKSIZE> ccmp_key; | ||||||
| 
 | 
 | ||||||
|     // The CCMP key is the result of encrypting the MD5 hash of the passphrase with AES-CTR using
 |     // The CCMP key is the result of encrypting the MD5 hash of the passphrase with AES-CTR using
 | ||||||
|     // keyslot 0x2D.
 |     // keyslot 0x2D.
 | ||||||
|     using CryptoPP::AES; |     using CryptoPP::AES; | ||||||
|     std::array<u8, CryptoPP::MD5::DIGESTSIZE> counter = GetDataCryptoCTR(network_info); |     std::array<u8, CryptoPP::Weak::MD5::DIGESTSIZE> counter = GetDataCryptoCTR(network_info); | ||||||
|     std::array<u8, AES::BLOCKSIZE> key = HW::AES::GetNormalKey(HW::AES::KeySlotID::UDSDataKey); |     std::array<u8, AES::BLOCKSIZE> key = HW::AES::GetNormalKey(HW::AES::KeySlotID::UDSDataKey); | ||||||
|     CryptoPP::CTR_Mode<AES>::Encryption aes; |     CryptoPP::CTR_Mode<AES>::Encryption aes; | ||||||
|     aes.SetKeyWithIV(key.data(), AES::BLOCKSIZE, counter.data()); |     aes.SetKeyWithIV(key.data(), AES::BLOCKSIZE, counter.data()); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue