aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO.md1
-rw-r--r--src/device.rs22
-rw-r--r--src/otp.rs14
3 files changed, 32 insertions, 5 deletions
diff --git a/TODO.md b/TODO.md
index b2fa21e..b06de85 100644
--- a/TODO.md
+++ b/TODO.md
@@ -36,7 +36,6 @@
- `NK_list_devices_by_cpuID`
- `NK_connect_with_ID`
- Fix timing issues with the `totp` and `totp_pin` test cases.
-- Find an example for `set_time`, also adapt `get_totp_code`.
- Improve log level documentation.
- Clear passwords from memory.
- Find a nicer syntax for the `write_config` test.
diff --git a/src/device.rs b/src/device.rs
index 6c1a957..ce45a50 100644
--- a/src/device.rs
+++ b/src/device.rs
@@ -99,13 +99,33 @@ pub trait Device {
///
/// The time is used for TOTP generation (see [`get_totp_code`][]).
///
+ /// # Example
+ ///
+ /// ```ignore
+ /// extern crate chrono;
+ ///
+ /// use chrono::Utc;
+ /// use nitrokey::Device;
+ /// # use nitrokey::CommandError;
+ ///
+ /// # fn try_main() -> Result<(), CommandError> {
+ /// let device = nitrokey::connect()?;
+ /// let time = Utc::now().timestamp();
+ /// if time < 0 {
+ /// println!("Timestamps before 1970-01-01 are not supported!");
+ /// } else {
+ /// device.set_time(time as u64);
+ /// }
+ /// # Ok(())
+ /// # }
+ /// ```
+ ///
/// # Errors
///
/// - [`Timestamp`][] if the time could not be set
///
/// [`get_totp_code`]: trait.ProvideOtp.html#method.get_totp_code
/// [`Timestamp`]: enum.CommandError.html#variant.Timestamp
- // TODO: example
fn set_time(&self, time: u64) -> CommandStatus {
unsafe { CommandStatus::from(nitrokey_sys::NK_totp_set_time(time)) }
}
diff --git a/src/otp.rs b/src/otp.rs
index c951d5f..0451c5f 100644
--- a/src/otp.rs
+++ b/src/otp.rs
@@ -256,14 +256,22 @@ pub trait GenerateOtp {
///
/// # Example
///
- /// ```no_run
+ /// ```ignore
+ /// extern crate chrono;
+ ///
/// use nitrokey::GenerateOtp;
/// # use nitrokey::CommandError;
///
/// # fn try_main() -> Result<(), CommandError> {
/// let device = nitrokey::connect()?;
- /// let code = device.get_totp_code(1)?;
- /// println!("Generated TOTP code on slot 1: {:?}", code);
+ /// let time = Utc::now().timestamp();
+ /// if time < 0 {
+ /// println!("Timestamps before 1970-01-01 are not supported!");
+ /// } else {
+ /// device.set_time(time as u64);
+ /// let code = device.get_totp_code(1)?;
+ /// println!("Generated TOTP code on slot 1: {:?}", code);
+ /// }
/// # Ok(())
/// # }
/// ```