tor-proto: Fix a logic error in KDF-TOR implementation.

This commit is contained in:
Nick Mathewson 2020-05-09 14:01:48 -04:00
parent 84ac61b5d4
commit 11abdcbf3e
1 changed files with 2 additions and 2 deletions

View File

@ -22,7 +22,6 @@ impl LegacyKDF {
}
impl KDF for LegacyKDF {
fn derive(&self, seed: &[u8], n_bytes: usize) -> Result<SecretBytes> {
let mut d = Sha1::new();
let mut result = Zeroizing::new(Vec::with_capacity(n_bytes + Sha1::output_size()));
let mut k = 0u8;
if n_bytes > Sha1::output_size() * 256 {
@ -30,9 +29,10 @@ impl KDF for LegacyKDF {
}
while result.len() < n_bytes {
let mut d = Sha1::new();
d.input(seed);
d.input(&[k]);
result.extend(d.result_reset());
result.extend(d.result());
k += 1;
}