python-openid2 3.2
Python OpenID library - OpenID support for servers and consumers.
Requires Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*

# python-openid2 #

[![Build Status](https://travis-ci.org/ziima/python-openid.svg?branch=master)](https://travis-ci.org/ziima/python-openid)
[![codecov](https://codecov.io/gh/ziima/python-openid/branch/master/graph/badge.svg)](https://codecov.io/gh/ziima/python-openid)
[![PyPI](https://img.shields.io/pypi/v/python-openid2.svg)](https://pypi.org/pypi/python-openid2/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/python-openid2.svg)](https://pypi.org/pypi/python-openid2/)

Python OpenID library - OpenID support for servers and consumers.

This is a set of Python packages to support use of the OpenID decentralized identity system in your application.
Want to enable single sign-on for your web site?
Use the `openid.consumer package`.
Want to run your own OpenID server?
Check out `openid.server`.
Includes example code and support for a variety of storage back-ends.

## REQUIREMENTS ##

 - Python 2.7, >=3.5
 - lxml
 - six
 - cryptography


## INSTALLATION ##

To install the base library, just run the following command:

    pip install python-openid2


## GETTING STARTED ##

The examples directory includes an example server and consumer
implementation.  See the README file in that directory for more
information on running the examples.

Library documentation is available in html form in the doc directory.


## LOGGING ##

This library offers a logging hook that will record unexpected
conditions that occur in library code. If a condition is recoverable,
the library will recover and issue a log message. If it is not
recoverable, the library will raise an exception. See the
documentation for the openid.oidutil module for more on the logging
hook.


## DOCUMENTATION ##

The documentation in this library is in Epydoc format, which is
detailed at:

  http://epydoc.sourceforge.net/


## CONTACT ##

Send bug reports, suggestions, comments, and questions to
https://github.com/ziima/python-openid/issues/new

If you have a bugfix or feature you'd like to contribute, don't
hesitate to send it to us on GitHub.


# Changelog #

## 3.2 ##
 * Add support for python 3.8.
 * Drop support for python 3.4.
 * Fix false positive redirect error in consumer verification.
 * Do not percent escape sub delimiters in path in URI normalization. Thanks Colin Watson for report.
 * Fix tests and static code checks. Thanks Colin Watson.

## 3.1 ##
 * Convert data values for extensions to text.
 * Fixes in Python 2/3 support.
 * Fix examples.
 * Add support for python 3.7
 * Fix static code checks
 * Use bumpversion

## 3.0 ##

 * Support Python3.
 * Change most of the API to the text strings. UTF-8 encoded byte string should be compatible.
 * Authentication methods based on SHA-256 are now preferred over SHA-1.
 * Use `cryptography` library for cryptography tasks.
 * Add new base64-based API for `DiffieHellman` class.
 * Refactor script to negotiate association with an OpenID server.
 * Decrease log levels on repetitive logs.
 * Default fetcher is picked from more options.
 * Remove `openid.consumer.html_parse` module.
 * Remove `hmacSha*`, `randomString`, `randrange` and `sha*` functions from `openid.cryptutil`.
 * A lot of refactoring and clean up.

### Deprecation ###
 * Binary strings are deprecated, unless explicitely allowed.
 * `hash_func` is deprecated in favor of `algorithm` in `DiffieHellmanSHA*ServerSession` and `DiffieHellmanSHA*ConsumerSession`.
 * `DiffieHellmanSHA*ServerSession.consumer_pubkey` is deprecated in favor of `consumer_public_key`.
 * Functions `longToBinary` and `binaryToLong` deprecated in favor of `int_to_bytes` and `bytes_to_int`, respectively.
 * Old `DiffieHellman` API is deprecated.

## 2.3.0 ##

 * Prevent timing attacks on signature comparison. Thanks to Carl Howells.
 * Prevent XXE attacks.
 * Fix unicode errors. Thanks to Kai Lautaportti.
 * Drop support for python versions < 2.7.
 * Use logging module. Thanks to Attila-Mihaly Balazs.
 * Allow signatory, encoder and decoder to be set for Server. Thanks to julio.
 * Fix URL limit to server responses. Thanks to Rodrigo Primo.
 * Fix several protocol errors.
 * Add utility method to AX store extension.
 * Fix curl detection. Thanks to Sergey Shepelev.
 * Use setuptools. Thanks to Tres Seaver.
 * Refactor `Message` class creation.
 * Add `RequestsFetcher`. Thanks to Lennonka.
 * Updated examples.
 * Add tox for testing. Thanks to Marc Abramowitz.
 * Refactor tests.
 * Clean code and add static checks.

### Deprecation ###
 * `Message.setOpenIDNamespace()` method.
 * `UndefinedOpenIDNamespace` exception.
 * `OpenIDRequest.namespace` attribute.
 * `openid.extensions.draft` packages, namely its `pape2` and `pape5` modules.