aboutsummaryrefslogtreecommitdiff
path: root/nitrokey/examples/otp.rs
diff options
context:
space:
mode:
Diffstat (limited to 'nitrokey/examples/otp.rs')
-rw-r--r--nitrokey/examples/otp.rs43
1 files changed, 0 insertions, 43 deletions
diff --git a/nitrokey/examples/otp.rs b/nitrokey/examples/otp.rs
deleted file mode 100644
index f2c6f3c..0000000
--- a/nitrokey/examples/otp.rs
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (C) 2020 Robin Krahl <robin.krahl@ireas.org>
-// SPDX-License-Identifier: CC0-1.0
-
-//! Connects to a Nitrokey device, configures an TOTP slot and generates a one-time password from
-//! it.
-
-use std::time;
-
-use nitrokey::{Authenticate, ConfigureOtp, Device, GenerateOtp};
-
-fn main() -> Result<(), nitrokey::Error> {
- let mut manager = nitrokey::take()?;
- let device = manager.connect()?;
-
- // Configure the OTP slot (requires admin PIN)
- let data = nitrokey::OtpSlotData::new(
- 1,
- "test",
- "3132333435363738393031323334353637383930",
- nitrokey::OtpMode::SixDigits,
- );
- let mut admin = device.authenticate_admin("12345678")?;
- admin.write_totp_slot(data, 30)?;
- let mut device = admin.device();
-
- // Set the time for the OTP generation
- let time = time::SystemTime::now()
- .duration_since(time::UNIX_EPOCH)
- .expect("Invalid system time");
- device.set_time(time.as_secs(), true)?;
-
- // Generate a one-time password -- depending on the configuration, we have to set the user PIN
- let config = device.get_config()?;
- let otp = if config.user_password {
- let user = device.authenticate_user("123456")?;
- user.get_totp_code(1)
- } else {
- device.get_totp_code(1)
- }?;
- println!("Generated OTP code: {}", otp);
-
- Ok(())
-}