examples-features/ctap: Don't call unwarp() in callbacks
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
diff --git a/examples-features/ctap.rs b/examples-features/ctap.rs
index bc1329d..d580d8c 100644
--- a/examples-features/ctap.rs
+++ b/examples-features/ctap.rs
@@ -202,28 +202,58 @@
rp_id: &str,
nonce: &[u8; 8],
) -> [u8; libtock::hmac::DEST_BUFFER_SIZE] {
- let hmac_driver = self.hmac.init_driver().unwrap();
+ let hmac_driver;
+ match self.hmac.init_driver() {
+ Err(_) => {
+ panic!("Hmac init error");
+ }
+ Ok(driver) => {
+ hmac_driver = driver;
+ }
+ }
let mut key_buffer = HmacKeyBuffer::default();
for (i, d) in rp_id.as_bytes().iter().enumerate() {
key_buffer[i] = *d;
}
- let _key_buffer = hmac_driver.init_key_buffer(&mut key_buffer).unwrap();
+ // We need to make sure this isn't dropped straight away
+ let key_buffer_ret = hmac_driver.init_key_buffer(&mut key_buffer);
+ if key_buffer_ret.is_err() {
+ panic!("Hmac key buffer init error");
+ }
let mut data_buffer = HmacDataBuffer::default();
for (i, d) in nonce.iter().enumerate() {
data_buffer[i] = *d;
}
- let _data_buffer = hmac_driver.init_data_buffer(&mut data_buffer).unwrap();
+ // We need to make sure this isn't dropped straight away
+ let data_buffer_ret = hmac_driver.init_data_buffer(&mut data_buffer);
+ if data_buffer_ret.is_err() {
+ panic!("Hmac data buffer init error");
+ }
- let mut seed_buffer = HmacDestBuffer::default();
- let seed_buffer = hmac_driver.init_dest_buffer(&mut seed_buffer).unwrap();
+ let mut dest_buffer = HmacDestBuffer::default();
+ let seed_buffer;
+ match hmac_driver.init_dest_buffer(&mut dest_buffer) {
+ Err(_) => {
+ panic!("Hmac subscribe error");
+ }
+ Ok(buffer) => {
+ seed_buffer = buffer;
+ }
+ }
let mut callback = |_result, _digest| {};
- let _subscription = hmac_driver.subscribe(&mut callback).unwrap();
+ // We need to make sure this isn't dropped straight away
+ let subscribe = hmac_driver.subscribe(&mut callback);
+ if subscribe.is_err() {
+ panic!("Hmac subscribe error");
+ }
- hmac_driver.run().unwrap();
+ if hmac_driver.run().is_err() {
+ panic!("Hmac run error");
+ }
// Yield waiting for the HMAC callback
unsafe {