Sha256: 258fdd907aed1fa3dedf323302d0591d5ef5b43c6a91b7762c7008f4f9df85c2

Contents?: true

Size: 1.88 KB

Versions: 1

Compression:

Stored size: 1.88 KB

Contents

# yubikey

[![Build Status](https://travis-ci.org/rainforestapp/yubikey.png?branch=master)](https://travis-ci.org/rainforestapp/yubikey)

## Description

A library to verify, decode, decrypt and parse [Yubikey](http://www.yubico.com/home/index/) one-time passwords.

## Usage

### OTP Decryption

```ruby
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
```

### OTP Verification
Use your own `api_key` and `api_id`, which you can get at [yubico.com](https://upgrade.yubico.com/getapikey/).

```ruby
begin
  otp = Yubikey::OTP::Verify.new(:api_id => 1234,
                                 :api_key => 'NiSwGZBQ0gTbwXbRGWAf4kM5xXg=',
                                 :otp => 'dteffujehknhfjbrjnlnldnhcujvddbikngjrtgh')
    
  if otp.valid?
    p 'valid OTP'
  elsif otp.replayed?
    p 'replayed OTP'
  end
rescue Yubikey::OTP::InvalidOTPError
  p 'invalid OTP'
end
```

## Install

Yubikey is available as a gem, to install it just install the gem:

    gem install yubikey

If you're using Bundler, add the gem to Gemfile.

    gem 'yubikey'

Then run bundle install.

## Copyright

### Ruby library
  Written by [Jonathan Rudenberg](https://github.com/titanous) <jon335@gmail.com>
  Copyright (c) 2009 Jonathan Rudenberg
  The MIT License. See LICENSE.

### Contributors
- Carl Byström
- Erik Ruwalder
- [Russell Smith](https://github.com/ukd1)
- [Chris Lundquist](https://github.com/ChrisLundquist)
- [Maarten van Grootel](https://github.com/maartenvg)
- [Chris Benedict](https://github.com/chrisbdaemon)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
yubikey-1.3.0 README.md