aboutsummaryrefslogtreecommitdiff
path: root/embassy-boot/boot
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-boot/boot')
-rw-r--r--embassy-boot/boot/src/firmware_updater.rs16
-rw-r--r--embassy-boot/boot/src/lib.rs2
2 files changed, 8 insertions, 10 deletions
diff --git a/embassy-boot/boot/src/firmware_updater.rs b/embassy-boot/boot/src/firmware_updater.rs
index 6aedec003..a2f822f4a 100644
--- a/embassy-boot/boot/src/firmware_updater.rs
+++ b/embassy-boot/boot/src/firmware_updater.rs
@@ -114,11 +114,11 @@ impl FirmwareUpdater {
114 _state_and_dfu_flash: &mut F, 114 _state_and_dfu_flash: &mut F,
115 _public_key: &[u8], 115 _public_key: &[u8],
116 _signature: &[u8], 116 _signature: &[u8],
117 _update_len: usize, 117 _update_len: u32,
118 _aligned: &mut [u8], 118 _aligned: &mut [u8],
119 ) -> Result<(), FirmwareUpdaterError> { 119 ) -> Result<(), FirmwareUpdaterError> {
120 assert_eq!(_aligned.len(), F::WRITE_SIZE); 120 assert_eq!(_aligned.len(), F::WRITE_SIZE);
121 assert!(_update_len as u32 <= self.dfu.size()); 121 assert!(_update_len <= self.dfu.size());
122 122
123 #[cfg(feature = "ed25519-dalek")] 123 #[cfg(feature = "ed25519-dalek")]
124 { 124 {
@@ -175,11 +175,10 @@ impl FirmwareUpdater {
175 pub async fn hash<F: AsyncNorFlash, D: Digest>( 175 pub async fn hash<F: AsyncNorFlash, D: Digest>(
176 &mut self, 176 &mut self,
177 dfu_flash: &mut F, 177 dfu_flash: &mut F,
178 update_len: usize, 178 update_len: u32,
179 chunk_buf: &mut [u8], 179 chunk_buf: &mut [u8],
180 output: &mut [u8], 180 output: &mut [u8],
181 ) -> Result<(), FirmwareUpdaterError> { 181 ) -> Result<(), FirmwareUpdaterError> {
182 let update_len = update_len as u32;
183 let mut digest = D::new(); 182 let mut digest = D::new();
184 for offset in (0..update_len).step_by(chunk_buf.len()) { 183 for offset in (0..update_len).step_by(chunk_buf.len()) {
185 self.dfu.read(dfu_flash, offset, chunk_buf).await?; 184 self.dfu.read(dfu_flash, offset, chunk_buf).await?;
@@ -335,11 +334,11 @@ impl FirmwareUpdater {
335 _state_and_dfu_flash: &mut F, 334 _state_and_dfu_flash: &mut F,
336 _public_key: &[u8], 335 _public_key: &[u8],
337 _signature: &[u8], 336 _signature: &[u8],
338 _update_len: usize, 337 _update_len: u32,
339 _aligned: &mut [u8], 338 _aligned: &mut [u8],
340 ) -> Result<(), FirmwareUpdaterError> { 339 ) -> Result<(), FirmwareUpdaterError> {
341 assert_eq!(_aligned.len(), F::WRITE_SIZE); 340 assert_eq!(_aligned.len(), F::WRITE_SIZE);
342 assert!(_update_len as u32 <= self.dfu.size()); 341 assert!(_update_len <= self.dfu.size());
343 342
344 #[cfg(feature = "ed25519-dalek")] 343 #[cfg(feature = "ed25519-dalek")]
345 { 344 {
@@ -394,11 +393,10 @@ impl FirmwareUpdater {
394 pub fn hash_blocking<F: NorFlash, D: Digest>( 393 pub fn hash_blocking<F: NorFlash, D: Digest>(
395 &mut self, 394 &mut self,
396 dfu_flash: &mut F, 395 dfu_flash: &mut F,
397 update_len: usize, 396 update_len: u32,
398 chunk_buf: &mut [u8], 397 chunk_buf: &mut [u8],
399 output: &mut [u8], 398 output: &mut [u8],
400 ) -> Result<(), FirmwareUpdaterError> { 399 ) -> Result<(), FirmwareUpdaterError> {
401 let update_len = update_len as u32;
402 let mut digest = D::new(); 400 let mut digest = D::new();
403 for offset in (0..update_len).step_by(chunk_buf.len()) { 401 for offset in (0..update_len).step_by(chunk_buf.len()) {
404 self.dfu.read_blocking(dfu_flash, offset, chunk_buf)?; 402 self.dfu.read_blocking(dfu_flash, offset, chunk_buf)?;
@@ -529,7 +527,7 @@ mod tests {
529 block_on(updater.write_firmware(0, to_write.as_slice(), &mut flash)).unwrap(); 527 block_on(updater.write_firmware(0, to_write.as_slice(), &mut flash)).unwrap();
530 let mut chunk_buf = [0; 2]; 528 let mut chunk_buf = [0; 2];
531 let mut hash = [0; 20]; 529 let mut hash = [0; 20];
532 block_on(updater.hash::<_, Sha1>(&mut flash, update.len(), &mut chunk_buf, &mut hash)).unwrap(); 530 block_on(updater.hash::<_, Sha1>(&mut flash, update.len() as u32, &mut chunk_buf, &mut hash)).unwrap();
533 531
534 assert_eq!(Sha1::digest(update).as_slice(), hash); 532 assert_eq!(Sha1::digest(update).as_slice(), hash);
535 } 533 }
diff --git a/embassy-boot/boot/src/lib.rs b/embassy-boot/boot/src/lib.rs
index ef9333d36..87457b173 100644
--- a/embassy-boot/boot/src/lib.rs
+++ b/embassy-boot/boot/src/lib.rs
@@ -255,7 +255,7 @@ mod tests {
255 &mut flash, 255 &mut flash,
256 &public_key.to_bytes(), 256 &public_key.to_bytes(),
257 &signature.to_bytes(), 257 &signature.to_bytes(),
258 firmware_len, 258 firmware_len as u32,
259 &mut aligned, 259 &mut aligned,
260 )) 260 ))
261 .is_ok()); 261 .is_ok());