mirror of
				https://github.com/PurpleI2P/i2pd.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	delivery type Destination for garlic cloves
This commit is contained in:
		
							parent
							
								
									7f92a847c2
								
							
						
					
					
						commit
						01cb5e02e9
					
				
					 4 changed files with 19 additions and 3 deletions
				
			
		
							
								
								
									
										14
									
								
								Garlic.cpp
									
										
									
									
									
								
							
							
						
						
									
										14
									
								
								Garlic.cpp
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -95,8 +95,18 @@ namespace garlic
 | 
			
		|||
		size_t size = 0;
 | 
			
		||||
		payload[size] = 1; // 1 clove
 | 
			
		||||
		size++;
 | 
			
		||||
		payload[size] = 0;//  delivery instructions flag
 | 
			
		||||
		size++;
 | 
			
		||||
		if (m_Destination->IsDestination ())
 | 
			
		||||
		{
 | 
			
		||||
			payload[size] = eGarlicDeliveryTypeDestination << 5;//  delivery instructions flag destination
 | 
			
		||||
			size++;
 | 
			
		||||
			memcpy (payload + size, m_Destination->GetIdentHash (), 32);
 | 
			
		||||
			size += 32;
 | 
			
		||||
		}	
 | 
			
		||||
		else	
 | 
			
		||||
		{	
 | 
			
		||||
			payload[size] = 0;//  delivery instructions flag local
 | 
			
		||||
			size++;
 | 
			
		||||
		}
 | 
			
		||||
		memcpy (payload + size, msg->GetBuffer (), msg->GetLength ());
 | 
			
		||||
		size += msg->GetLength ();
 | 
			
		||||
		*(uint32_t *)(payload + size) = htobe32 (m_Rnd.GenerateWord32 ()); // CloveID
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,6 +22,7 @@ namespace data
 | 
			
		|||
		public:
 | 
			
		||||
			virtual const uint8_t * GetIdentHash () const = 0;
 | 
			
		||||
			virtual const uint8_t * GetEncryptionPublicKey () const = 0;
 | 
			
		||||
			virtual bool IsDestination () const = 0; // for garlic 
 | 
			
		||||
	};	
 | 
			
		||||
	
 | 
			
		||||
	class LeaseSet: public RoutingDestination
 | 
			
		||||
| 
						 | 
				
			
			@ -33,6 +34,7 @@ namespace data
 | 
			
		|||
			// implements RoutingDestination
 | 
			
		||||
			const uint8_t * GetIdentHash () const { return m_IdentHash; };
 | 
			
		||||
			const uint8_t * GetEncryptionPublicKey () const { return m_EncryptionKey; };
 | 
			
		||||
			bool IsDestination () const { return true; };
 | 
			
		||||
			
 | 
			
		||||
		private:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -126,6 +126,8 @@ namespace data
 | 
			
		|||
		CryptoPP::SHA256().CalculateDigest(m_IdentHash, (uint8_t *)&m_RouterIdentity, sizeof (m_RouterIdentity));
 | 
			
		||||
		size_t l = i2p::data::ByteStreamToBase64 (m_IdentHash, 32, m_IdentHashBase64, 48);
 | 
			
		||||
		m_IdentHashBase64[l] = 0;
 | 
			
		||||
		memcpy (m_IdentHashAbbreviation, m_IdentHashBase64, 4);
 | 
			
		||||
		m_IdentHashAbbreviation[4] = 0;
 | 
			
		||||
	}	
 | 
			
		||||
 | 
			
		||||
	void RouterInfo::WriteToStream (std::ostream& s)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -52,6 +52,7 @@ namespace data
 | 
			
		|||
			const RouterIdentity& GetRouterIdentity () const { return m_RouterIdentity; };
 | 
			
		||||
			void SetRouterIdentity (const RouterIdentity& identity);
 | 
			
		||||
			const char * GetIdentHashBase64 () const { return m_IdentHashBase64; };
 | 
			
		||||
			const char * GetIdentHashAbbreviation () const { return m_IdentHashAbbreviation; };
 | 
			
		||||
			const std::vector<Address>& GetAddresses () const { return m_Addresses; };
 | 
			
		||||
			Address * GetNTCPAddress ();
 | 
			
		||||
			
 | 
			
		||||
| 
						 | 
				
			
			@ -71,6 +72,7 @@ namespace data
 | 
			
		|||
			// implements RoutingDestination
 | 
			
		||||
			const uint8_t * GetIdentHash () const { return m_IdentHash; };
 | 
			
		||||
			const uint8_t * GetEncryptionPublicKey () const { return m_RouterIdentity.publicKey; };
 | 
			
		||||
			bool IsDestination () const { return false; };
 | 
			
		||||
			
 | 
			
		||||
		private:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -85,7 +87,7 @@ namespace data
 | 
			
		|||
 | 
			
		||||
			RouterIdentity m_RouterIdentity;
 | 
			
		||||
			uint8_t m_IdentHash[32];
 | 
			
		||||
			char m_IdentHashBase64[48];
 | 
			
		||||
			char m_IdentHashBase64[48], m_IdentHashAbbreviation[5];
 | 
			
		||||
			char m_Buffer[2048];
 | 
			
		||||
			int m_BufferLen;
 | 
			
		||||
			uint64_t m_Timestamp;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue