A Python wrapper that encapsulates wolfSSL's wolfCrypt API.
 
 
 
Go to file
Hayden Roche 4c59f4fb72 Call wolfCrypt_SetPrivateKeyReadEnable_fips at init, if necessary.
This is another FIPS v5 change. This function needs to be called before we can
do private key ops with the new FIPS module.
2022-01-24 13:38:30 -08:00
docs Updated wolfcrypt, copyright notes. Add pwdbased on by default. 2022-01-10 21:23:12 +01:00
make remove python 2.7 from make/osx scripts 2021-02-24 09:50:44 -07:00
requirements updates copyright and fixes docs 2018-01-08 16:04:27 -03:00
src/wolfcrypt Call wolfCrypt_SetPrivateKeyReadEnable_fips at init, if necessary. 2022-01-24 13:38:30 -08:00
tests Updated wolfcrypt, copyright notes. Add pwdbased on by default. 2022-01-10 21:23:12 +01:00
.buildinfo
.coveragerc adds test coverage support 2018-02-26 22:13:25 +01:00
.gitignore Adding support for ed448 2021-12-13 13:40:12 +01:00
.travis.yml Modernize 2020-11-05 15:38:37 -08:00
LICENSING.rst fixes license file and adds specific build option to linux 2017-12-12 11:40:24 -03:00
MANIFEST.in moving files to wolfcrypt-py 2017-12-11 17:27:41 -03:00
Makefile updates docs 2018-03-19 22:07:53 +01:00
README.rst Fix spelling error. 2019-12-06 07:49:58 -08:00
setup.py Updated wolfcrypt, copyright notes. Add pwdbased on by default. 2022-01-10 21:23:12 +01:00
tox.ini updates tests and makefile 2017-12-12 17:53:56 -03:00

README.rst

wolfcrypt: the wolfSSL Crypto Engine
====================================

.. image:: https://travis-ci.org/wolfSSL/wolfcrypt-py.svg?branch=master
    :target: https://travis-ci.org/wolfSSL/wolfcrypt-py

**wolfCrypt Python**, a.k.a. ``wolfcrypt`` is a Python module that encapsulates
**wolfSSL's wolfCrypt API**.

`wolfCrypt <https://wolfssl.com/wolfSSL/Products-wolfcrypt.html>`_ is a
lightweight, portable, C-language-based crypto library
targeted at IoT, embedded, and RTOS environments primarily because of its size,
speed, and feature set. It works seamlessly in desktop, enterprise, and cloud
environments as well. It is the crypto engine behind `wolfSSl's embedded ssl
library <https://wolfssl.com/wolfSSL/Products-wolfssl.html>`_.

Installation
------------

We provide Python wheels (prebuilt binaries) for OSX 64 bits and Linux 64 bits:

.. code-block:: bash

    $ pip install wolfcrypt

To build wolfcrypt-py against a local installation of the native C wolfSSL
library, use the USE_LOCAL_WOLFSSL variable.  This variable should be

wolfcrypt-py can be built against a local version of the native wolfSSL
library by using pip with the USE_LOCAL_WOLFSSL variable. USE_LOCAL_WOLFSSL
should be set equal to the installation path for the wolfSSL library:

.. code-block:: bash

    $ USE_LOCAL_WOLFSSL=/path/to/wolfssl/install pip install .

If building wolfcrypt-py against a local wolfSSL library, wolfcrypt-py
will attempt to do native feature detection to enable/disable wolfcrypt-py
features based on how native wolfSSL has been compiled.  It uses the
<wolfssl/options.h> header to do feature detection.

Testing
-------

.. code-block:: python

    >>> from wolfcrypt.hashes import Sha256
    >>> Sha256('wolfcrypt').hexdigest()
    b'96e02e7b1cbcd6f104fe1fdb4652027a5505b68652b70095c6318f9dce0d1844'