wolfcrypt: the wolfSSL Crypto Engine¶
wolfCrypt Python, a.k.a. wolfcrypt is a Python library 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.
Installation¶
In order to use wolfcrypt, first you’ll need to install wolfssl C
embedded ssl library.
Installing wolfssl :¶
Mac OSX
brew install wolfssl
or
git clone https://github.com/wolfssl/wolfssl.git
cd wolfssl/
./autogen.sh
./configure --enable-sha512
make
sudo make install
Ubuntu
sudo apt-get update
sudo apt-get install -y git autoconf libtool
git clone https://github.com/wolfssl/wolfssl.git
cd wolfssl/
./autogen.sh
./configure --enable-sha512
make
sudo make install
sudo ldconfig
CentOS
sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
sudo yum update
sudo yum install -y git autoconf libtool
git clone git@github.com:wolfssl/wolfssl.git
cd wolfssl
./autogen.sh
./configure --enable-sha512
make
sudo make install
echo /usr/local/lib > wolfssl.conf
sudo mv wolfssl.conf /etc/ld.so.conf
sudo ldconfig
Installing wolfcrypt :¶
Mac OSX
sudo -H pip install wolfcrypt
Ubuntu
sudo apt-get install -y python-dev python3-dev python-pip libffi-dev
sudo -H pip install wolfcrypt
CentOS
sudo yum install -y python-devel python3-devel python-pip libffi-devel
sudo -H pip install wolfcrypt
Testing wolfcrypt :¶
python -c "from wolfcrypt.hashes import Sha; print Sha().hexdigest()"
expected output: da39a3ee5e6b4b0d3255bfef95601890afd80709
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. The source code relies at ‘WOLFSSL_DIR/wrapper/python/wolfcrypt’
where WOLFSSL_DIR is the path of wolfssl‘s source code.
- Make sure that the testing requirements are installed:
$ sudo -H pip install -r requirements-testing.txt
- Run
tox:
$ tox
...
_________________________________ summary _________________________________
py27: commands succeeded
SKIPPED: py34: InterpreterNotFound: python3.4
py35: commands succeeded
congratulations :)
Note: the test is performed using multiple versions of python. If you are missing a version the test will be skipped with an InterpreterNotFound error.
Summary¶
Licensing¶
wolfSSL’s software is available under two distinct licensing models: open source and standard commercial licensing. Please see the relevant section below for information on each type of license.
Open Source¶
wolfCrypt and wolfSSL software are free software downloads and may be modified to the needs of the user as long as the user adheres to version two of the GPL License. The GPLv2 license can be found on the gnu.org website.
Commercial Licensing¶
Businesses and enterprises who wish to incorporate wolfSSL products into proprietary appliances or other commercial software products for re-distribution must license commercial versions. Licenses are generally issued for one product and include unlimited royalty-free distribution. Custom licensing terms are also available at licensing@wolfssl.com.