Package: yubico-client
Yubico Python ClientPython class for verifying Yubico One Time Passwords (OTPs) based on the
validation protocol version 2.0.Yubico website:http://www.yubico.comYubico documentation:http://www.yubico.com/developers/intro/Validation Protocol Version 2.0 description:https://developers.yubico.com/yubikey-val/Validation_Protocol_V2.0.htmlFor more information and usage examples, please see the.documentation.DocumentationDocumentation is available athttps://yubico-client.readthedocs.org/en/latest/Installation$pipinstallyubico-clientNote: Package has been recently renamed fromyubicotoyubico-clientand
the main module has been renamed fromyubicotoyubico_client. This
was done to avoid naming conflicts and make creation of distribution specific
packages easier.Supported Python VersionsPython 2.7Python 3.4Python 3.5Python 3.6Python 3.7Python 3.8PyPy 2PyPy 3Running TestsTo run the tests use the tox command. This will automatically run the tests on
all the supported Python versions.$toxLicenseYubico Client is distributed under the3-Clause BSD License.Changelog1.13.0 - 2020-05-21Update client to query a single API server instead of multiple ones in
parallel by default.Previously, we queried 6 Yubico API servers in parallel for high availability
and performance reasons.Now api.yubico.com is globally distributed and load balanced so there is no
need for us to do that anymore and we can just query a single API server and
let the server handle HA and load-balancing.Users who run their own internal Yubikey validation servers can still specify
a list of servers by passingapi_urlsargument to the client constructor
(same as before).Contributed by @mallensb and @nrw505. Part of #31 and #32.1.12.0 - 2019-11-18Update code to retry HTTP requests for server errors which might work on a
retry (5xx status codes returned by the server). Those errors could simply
indicate a gateway or a proxy error which might work on a retry.Contributed by Nigel Williams (@nrw505) #30Pin minimum version forrequestsdependency tov2.22.0.Update the code so we don’t throw an exception if one of the multiple servers
we query has issues.We query multiple servers in parallel purely for availability reasons and the
consistency / sync part is taken care by the server side. The client returns
immediately as soon as it receives one positive or a negative response.Contributed by Nigel Williams (@nrw505) #29Update code so we sendUser-Agentheader which includes client version
information and platform string with each HTTP request.Also test the code with Python 3.8.0 and indicate we also support Python 3.8.1.11.0 - 2019-07-06Drop support for Python 2.6. #28Test the code and verify it works with the following Python versions:
* Python 3.3
* Python 3.4
* Python 3.5
* Python 3.6
* Python 3.7
* PyPy 2
* PyPy 3 #281.10.0 - 2015-10-02Fix compatibility issue with Python versions >= 3.0 <= 3.3 #22Pinrequestsdependency to the latest version (2.7) #25 #27Contribution by Wouter van Bommel, Vianney Carel.Make sure the query parameters are unquoted when parsing them from the
response. #23Contribution by Tamás Gulácsi.1.9.1 - 2014-02-05Fix Python 3 compatibility issue. #211.9.0 - 2014-01-16To discourage bad practices, removeuse_httpsargument from theYubicoclass constructor all together. Also updateDEFAULT_API_URLSvariable to
contain full URLs with a scheme (e.g.https://api.yubico.com/wsapi/2.0/verify).If a user wants to use a custom non-https URL or URLs, they can still do that
by passingapi_urlsargument with custom non-https URLs to the
constructor.ReplaceCA_CERTS_BUNDLE_PATHmodule level variable with aca_certs_bundle_pathargument which can be passed to the Yubico class
constructor.Updaterequestsdependency from1.2to2.2.1.8.0 - 2013-11-09Modifyverify_multimethod to throw ifotp_listargument contains
less than two itemsModifymax_time_windowargument in theverify_multimethod to be
in seconds (#19)Modifyverify_multimethod to throw if delta between the first and last
OTP timestamp is smaller than zeroAllow user to passapi_urlsargument to theYubicoclass constructor.
This argument can contain a list of API urls which are used to validate the
token.https://github.com/Kami/python-yubico-client/pull/18Contributed by Dain NilssonDepend on newer version (1.2.3) of therequestslibrary.Update code and tests so they also work under Python 3.31.7.0 - 2013-04-06Change PyPi package name fromyubicotoyubico-client.This was done to prevent naming collisions and make creation of distribution
specific packages (e.g. debian packages) easier.1.6.2 - 2013-04-02If there are multiple interpretations for a given OTP, first try to find the one
which matches the input OTP. If the one is found, use the input OTP, otherwise
use random interpretation. -https://github.com/Kami/python-yubico-client/issues/14Reported by Klas Lindfors1.6.1 - 2013-03-19Only runlogging.basicConfigwhen running tests so logging config isn’t initialised
on module import -https://github.com/Kami/python-yubico-client/pull/131.6.0 - 2013-01-24Allow user to specify a path to the CA bundle which is used for verifying the
server SSL certificate by settingCA_CERTS_BUNDLE_PATHvariable.When selecting which CA bundle is used for verifying the server SSL
certificate look for the bundle in some common locations -https://github.com/Kami/python-yubico-client/pull/10Drop support for Python 2.5Userequestslibrary for performing HTTP requests and turn SSL cert
verification on by defaultAvoid busy-looping (addtime.sleep) when waiting for responses -https://github.com/Kami/python-yubico-client/pull/9Allow user to pass in value0forslargument inverifyandverify_multimethod -https://github.com/Kami/python-yubico-client/pull/8Throw an exception insideverifyandverify_multimethod if timeout has
occurred or invalid status code is returned -https://github.com/Kami/python-yubico-client/pull/7Improve response validation and of included, verify thatotpandnonceparameters in the response match one provided in the request -https://github.com/Kami/python-yubico-client/pull/7Add logging