Skip to content

Commit

Permalink
Merge pull request #3340 from kingofpayne/fix-3339
Browse files Browse the repository at this point in the history
fix(boot): return signature error when no features
  • Loading branch information
lulf authored Sep 16, 2024
2 parents 3d6a270 + 8519e54 commit a23f56b
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 8 deletions.
12 changes: 8 additions & 4 deletions embassy-boot/src/firmware_updater/asynch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,8 @@ impl<'d, DFU: NorFlash, STATE: NorFlash> FirmwareUpdater<'d, DFU, STATE> {
let mut message = [0; 64];
self.hash::<Sha512>(_update_len, &mut chunk_buf, &mut message).await?;

public_key.verify(&message, &signature).map_err(into_signature_error)?
public_key.verify(&message, &signature).map_err(into_signature_error)?;
return self.state.mark_updated().await;
}
#[cfg(feature = "ed25519-salty")]
{
Expand All @@ -134,10 +135,13 @@ impl<'d, DFU: NorFlash, STATE: NorFlash> FirmwareUpdater<'d, DFU, STATE> {
message,
r.is_ok()
);
r.map_err(into_signature_error)?
r.map_err(into_signature_error)?;
return self.state.mark_updated().await;
}
#[cfg(not(any(feature = "ed25519-dalek", feature = "ed25519-salty")))]
{
Err(FirmwareUpdaterError::Signature(signature::Error::new()))
}

self.state.mark_updated().await
}

/// Verify the update in DFU with any digest.
Expand Down
12 changes: 8 additions & 4 deletions embassy-boot/src/firmware_updater/blocking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,8 @@ impl<'d, DFU: NorFlash, STATE: NorFlash> BlockingFirmwareUpdater<'d, DFU, STATE>
let mut chunk_buf = [0; 2];
self.hash::<Sha512>(_update_len, &mut chunk_buf, &mut message)?;

public_key.verify(&message, &signature).map_err(into_signature_error)?
public_key.verify(&message, &signature).map_err(into_signature_error)?;
return self.state.mark_updated();
}
#[cfg(feature = "ed25519-salty")]
{
Expand All @@ -169,10 +170,13 @@ impl<'d, DFU: NorFlash, STATE: NorFlash> BlockingFirmwareUpdater<'d, DFU, STATE>
message,
r.is_ok()
);
r.map_err(into_signature_error)?
r.map_err(into_signature_error)?;
return self.state.mark_updated();
}
#[cfg(not(any(feature = "ed25519-dalek", feature = "ed25519-salty")))]
{
Err(FirmwareUpdaterError::Signature(signature::Error::new()))
}

self.state.mark_updated()
}

/// Verify the update in DFU with any digest.
Expand Down

0 comments on commit a23f56b

Please sign in to comment.