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:
parent
a5279bb835
commit
61483c18ca
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue