A library to verify, decode, decrypt and parse Yubikey one-time passwords.
key = 'ecde18dbe76fbd0c33330f1c354871db' otp = 'dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh' token = Yubikey::OTP.new(otp, key) p "Device public id: #{token.public_id}" #=> 'dteffuje' p "Device secret id: #{token.secret_id}" #=> '8792ebfe26cc' p "Device insertions: #{token.insert_counter}" #=> 19 p "Session activation counter: #{token.session_counter}" #=> 17 p "Session timestamp: #{token.timestamp}" #=> 49712 p "OTP random data: #{token.random_number}" #=> 40904
begin otp = Yubikey::OTP::Verify.new(:id => 1234, :key => 'NiSwGZBQ0gTbwXbRGWAf4kM5xXg=', :otp => 'ccccccbfueddtinbknckgcbfnnbhbnlkcuebtgcvuurg') if otp.valid? p 'valid OTP' elsif otp.replayed? p 'replayed OTP' end rescue Yubikey::OTP::InvalidOTPError p 'invalid OTP' end
sudo gem install yubikey
Written by Jonathan Rudenberg <jon335@gmail.com> Copyright (c) 2009 Jonathan Rudenberg The MIT License. See LICENSE.
Carl Byström Erik Ruwalder Chris Benedict at Mudbug Media