An implementation of Authenticated Headers in a Software-Defined Network Environment
The cryptography package requires dependencies that are not provided
by the default python package on the Mininet Ubuntu distro. Instructions
are provided for installing the necessary packages and modules.
You can clone this repo and run the commands from within the three root
directories: six cffi libffi cryptography.
I don't think the mininet environment supports outside internet activity so these would need to be imported via a Shell connection or localhost file transfer.
Note: There are extra developer modules that these packages depend on
for installation and setup, however the current distro of mininet should
be adequate enough to support them all.
Six is the first Python library needed for running the cryptography
python module. Run the python setup.py install from within the
six directory and be sure that the module can be imported via the
python interpreter;
mininet:$ python
>>> import six
>>>Next you want to install the libffi python library package. You can
use the one available but it might be easier to just clone it from the
the libffi repository.
If you use the version source code to build libffi you must run the ./autogen.sh command and then run ./configure.
Once configure has finished, type make. Note that you must be
using GNU make. You can ftp GNU make from ftp.gnu.org:/pub/gnu/make
Ensure texinfo is installed: apt-get install texinfo
To ensure that libffi is working as advertised, type make check. This
will require that you have DehaGNU installed.
To install the library and header files, type make install.
Navigate to the cffi directory.
Ensure you have the python-dev package. Run sudo apt-get install python-dev After the python-dev finishes install use the command
python setup_base.py install.
Python-Dev may have to be manually imported from another machine.
You should now be able to import both Python modules via the interpreter
mininet:$ python >>> import six >>> import cffi
Navigate to the cryptography directory
Run the python setup.py install command.
After necessary packages and modules are imported you should be able to run the following commands with no errors from within the python interpreter or via a Python script.
>>> from cryptography.fernet import Fernet >>> # Put this somewhere safe! >>> key = Fernet.generate_key() >>> f = Fernet(key) >>> token = f.encrypt(b"Secret Message") >>> token >>> f.decrypt(token) 'Secret Message'
You can find more information in the documentation.
Using the PyCrypto library for asymmetric cryptography
Run the python setup.py install command.