Skip to content

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

License

Notifications You must be signed in to change notification settings

lrobson/python-yubico-client

This branch is 156 commits behind Kami/python-yubico-client:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0dfadb1 · Jul 10, 2013
Apr 15, 2013
May 20, 2013
May 21, 2013
Apr 10, 2013
Apr 16, 2013
May 21, 2013
Nov 19, 2011
Apr 15, 2013
Nov 19, 2011
Jul 10, 2013
Jan 24, 2013
Apr 10, 2013
Jan 24, 2013

Repository files navigation

Yubico Python Client

Python class for verifying Yubico One Time Passwords (OTPs) based on the validation protocol version 2.0.

Installation

pip install yubico-client

Note: Package has been recently renamed from yubico to yubico-client and the main module has been renamed from yubico to yubico_client. This was done to avoid naming conflicts and make creation of distribution specific packages easier.

Build Status

Build Status

Running Tests

python setup.py test

Usage

  1. Generate your client id and secret key (this can be done by visiting the Yubico website)
  2. Use the client

Single mode:

from yubico_client import Yubico

yubico = Yubico('client id', 'secret key')
yubico.verify('otp')

Multi mode:

from yubico_client import Yubico

yubico = Yubico('client id', 'secret key')
yubico.verify_multi(['otp 1', 'otp 2', 'otp 3'])

The verify method will return True if the provided OTP is valid (STATUS=OK).

The verify_multi method will return True if all of the provided OTPs are valid (STATUS=OK).

Both methods can also throw one of the following exceptions:

  • StatusCodeError - server returned REPLAYED_OTP status code
  • SignatureVerificationError - server response message signature verification failed
  • InvalidClientIdError - client with the specified id does not exist (server returned NO_SUCH_CLIENT status code)
  • Exception - server returned one of the following status values: BAD_OTP, BAD_SIGNATURE, MISSING_PARAMETER, OPERATION_NOT_ALLOWED, BACKEND_ERROR, NOT_ENOUGH_ANSWERS, REPLAYED_REQUEST or no response was received from any of the servers in the specified time frame (default timeout = 10 seconds)

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published