Edit

thodg/totp-rs/examples/gen_secret.rs

Branch :

  • Show log

    Commit

  • Author : Steven Salaun
    Date : 2022-08-06 23:04:50
    Hash : f65a2e84
    Message : add `Secret` enum & `gen_secret` feature - Make the distinction between encoded/non-encoded secret clear, and allows for easy transformation betwen the two formats - add `gen_secret` feature to allow easy generation of CSPRNG secret, also add function to generate rfc recommended length secret

  • examples/gen_secret.rs
  • #[cfg(not(feature = "gen_secret"))]
    compile_error!("requires feature gen_secret");
    
    use totp_rs::{Secret, TOTP, Algorithm};
    
    fn main () {
    
        let secret = Secret::generate_rfc_secret();
    
        let totp = TOTP::new(
            Algorithm::SHA1,
            6,
            1,
            30,
            secret.as_bytes().unwrap(),
            None,
            "account".to_string(),
        ).unwrap();
    
        println!(
            "secret plain: {} ; secret base32 {} ; code: {}",
            secret,
            secret.as_base32(),
            totp.generate_current().unwrap()
        )
    }