You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+15-9Lines changed: 15 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,25 +33,29 @@ Contents
33
33
34
34
The project contains the following files:
35
35
36
-
-**`oqs/wrapper.py`: a Python 3 module wrapper for the liboqs C library.**
37
-
-`examples/example.py`: illustrates the usage of the liboqs-python wrapper.
38
-
-`tests/test_*.py`: unit tests for the liboqs-python wrapper.
36
+
-**`oqs/oqs.py`: a Python 3 module wrapper for the liboqs C library.**
37
+
-`oqs/rand.py`: a Python 3 module supporting RNGs from `<oqs/rand.h>`
38
+
-`examples/kem.py`: key encapsulation example
39
+
-`examples/rand.py`: RNG example
40
+
-`examples/sig.py`: signature example
41
+
-`tests`: unit tests
39
42
40
43
Usage
41
44
-----
42
45
43
-
liboqs-python defines two main classes: `KeyEncapsulation` and `Signature`, providing post-quantum key encapsulation and signture mechanisms, respectively. Each must be instantiated with a string identifying one of mechanisms supported by liboqs; these can be enumerated using the `get_enabled_KEM_mechanisms` and `get_enabled_sig_mechanisms` functions. The `example.py` file demonstrates the wrapper's API.
46
+
liboqs-python defines two main classes: `KeyEncapsulation` and `Signature`, providing post-quantum key encapsulation and signture mechanisms, respectively. Each must be instantiated with a string identifying one of mechanisms supported by liboqs; these can be enumerated using the `get_enabled_KEM_mechanisms` and `get_enabled_sig_mechanisms` functions. The files in `examples/` demonstrate the wrapper's API.
47
+
Support for alternative RNGs is provided via the `randombytes[*]` functions.
44
48
45
49
liboqs installation
46
50
-------------------
47
51
48
52
liboqs-python depends on the liboqs C library; it must be compiled as a Linux/macOS library or Windows DLL, and installed in one of:
49
53
50
-
- any file path specified by the `LIBOQS_INSTALL_PATH` environment variable (e.g. `LIBOQS_INSTALL_PATH="/path/to/liboqs.so"`)
54
+
- any file path specified by the `LIBOQS_INSTALL_PATH` environment variable (e.g. `LIBOQS_INSTALL_PATH="/usr/local/bin/liboqs.so"`; **do not forget to specify `liboqs.so` at the end**)
51
55
- system-wide folder
52
56
- the liboqs Python module's current folder
53
57
54
-
`wrapper.py` checks the above locations in that order. At present, only liboqs master branch can be installed; see the [liboqs project](https://github.com/open-quantum-safe/liboqs/) for installation instructions.
58
+
`oqs/oqs.py` checks the above locations in that order. At present, only liboqs master branch can be installed; see the [liboqs project](https://github.com/open-quantum-safe/liboqs/) for installation instructions.
55
59
56
60
liboqs-python does not depend on any other Python packages. The package isn't hosted on PyPI yet, but can be installed into a virtualenv using:
57
61
@@ -71,9 +75,9 @@ The liboqs-python project should be in the `PYTHONPATH`:
71
75
72
76
As any python module, liboqs wrapper components can be imported into python programs with `import oqs`.
73
77
74
-
To run the example program:
78
+
To run an example program:
75
79
76
-
python3 examples/example.py
80
+
python3 examples/kem.py
77
81
78
82
To run the unit tests with a test runner (e.g. nose or rednose (`apt install python3-nose python3-rednose` or `pip3 install nose rednose`)):
79
83
@@ -112,12 +116,14 @@ The Open Quantum Safe project is led by [Douglas Stebila](https://www.douglas.st
112
116
Contributors to the liboqs-python wrapper include:
113
117
114
118
- Ben Davies (University of Waterloo)
119
+
- Vlad Gheorghiu (evolutionQ, University of Waterloo)
115
120
- Christian Paquin (Microsoft Research)
121
+
- Douglas Stebila (University of Waterloo)
116
122
117
123
### Support
118
124
119
125
Financial support for the development of Open Quantum Safe has been provided by Amazon Web Services and the Tutte Institute for Mathematics and Computing.
120
126
121
-
We'd like to make a special acknowledgement to the companies who have dedicated programmer time to contribute source code to OQS, including Amazon Web Services, evolutionQ, and Microsoft Research.
127
+
We'd like to make a special acknowledgement to the companies who have dedicated programmer time to contribute source code to OQS, including Amazon Web Services, Cisco Systems, evolutionQ, IBM Research, and Microsoft Research.
122
128
123
129
Research projects which developed specific components of OQS have been supported by various research grants, including funding from the Natural Sciences and Engineering Research Council of Canada (NSERC); see the source papers for funding acknowledgments.
The **Open Quantum Safe (OQS) project** has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.
7
+
The **Open Quantum Safe (OQS) project** has the goal of developing and prototyping quantum-resistant cryptography. More information on OQS can be found on our website: https://openquantumsafe.org/ and on Github at https://github.com/open-quantum-safe/.
8
8
9
-
**liboqs** is an open source C library for quantum-resistant cryptographic algorithms. See more about liboqs at [https://github.com/open-quantum-safe/liboqs/](https://github.com/open-quantum-safe/liboqs/), including a list of supported algorithms.
9
+
**liboqs** is an open source C library for quantum-resistant cryptographic algorithms. See more about liboqs at [https://github.com/open-quantum-safe/liboqs/](https://github.com/open-quantum-safe/liboqs/), including a list of supported algorithms.
10
10
11
-
**liboqs-python** is an open source Python 3 wrapper for the liboqs C library for quantum-resistant cryptographic algorithms. Details about liboqs-python can be found in [README.md](https://github.com/open-quantum-safe/liboqs-python/blob/master/README.md). See in particular limitations on intended use.
11
+
**liboqs-python** is an open source Python 3 wrapper for the liboqs C library for quantum-resistant cryptographic algorithms. Details about liboqs-python can be found in [README.md](https://github.com/open-quantum-safe/liboqs-python/blob/master/README.md). See in particular limitations on intended use.
12
12
13
13
Release notes
14
14
=============
15
15
16
-
This release of liboqs-python was released on October 8, 2019. Its release page on GitHub is https://github.com/open-quantum-safe/liboqs-python/releases/tag/0.2.0.
16
+
This release of liboqs-python was released on January 22, 2020. Its release page on GitHub is https://github.com/open-quantum-safe/liboqs-python/releases/tag/0.2.1.
17
17
18
18
What's New
19
19
----------
20
20
21
-
This is the second release of liboqs-python.
21
+
This is the third release of liboqs-python.
22
22
23
-
This release updates for compatibility with liboqs 0.2.0, which contains new/updated algorithms based on NIST Round 2 submissions.
23
+
This release added partial support for RNGs from `<oqs/rand.h>`, together with a signature example and an RNG example.
24
+
25
+
For a list of changes see [CHANGES.txt](https://github.com/open-quantum-safe/liboqs-python/blob/master/CHANGES.txt).
0 commit comments