|
14 | 14 |
|
15 | 15 | ## Versioning
|
16 | 16 |
|
17 |
| -The version numbers follow the upstream `liboqs` versions, but with a twist. |
18 |
| -The `liboqs` version `0.7.2` gets released as the `oqs` and `oqs-sys` version `0.7.2xx` series. |
19 |
| -This allows us to release patch versions of the Rust bindings as `0.7.201`, `0.7.202`, and so on. |
| 17 | +Releases up to and including release `0.9.0` of `oqs` and `oqs-sys` followed the `liboqs` versioning 1-on-1. |
| 18 | +**Starting from release `0.9.0`, this is no longer guaranteed.** |
| 19 | +These crates will now receive version bumps as necessary. |
| 20 | +We will include the version number of `liboqs` that is distributed by `liboqs-sys` in the version number of `liboqs-sys` |
| 21 | +as `0.9.0+liboqs-0.9.0`. |
20 | 22 |
|
21 | 23 | ## Pre-requisites
|
22 | 24 |
|
23 | 25 | `oqs-sys` depends on the [liboqs](https://github.com/open-quantum-safe/liboqs) C library.
|
24 |
| -It will build `liboqs` automatically. |
| 26 | +It will build `liboqs` automatically with the default-enabled `vendored` feature. |
| 27 | +See below for more information. |
25 | 28 |
|
26 | 29 | ## Contents
|
27 | 30 |
|
28 | 31 | This crate provides unsafe `ffi` bindings in the `oqs-sys` crate, and safe wrappers are offered via the `oqs` crate.
|
29 |
| -The rendered rustdoc documentation can be [found here](https://open-quantum-safe.github.io/liboqs-rust/oqs/) |
| 32 | +The rendered Rustdoc documentation can be [found here](https://open-quantum-safe.github.io/liboqs-rust/oqs/) |
30 | 33 |
|
31 | 34 | ## Usage
|
32 | 35 |
|
@@ -60,7 +63,7 @@ You can enable `serde` serialization support by enabling the `serde` feature on
|
60 | 63 | ## `std` support
|
61 | 64 |
|
62 | 65 | The `oqs-sys` crate does not use `std` at all.
|
63 |
| -Note that the default features do enable building liboqs with `openssl`, so use `default-features = false`. |
| 66 | +Note that the default features do enable building `liboqs` with `openssl`, so use `default-features = false`. |
64 | 67 |
|
65 | 68 | To make `oqs` a `#![no_std]` crate make sure the `std` feature is disabled.
|
66 | 69 | Make sure to also disable the `oqs-sys/openssl` feature by specifying `default-features = false`.
|
@@ -97,15 +100,14 @@ This for example affects tests.
|
97 | 100 | - `frodokem`
|
98 | 101 | - `hqc`
|
99 | 102 | - `kyber`
|
100 |
| - - `ntru` |
101 | 103 | - `ntruprime`
|
102 | 104 | - `saber`
|
103 | 105 | - `sigs` (default): Compile with all signature schemes enabled
|
104 | 106 | - `dilithium`
|
105 | 107 | - `falcon`
|
106 | 108 | - `picnic`
|
107 | 109 | - `rainbow`
|
108 |
| - - `sphincs`: SPHINCS+ |
| 110 | + - `sphincs`: SPHINCS<sup>+</sup> |
109 | 111 |
|
110 | 112 | ## Running
|
111 | 113 |
|
@@ -143,28 +145,6 @@ fn main() -> Result<()> {
|
143 | 145 | }
|
144 | 146 | ```
|
145 | 147 |
|
146 |
| -## Adding new algorithms |
147 |
| - |
148 |
| -### KEMs |
149 |
| - |
150 |
| -1. Update the Git submodule |
151 |
| -2. `oqs-sys` will now update when you build again |
152 |
| -3. Add it to the `implement_kems!` macro call in `oqs/src/kem.rs`: |
153 |
| - |
154 |
| -- The structure is a name for the algorithm in CamelCase, and the name of the constant of the algorithm (`OQS_KEM_alg_...`) |
155 |
| - |
156 |
| -4. Add the necessary features to `Cargo.toml` and `oqs-sys/build.rs`. |
157 |
| - |
158 |
| -### Signature schemes: |
159 |
| - |
160 |
| -1. Update the Git submodule |
161 |
| -2. `oqs-sys` is now up-to-date when you build again |
162 |
| -3. Add it to `implement_sigs!` macro call in `oqs/src/sig.rs`. |
163 |
| - |
164 |
| -- The structure is a name for the algorithm in CamelCase, and the name of the constant of the algorithm (`OQS_SIG_alg_...`) |
165 |
| - |
166 |
| -4. Add the necessary features to `Cargo.toml` and `oqs-sys/build.rs`. |
167 |
| - |
168 | 148 | ## Limitations and security
|
169 | 149 |
|
170 | 150 | liboqs is designed for prototyping and evaluating quantum-resistant cryptography. Security of proposed quantum-resistant algorithms may rapidly change as research advances, and may ultimately be completely insecure against either classical or quantum computers.
|
@@ -195,4 +175,4 @@ We'd like to make a special acknowledgement to the companies who have dedicated
|
195 | 175 |
|
196 | 176 | 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.
|
197 | 177 |
|
198 |
| -Thom Wiggers was supported by the European Research Council through Starting Grant No. 805031 (EPOQUE). |
| 178 | +Thom Wiggers' contributions before May 2023 were supported by the European Research Council through Starting Grant No. 805031 (EPOQUE). |
0 commit comments