aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Lilleengen <[email protected]>2024-09-16 10:17:22 +0000
committerGitHub <[email protected]>2024-09-16 10:17:22 +0000
commita23f56b3ddc84a7e87e4b8750df26b91a2cb9637 (patch)
tree9c09356e32c4e75736da74e26adfd99a51c5035c
parent3d6a270f30c45eaf394c8eb8bf182dd1a7ec2d7b (diff)
parent8519e54461b8d3c3c2a97c88823498c878187ba4 (diff)
Merge pull request #3340 from kingofpayne/fix-3339
fix(boot): return signature error when no features
-rw-r--r--embassy-boot/src/firmware_updater/asynch.rs12
-rw-r--r--embassy-boot/src/firmware_updater/blocking.rs12
2 files changed, 16 insertions, 8 deletions
diff --git a/embassy-boot/src/firmware_updater/asynch.rs b/embassy-boot/src/firmware_updater/asynch.rs
index 26f65f295..86b441592 100644
--- a/embassy-boot/src/firmware_updater/asynch.rs
+++ b/embassy-boot/src/firmware_updater/asynch.rs
@@ -107,7 +107,8 @@ impl<'d, DFU: NorFlash, STATE: NorFlash> FirmwareUpdater<'d, DFU, STATE> {
107 let mut message = [0; 64]; 107 let mut message = [0; 64];
108 self.hash::<Sha512>(_update_len, &mut chunk_buf, &mut message).await?; 108 self.hash::<Sha512>(_update_len, &mut chunk_buf, &mut message).await?;
109 109
110 public_key.verify(&message, &signature).map_err(into_signature_error)? 110 public_key.verify(&message, &signature).map_err(into_signature_error)?;
111 return self.state.mark_updated().await;
111 } 112 }
112 #[cfg(feature = "ed25519-salty")] 113 #[cfg(feature = "ed25519-salty")]
113 { 114 {
@@ -134,10 +135,13 @@ impl<'d, DFU: NorFlash, STATE: NorFlash> FirmwareUpdater<'d, DFU, STATE> {
134 message, 135 message,
135 r.is_ok() 136 r.is_ok()
136 ); 137 );
137 r.map_err(into_signature_error)? 138 r.map_err(into_signature_error)?;
139 return self.state.mark_updated().await;
140 }
141 #[cfg(not(any(feature = "ed25519-dalek", feature = "ed25519-salty")))]
142 {
143 Err(FirmwareUpdaterError::Signature(signature::Error::new()))
138 } 144 }
139
140 self.state.mark_updated().await
141 } 145 }
142 146
143 /// Verify the update in DFU with any digest. 147 /// Verify the update in DFU with any digest.
diff --git a/embassy-boot/src/firmware_updater/blocking.rs b/embassy-boot/src/firmware_updater/blocking.rs
index 35772a856..d3c723456 100644
--- a/embassy-boot/src/firmware_updater/blocking.rs
+++ b/embassy-boot/src/firmware_updater/blocking.rs
@@ -142,7 +142,8 @@ impl<'d, DFU: NorFlash, STATE: NorFlash> BlockingFirmwareUpdater<'d, DFU, STATE>
142 let mut chunk_buf = [0; 2]; 142 let mut chunk_buf = [0; 2];
143 self.hash::<Sha512>(_update_len, &mut chunk_buf, &mut message)?; 143 self.hash::<Sha512>(_update_len, &mut chunk_buf, &mut message)?;
144 144
145 public_key.verify(&message, &signature).map_err(into_signature_error)? 145 public_key.verify(&message, &signature).map_err(into_signature_error)?;
146 return self.state.mark_updated();
146 } 147 }
147 #[cfg(feature = "ed25519-salty")] 148 #[cfg(feature = "ed25519-salty")]
148 { 149 {
@@ -169,10 +170,13 @@ impl<'d, DFU: NorFlash, STATE: NorFlash> BlockingFirmwareUpdater<'d, DFU, STATE>
169 message, 170 message,
170 r.is_ok() 171 r.is_ok()
171 ); 172 );
172 r.map_err(into_signature_error)? 173 r.map_err(into_signature_error)?;
174 return self.state.mark_updated();
175 }
176 #[cfg(not(any(feature = "ed25519-dalek", feature = "ed25519-salty")))]
177 {
178 Err(FirmwareUpdaterError::Signature(signature::Error::new()))
173 } 179 }
174
175 self.state.mark_updated()
176 } 180 }
177 181
178 /// Verify the update in DFU with any digest. 182 /// Verify the update in DFU with any digest.