mirror of
				https://github.com/PurpleI2P/i2pd.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	all ratchets types are eligible for ECIESx25519
	
		
			
	
		
	
	
		
	
		
			Some checks are pending
		
		
	
	
		
			
				
	
				Build Debian packages / bookworm (push) Waiting to run
				
			
		
			
				
	
				Build Debian packages / bullseye (push) Waiting to run
				
			
		
			
				
	
				Build Debian packages / buster (push) Waiting to run
				
			
		
			
				
	
				Build on FreeBSD / with UPnP (push) Waiting to run
				
			
		
			
				
	
				Build on OSX / With USE_UPNP=no (push) Waiting to run
				
			
		
			
				
	
				Build on OSX / With USE_UPNP=yes (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / clang-x86_64 (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / i686 (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / ucrt-x86_64 (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / x86_64 (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / CMake clang-x86_64 (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / CMake i686 (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / CMake ucrt-x86_64 (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / CMake x86_64 (push) Waiting to run
				
			
		
			
				
	
				Build on Windows / XP (push) Waiting to run
				
			
		
			
				
	
				Build on Ubuntu / Make with USE_UPNP=no (push) Waiting to run
				
			
		
			
				
	
				Build on Ubuntu / Make with USE_UPNP=yes (push) Waiting to run
				
			
		
			
				
	
				Build on Ubuntu / CMake with -DWITH_UPNP=OFF (push) Waiting to run
				
			
		
			
				
	
				Build on Ubuntu / CMake with -DWITH_UPNP=ON (push) Waiting to run
				
			
		
			
				
	
				Build containers / Building container for linux/amd64 (push) Waiting to run
				
			
		
			
				
	
				Build containers / Building container for linux/arm64 (push) Waiting to run
				
			
		
			
				
	
				Build containers / Building container for linux/arm/v7 (push) Waiting to run
				
			
		
			
				
	
				Build containers / Building container for linux/386 (push) Waiting to run
				
			
		
			
				
	
				Build containers / Pushing merged manifest (push) Blocked by required conditions
				
			
		
		
	
	
				
					
				
			
		
			Some checks are pending
		
		
	
	Build Debian packages / bookworm (push) Waiting to run
				
			Build Debian packages / bullseye (push) Waiting to run
				
			Build Debian packages / buster (push) Waiting to run
				
			Build on FreeBSD / with UPnP (push) Waiting to run
				
			Build on OSX / With USE_UPNP=no (push) Waiting to run
				
			Build on OSX / With USE_UPNP=yes (push) Waiting to run
				
			Build on Windows / clang-x86_64 (push) Waiting to run
				
			Build on Windows / i686 (push) Waiting to run
				
			Build on Windows / ucrt-x86_64 (push) Waiting to run
				
			Build on Windows / x86_64 (push) Waiting to run
				
			Build on Windows / CMake clang-x86_64 (push) Waiting to run
				
			Build on Windows / CMake i686 (push) Waiting to run
				
			Build on Windows / CMake ucrt-x86_64 (push) Waiting to run
				
			Build on Windows / CMake x86_64 (push) Waiting to run
				
			Build on Windows / XP (push) Waiting to run
				
			Build on Ubuntu / Make with USE_UPNP=no (push) Waiting to run
				
			Build on Ubuntu / Make with USE_UPNP=yes (push) Waiting to run
				
			Build on Ubuntu / CMake with -DWITH_UPNP=OFF (push) Waiting to run
				
			Build on Ubuntu / CMake with -DWITH_UPNP=ON (push) Waiting to run
				
			Build containers / Building container for linux/amd64 (push) Waiting to run
				
			Build containers / Building container for linux/arm64 (push) Waiting to run
				
			Build containers / Building container for linux/arm/v7 (push) Waiting to run
				
			Build containers / Building container for linux/386 (push) Waiting to run
				
			Build containers / Pushing merged manifest (push) Blocked by required conditions
				
			This commit is contained in:
		
							parent
							
								
									8ca74a3e1d
								
							
						
					
					
						commit
						bce0ccf161
					
				
					 5 changed files with 14 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -1533,6 +1533,12 @@ namespace client
 | 
			
		|||
#endif		
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	bool ClientDestination::SupportsRatchets () const
 | 
			
		||||
	{
 | 
			
		||||
		if (m_EncryptionKeys.empty ()) return false;
 | 
			
		||||
		return m_EncryptionKeys.rbegin ()->first >= i2p::data::CRYPTO_KEY_TYPE_ECIES_X25519_AEAD;
 | 
			
		||||
	}	
 | 
			
		||||
		
 | 
			
		||||
	const uint8_t * ClientDestination::GetEncryptionPublicKey (i2p::data::CryptoKeyType keyType) const
 | 
			
		||||
	{
 | 
			
		||||
		auto it = m_EncryptionKeys.find (keyType);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -296,6 +296,8 @@ namespace client
 | 
			
		|||
 | 
			
		||||
		protected:
 | 
			
		||||
 | 
			
		||||
			// GarlicDestionation
 | 
			
		||||
			bool SupportsRatchets () const override;
 | 
			
		||||
			// LeaseSetDestination
 | 
			
		||||
			void CleanupDestination () override;
 | 
			
		||||
			i2p::data::CryptoKeyType GetPreferredCryptoType () const override { return m_PreferredCryptoType; }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -498,7 +498,7 @@ namespace garlic
 | 
			
		|||
		buf += 4; // length
 | 
			
		||||
 | 
			
		||||
		bool found = false;
 | 
			
		||||
		if (SupportsEncryptionType (i2p::data::CRYPTO_KEY_TYPE_ECIES_X25519_AEAD))
 | 
			
		||||
		if (SupportsRatchets ())
 | 
			
		||||
			// try ECIESx25519 tag
 | 
			
		||||
			found = HandleECIESx25519TagMessage (buf, length);
 | 
			
		||||
		if (!found)
 | 
			
		||||
| 
						 | 
				
			
			@ -535,7 +535,7 @@ namespace garlic
 | 
			
		|||
					decryption->Decrypt(buf + 514, length - 514, iv, buf + 514);
 | 
			
		||||
					HandleAESBlock (buf + 514, length - 514, decryption, msg->from);
 | 
			
		||||
				}
 | 
			
		||||
				else if (SupportsEncryptionType (i2p::data::CRYPTO_KEY_TYPE_ECIES_X25519_AEAD))
 | 
			
		||||
				else if (SupportsRatchets ())
 | 
			
		||||
				{
 | 
			
		||||
					// otherwise ECIESx25519
 | 
			
		||||
					auto ts = i2p::util::GetMillisecondsSinceEpoch ();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -279,6 +279,8 @@ namespace garlic
 | 
			
		|||
			void SaveTags ();
 | 
			
		||||
			void LoadTags ();
 | 
			
		||||
 | 
			
		||||
			virtual bool SupportsRatchets () const { return GetIdentity ()->GetCryptoKeyType () >= i2p::data::CRYPTO_KEY_TYPE_ECIES_X25519_AEAD; }
 | 
			
		||||
			
 | 
			
		||||
		private:
 | 
			
		||||
 | 
			
		||||
			void HandleAESBlock (uint8_t * buf, size_t len, std::shared_ptr<AESDecryption> decryption,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -108,6 +108,8 @@ namespace client
 | 
			
		|||
 | 
			
		||||
		protected:
 | 
			
		||||
 | 
			
		||||
			// GarlicDestination
 | 
			
		||||
			bool SupportsRatchets () const override { return (bool)m_ECIESx25519Decryptor; }
 | 
			
		||||
			// LeaseSetDestination
 | 
			
		||||
			void CleanupDestination () override;
 | 
			
		||||
			i2p::data::CryptoKeyType GetPreferredCryptoType () const override;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue