Node library for validating Yubikey One Time Passwords (OTPs) based on the validation protocol version 2.0.
JavaScript Shell
Latest commit 672febc Jul 29, 2013 @Kami Add .gitignore.
Failed to load latest commit information.
example [fix] Changed require('sys') to require('util') for compatibility wit… Jun 23, 2012
lib Add missing curly brackets. Jul 29, 2013
scripts Add test script. May 26, 2012
tests Rename test file and update tests so they work with Whiskey. May 26, 2012
.gitignore
.npmignore
.travis.yml
LICENSE Add license. Dec 28, 2010
README.md
index.js
package.json Update package.jsom. Jul 29, 2013

README.md

Yubico

Node library for validating Yubico One Time Passwords (OTPs) based on the validation protocol version 2.0.

Installation

npm install yubico

Build Status

Build Status

Usage

Create a new instance of the Yubico object and call verify() or verify_multi() method.

var yubico = new Yubico(client_id, api_key, use_https)

Parameters:

  • client_id - client id
  • key - API key (optional)
  • use_https true to use https (defaults to true)

Response message HMAC signature is only verified if an API key is provided so you are encouraged to provide it.

You can get both client_id and the api key at https://upgrade.yubico.com/getapikey/.

Validating a single token

yubico.verify(otp_token, timeout, callback)

Parameters:

  • otp - token generated by the Yubikey
  • timeout - connection timeout in seconds (defaults to 15 seconds)
  • callback - a callback which is called with an error as the first argument if the Yubikey validation fails and true as the second one if the provided token is valid.

Validating multiple tokens

yubico.verify_multi(otp_list, max_time_window, timeout, callback)
  • otp_list - an array of Yubikey tokens. Tokens are validated in the provided order so the order matters (tokens must be provided in the same order as they were generated)
  • max_time_window - how many seconds can pass between the first token and the last token generation so that the result is still considered valid (defaults to 5 seconds)
  • timeout - connection timeout in seconds (defaults to 15 seconds)
  • callback - a callback which is called with an error as the first argument if the Yubikey validation fails and true as the second one if the provided token is valid.

Example

Example is located in example/example.js.

Validating a single token (example)

node example/example.js single client_id [secret_key|null] otp

Validating multiple tokens (example)

node example/example.js multi client_id [secret_key|null] otp_1 otp_2

History

02.02.2010 - v0.1.2:

  • Allow package to be used with node >= 0.3.0
  • Don't use https if node version >= 0.3.0 or use_https equals False
  • Update tests so it works with a new version of expresso

31.12.2010 - v0.1.1:

  • Verify time window in the multi mode
  • Throw exception if none or only a single token is provided in the multi mode
  • Always take "max_time_window" argument in seconds and convert it internally
  • Add tests

28.12.2010 - v0.1.0:

  • Initial release