Skip to main content

Python module that encapsulates wolfSSL's crypto engine API.

Project description

wolfCrypt Python, a.k.a. wolfcrypt is a Python module that encapsulates wolfSSL’s wolfCrypt API.

wolfCrypt 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.

Compiling

Windows

Install the following on Windows:

Then from the command line install tox and CFFI using:

pip install tox cffi

You can then build the source distribution packages using:

python setup.py sdist

Linux

The setup.py file covers most things you will need to do to build and install from source. As pre-requisites you will need to install either from your OS repository or pip. You’ll also need the Python development package for your Python version:

  • cffi

  • tox

  • pytest

To build a source package run python setup.py sdist, to build a wheel package run python setup.py bdist_wheel. To test the build run tox. The tox tests rely on Python 3.9 being installed, if you do not have this version we recommend using pyenv to install it.

Installation

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

$ 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:

$ 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

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

Testing wolfcrypt’s source code with tox

To run the unit tests in the source code, you’ll need tox and a few other requirements.

  1. Make sure that the testing requirements are installed:

$ sudo -H pip install -r requirements/test.txt
  1. Run tox:

$ tox
...
_________________________________ summary _________________________________
py3: commands succeeded
congratulations :)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wolfcrypt-5.7.4.post0.tar.gz (87.0 kB view details)

Uploaded Source

File details

Details for the file wolfcrypt-5.7.4.post0.tar.gz.

File metadata

  • Download URL: wolfcrypt-5.7.4.post0.tar.gz
  • Upload date:
  • Size: 87.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for wolfcrypt-5.7.4.post0.tar.gz
Algorithm Hash digest
SHA256 1e674ca91ca5816375f45db59fd3164a8e47444279b7e273d511f1ecee0421b6
MD5 023180effae4dcdbbd46a449d9acc456
BLAKE2b-256 9c926a90b2b756b27de44dfe34a3d67d1f7c5dd08442493f6eb2f61c288d95cb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page