diff --git a/src/ratchet.rs b/src/ratchet.rs
index e638aab..c78b51e 100644
--- a/src/ratchet.rs
+++ b/src/ratchet.rs
@@ -111,10 +111,11 @@ impl Ratchet {
return Err("Skipped to many keys");
}
match self.ckr {
- Some(d) => {
+ Some(mut d) => {
while self.nr < until {
let (ckr, mk) = kdf_ck(&d);
self.ckr = Some(ckr);
+ d = ckr;
self.mkskipped.insert((self.dhr.unwrap().to_string().as_bytes().to_vec(), self.nr), mk);
self.nr += 1
}
@@ -372,10 +373,11 @@ impl RatchetEncHeader {
if self.nr + MAX_SKIP < until {
return Err("Skipping went wrong")
}
- if let Some(d) = self.ckr {
+ if let Some(mut d) = self.ckr {
while self.nr < until {
let (ckr, mk) = kdf_ck(&d);
self.ckr = Some(ckr);
+ d = ckr;
self.mkskipped.insert((self.hkr, self.nr), mk);
self.nr += 1
}
@@ -444,4 +446,4 @@ impl RatchetEncHeader {
let ex: ExRatchetEncHeader = bincode::deserialize(inp).unwrap();
RatchetEncHeader::from(&ex)
}
-}
\ No newline at end of file
+}