/yubikey-class-php

PHP class to authenticate YubiKeys locally (Yubico OTP algorithm), without any dependency (no PEAR, no PECL, no cURL)

Primary LanguagePHPGNU Lesser General Public License v3.0LGPL-3.0

YubiKey PHP class

Yubikey PHP class is a GNU LGPL class to check a YubiKey authentication locally

(c) 2014-2015 SysCo systemes de communication sa
The Yubikey PHP class is a subset of the multiOTP open source project.
http://www.multiOTP.net/

Current build: 4.3.2.0 (2015-01-04)

No external file is needed (no PEAR, no PECL).

AES 128 encryption and decryption algorithms using pure PHP code (LGPLv2.1) from Jose Manuel Busto Lopez is directly integrated in the source code.

In Yubico OTP mode, when the YubiKey button is pressed, the returned string is 44 characters long, with 12 characters for the fixed public id, and 32 characters for the dynamic OTP part. With the 12 characters of the public id, the right AES key (the secret) can be retrieved from your user identification handler to decrypt the dynamic OTP part.

Usage

<?php
    require_once('yubikey.class.php');
    $yubikey = new Yubikey();
    $result = $yubikey->checkYubicoOtp($yubico_modhex_encrypted_part,
                                       $secret,
                                       $last_valid_position);
?>

Possible returned value is one of the following:

          OK  The OTP is valid.
     BAD_OTP  The OTP is invalid format.
REPLAYED_OTP  The OTP has already been used.

Check yubikey.demo.php for a full implementation example.

You can support our open source projects with donations and sponsoring. Sponsorships are crucial for ongoing and future development! If you'd like to support our work, then consider making a donation, any support is always welcome even if it's as low as $1! You can also sponsor the development of a specific feature. Please contact us in order to discuss the detail of the implementation.

[Donate via PayPal by clicking here][1]. [![Donate via PayPal][2]][1] [1]: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=N56M9E2SEAUD4 [2]: https://www.paypalobjects.com/webstatic/mktg/logo/pp_cc_mark_37x23.jpg

And for more PHP classes, have a look on PHPclasses.org, where a lot of authors are sharing their classes for free.