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 {