pyca/cryptography — pull request #200 by dreid (2013-10-30 18:40:18+00:00)
Title: [WIP] Reduce the surface of the primitive hash interface.

This separates the interfaces into `HashAlgorithm` and `HashContext`. There is one provider of `HashContext` that you instantiate directly with a given algorithm.

The context can be updated, copied, and finalized.

This drops direct `hashlib` compatibility in favor of reducing the API surface and providing one way to manipulate the underlying data.

Eventually the end result should be a separate module which provides complete `hashlib` compatibility written in terms of these interfaces.

* [x] New interfaces
* [x] Refactor tests
* [x] Refactor hashes module
* [ ] Update documentation