c737cde947
Anywhere a module is mentioned, use its "non-u" name for consistency. The "import module" vs "import umodule" is something of a FAQ, and this commit intends to help clear that up. As a first approximation MicroPython is Python, and so imports should work the same as Python and use the same name, to a first approximation. The u-version of a module is a detail that can be learned later on, when the user wants to understand more and have finer control over importing. Existing Python code should just work, as much as it is possible to do that within the constraints of embedded systems, and the MicroPython documentation should match the idiomatic way to write Python code. With universal weak links for modules (via MICROPY_MODULE_WEAK_LINKS) users can consistently use "import foo" across all ports (with the exception of the minimal ports). And the ability to override/extend via "foo.py" continues to work well. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
60 lines
1.8 KiB
ReStructuredText
60 lines
1.8 KiB
ReStructuredText
:mod:`hashlib` -- hashing algorithms
|
|
=====================================
|
|
|
|
.. include:: ../templates/unsupported_in_circuitpython.inc
|
|
|
|
.. module:: hashlib
|
|
:synopsis: hashing algorithms
|
|
|
|
|see_cpython_module| :mod:`cpython:hashlib`.
|
|
|
|
This module implements binary data hashing algorithms. The exact inventory
|
|
of available algorithms depends on a board. Among the algorithms which may
|
|
be implemented:
|
|
|
|
* SHA256 - The current generation, modern hashing algorithm (of SHA2 series).
|
|
It is suitable for cryptographically-secure purposes. Included in the
|
|
MicroPython core and any board is recommended to provide this, unless
|
|
it has particular code size constraints.
|
|
|
|
* SHA1 - A previous generation algorithm. Not recommended for new usages,
|
|
but SHA1 is a part of number of Internet standards and existing
|
|
applications, so boards targeting network connectivity and
|
|
interoperability will try to provide this.
|
|
|
|
* MD5 - A legacy algorithm, not considered cryptographically secure. Only
|
|
selected boards, targeting interoperability with legacy applications,
|
|
will offer this.
|
|
|
|
Constructors
|
|
------------
|
|
|
|
.. class:: hashlib.sha256([data])
|
|
|
|
Create an SHA256 hasher object and optionally feed ``data`` into it.
|
|
|
|
.. class:: hashlib.sha1([data])
|
|
|
|
Create an SHA1 hasher object and optionally feed ``data`` into it.
|
|
|
|
.. class:: hashlib.md5([data])
|
|
|
|
Create an MD5 hasher object and optionally feed ``data`` into it.
|
|
|
|
Methods
|
|
-------
|
|
|
|
.. method:: hash.update(data)
|
|
|
|
Feed more binary data into hash.
|
|
|
|
.. method:: hash.digest()
|
|
|
|
Return hash for all data passed through hash, as a bytes object. After this
|
|
method is called, more data cannot be fed into the hash any longer.
|
|
|
|
.. method:: hash.hexdigest()
|
|
|
|
This method is NOT implemented. Use ``binascii.hexlify(hash.digest())``
|
|
to achieve a similar effect.
|