Change seed for retransmit to use blob signature (#4727)
* Switch seed for retransmit to use blob signature * Use seed_len * Use last bytes of signature as seed instead of first bytes
This commit is contained in:
		@@ -406,8 +406,9 @@ impl Blob {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    pub fn seed(&self) -> [u8; 32] {
 | 
					    pub fn seed(&self) -> [u8; 32] {
 | 
				
			||||||
        let mut seed = [0; 32];
 | 
					        let mut seed = [0; 32];
 | 
				
			||||||
        seed[0..8].copy_from_slice(&self.index().to_le_bytes());
 | 
					        let seed_len = seed.len();
 | 
				
			||||||
        seed[8..16].copy_from_slice(&self.slot().to_le_bytes());
 | 
					        let signature_bytes = self.get_signature_bytes();
 | 
				
			||||||
 | 
					        seed[0..seed_len].copy_from_slice(&signature_bytes[(signature_bytes.len() - seed_len)..]);
 | 
				
			||||||
        seed
 | 
					        seed
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -488,6 +489,10 @@ impl Blob {
 | 
				
			|||||||
        self.set_data_size(new_size as u64);
 | 
					        self.set_data_size(new_size as u64);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    pub fn get_signature_bytes(&self) -> &[u8] {
 | 
				
			||||||
 | 
					        &self.data[SIGNATURE_RANGE]
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    pub fn store_packets<T: Borrow<Packet>>(&mut self, packets: &[T]) -> u64 {
 | 
					    pub fn store_packets<T: Borrow<Packet>>(&mut self, packets: &[T]) -> u64 {
 | 
				
			||||||
        let size = self.size();
 | 
					        let size = self.size();
 | 
				
			||||||
        let mut cursor = Cursor::new(&mut self.data_mut()[size..]);
 | 
					        let mut cursor = Cursor::new(&mut self.data_mut()[size..]);
 | 
				
			||||||
@@ -609,7 +614,7 @@ impl Signable for Blob {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fn get_signature(&self) -> Signature {
 | 
					    fn get_signature(&self) -> Signature {
 | 
				
			||||||
        Signature::new(&self.data[SIGNATURE_RANGE])
 | 
					        Signature::new(self.get_signature_bytes())
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fn set_signature(&mut self, signature: Signature) {
 | 
					    fn set_signature(&mut self, signature: Signature) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user