aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-boot/boot/src/firmware_updater.rs20
-rw-r--r--embassy-boot/boot/src/lib.rs2
2 files changed, 10 insertions, 12 deletions
diff --git a/embassy-boot/boot/src/firmware_updater.rs b/embassy-boot/boot/src/firmware_updater.rs
index fffb9a500..48e15024e 100644
--- a/embassy-boot/boot/src/firmware_updater.rs
+++ b/embassy-boot/boot/src/firmware_updater.rs
@@ -119,13 +119,11 @@ impl FirmwareUpdater {
119 _state_and_dfu_flash: &mut F, 119 _state_and_dfu_flash: &mut F,
120 _public_key: &[u8], 120 _public_key: &[u8],
121 _signature: &[u8], 121 _signature: &[u8],
122 _update_len: u32, 122 _update_len: usize,
123 _aligned: &mut [u8], 123 _aligned: &mut [u8],
124 ) -> Result<(), FirmwareUpdaterError> { 124 ) -> Result<(), FirmwareUpdaterError> {
125 let _read_size = _aligned.len();
126
127 assert_eq!(_aligned.len(), F::WRITE_SIZE); 125 assert_eq!(_aligned.len(), F::WRITE_SIZE);
128 assert!(_update_len <= self.dfu.len() as u32); 126 assert!(_update_len <= self.dfu.len());
129 127
130 #[cfg(feature = "ed25519-dalek")] 128 #[cfg(feature = "ed25519-dalek")]
131 { 129 {
@@ -182,10 +180,11 @@ impl FirmwareUpdater {
182 pub async fn hash<F: AsyncNorFlash, D: Digest>( 180 pub async fn hash<F: AsyncNorFlash, D: Digest>(
183 &mut self, 181 &mut self,
184 dfu_flash: &mut F, 182 dfu_flash: &mut F,
185 update_len: u32, 183 update_len: usize,
186 chunk_buf: &mut [u8], 184 chunk_buf: &mut [u8],
187 output: &mut [u8], 185 output: &mut [u8],
188 ) -> Result<(), FirmwareUpdaterError> { 186 ) -> Result<(), FirmwareUpdaterError> {
187 let update_len = update_len as u32;
189 let mut digest = D::new(); 188 let mut digest = D::new();
190 for offset in (0..update_len).step_by(chunk_buf.len()) { 189 for offset in (0..update_len).step_by(chunk_buf.len()) {
191 self.dfu.read(dfu_flash, offset, chunk_buf).await?; 190 self.dfu.read(dfu_flash, offset, chunk_buf).await?;
@@ -341,13 +340,11 @@ impl FirmwareUpdater {
341 _state_and_dfu_flash: &mut F, 340 _state_and_dfu_flash: &mut F,
342 _public_key: &[u8], 341 _public_key: &[u8],
343 _signature: &[u8], 342 _signature: &[u8],
344 _update_len: u32, 343 _update_len: usize,
345 _aligned: &mut [u8], 344 _aligned: &mut [u8],
346 ) -> Result<(), FirmwareUpdaterError> { 345 ) -> Result<(), FirmwareUpdaterError> {
347 let _read_size = _aligned.len();
348
349 assert_eq!(_aligned.len(), F::WRITE_SIZE); 346 assert_eq!(_aligned.len(), F::WRITE_SIZE);
350 assert!(_update_len <= self.dfu.len() as u32); 347 assert!(_update_len <= self.dfu.len());
351 348
352 #[cfg(feature = "ed25519-dalek")] 349 #[cfg(feature = "ed25519-dalek")]
353 { 350 {
@@ -402,10 +399,11 @@ impl FirmwareUpdater {
402 pub fn hash_blocking<F: NorFlash, D: Digest>( 399 pub fn hash_blocking<F: NorFlash, D: Digest>(
403 &mut self, 400 &mut self,
404 dfu_flash: &mut F, 401 dfu_flash: &mut F,
405 update_len: u32, 402 update_len: usize,
406 chunk_buf: &mut [u8], 403 chunk_buf: &mut [u8],
407 output: &mut [u8], 404 output: &mut [u8],
408 ) -> Result<(), FirmwareUpdaterError> { 405 ) -> Result<(), FirmwareUpdaterError> {
406 let update_len = update_len as u32;
409 let mut digest = D::new(); 407 let mut digest = D::new();
410 for offset in (0..update_len).step_by(chunk_buf.len()) { 408 for offset in (0..update_len).step_by(chunk_buf.len()) {
411 self.dfu.read_blocking(dfu_flash, offset, chunk_buf)?; 409 self.dfu.read_blocking(dfu_flash, offset, chunk_buf)?;
@@ -536,7 +534,7 @@ mod tests {
536 block_on(updater.write_firmware(0, to_write.as_slice(), &mut flash)).unwrap(); 534 block_on(updater.write_firmware(0, to_write.as_slice(), &mut flash)).unwrap();
537 let mut chunk_buf = [0; 2]; 535 let mut chunk_buf = [0; 2];
538 let mut hash = [0; 20]; 536 let mut hash = [0; 20];
539 block_on(updater.hash::<_, Sha1>(&mut flash, update.len() as u32, &mut chunk_buf, &mut hash)).unwrap(); 537 block_on(updater.hash::<_, Sha1>(&mut flash, update.len(), &mut chunk_buf, &mut hash)).unwrap();
540 538
541 assert_eq!(Sha1::digest(update).as_slice(), hash); 539 assert_eq!(Sha1::digest(update).as_slice(), hash);
542 } 540 }
diff --git a/embassy-boot/boot/src/lib.rs b/embassy-boot/boot/src/lib.rs
index 605e5253c..acd90996f 100644
--- a/embassy-boot/boot/src/lib.rs
+++ b/embassy-boot/boot/src/lib.rs
@@ -281,7 +281,7 @@ mod tests {
281 &mut flash, 281 &mut flash,
282 &public_key.to_bytes(), 282 &public_key.to_bytes(),
283 &signature.to_bytes(), 283 &signature.to_bytes(),
284 firmware_len as u32, 284 firmware_len,
285 &mut aligned, 285 &mut aligned,
286 )) 286 ))
287 .is_ok()); 287 .is_ok());