-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #437 from pq-code-package/update-docs
Update documentation in preparation of the alpha release
- Loading branch information
Showing
16 changed files
with
243 additions
and
165 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,38 +1,33 @@ | ||
--- | ||
name: Bug report | ||
about: Create a report to help us improve | ||
title: '' | ||
labels: bug | ||
assignees: '' | ||
|
||
--- | ||
|
||
|
||
<!-- | ||
Security reports | ||
DO NOT report security issues through Github issues - instead use Github's [private vulnerability reporting](https://github.com/pq-code-package/mlkem-native/security). | ||
--> | ||
|
||
|
||
**Describe the bug** | ||
A clear and concise description of what the bug is. | ||
|
||
**To Reproduce** | ||
Steps to reproduce the behavior: | ||
1. Go to '...' | ||
2. Click on '....' | ||
3. Scroll down to '....' | ||
4. See error | ||
**Platform**: e.g., x86_64 Linux | ||
|
||
**Expected behavior** | ||
A clear and concise description of what you expected to happen. | ||
**Compiler**: e.g., gcc 13.2.0 (installed through nix) | ||
|
||
**Screenshots** | ||
If applicable, add screenshots to help explain your problem. | ||
**How to reproduce** | ||
Steps to reproduce the behavior: | ||
``` | ||
**Desktop (please complete the following information):** | ||
- OS: [e.g. iOS] | ||
- Browser [e.g. chrome, safari] | ||
- Version [e.g. 22] | ||
``` | ||
|
||
**Smartphone (please complete the following information):** | ||
- Device: [e.g. iPhone6] | ||
- OS: [e.g. iOS8.1] | ||
- Browser [e.g. stock browser, safari] | ||
- Version [e.g. 22] | ||
**Expected behavior** | ||
A clear and concise description of what you expected to happen. | ||
|
||
**Additional context** | ||
Add any other context about the problem here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,31 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: '' | ||
labels: enhancement | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] | ||
**Platform**: | ||
Which platform does this concern? | ||
- [ ] platform independent | ||
- [ ] aarch64 | ||
- [ ] x86_64 | ||
- [ ] rv64 | ||
- [ ] other | ||
|
||
**Issue category**: | ||
|
||
Which part(s) of mlkem-native does this issue concern: | ||
|
||
- [ ] core crypto: ML-KEM | ||
- [ ] core crypto: FIPS202 | ||
- [ ] documentation | ||
- [ ] integration | ||
- [ ] CBMC | ||
- [ ] CI | ||
- [ ] Testing | ||
|
||
**Describe the solution you'd like** | ||
A clear and concise description of what you want to happen. | ||
|
||
**Describe alternatives you've considered** | ||
A clear and concise description of any alternative solutions or features you've considered. | ||
|
||
**Additional context** | ||
Add any other context or screenshots about the feature request here. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,21 @@ | ||
[//]: # (SPDX-License-Identifier: CC-BY-4.0) | ||
<!-- Please give a brief explanation of the purpose of this pull request. --> | ||
<!-- | ||
Security reports | ||
<!-- Does this PR resolve any issue? If so, please reference it using automatic-closing keywords like "Fixes #123." --> | ||
DO NOT submit pull requests related to security issues directly - instead use Github's [private vulnerability reporting](https://github.com/pq-code-package/mlkem-native/security). | ||
--> | ||
|
||
<!-- Any PR adding a new feature is expected to contain a test; the test should be part of CI testing, preferably within the ".github/workflows" directory tree. Please add an explanation to the PR if/when (why) this cannot be done. --> | ||
**Summary**: | ||
Provide a brief summary of your changes. | ||
|
||
<!-- Once your pull request is ready for review and passing continuous integration tests, please convert from a draft PR to a normal PR, and request a review. --> | ||
**Steps**: | ||
If your pull request consists of multiple sequential changes, please describe them here: | ||
|
||
**Performed local tests**: | ||
- [ ] `lint` passing | ||
- [ ] `tests all` passing | ||
- [ ] `tests bench` passing | ||
- [ ] `tests cbmc` passing | ||
|
||
**Do you expect this change to impact performance**: Yes/No | ||
|
||
If yes, please provide local benchmarking results. |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
[//]: # (SPDX-License-Identifier: CC-BY-4.0) | ||
|
||
# Building mlkem-native | ||
|
||
### Prerequisites | ||
|
||
To build **mlkem-native**, you need `make` and a C90 compiler. To use the test scripts, you need Python3 with | ||
dependencies as specified in [requirements.txt](requirements.txt). We recommend using a virtual environment, e.g.: | ||
|
||
```bash | ||
python3 -m venv venv | ||
./venv/bin/python3 -m pip install -r requirements.txt | ||
source venv/bin/activate | ||
``` | ||
|
||
### Using `make` | ||
|
||
You can build and test **mlkem-native** as follows: | ||
|
||
```bash | ||
make quickcheck # With native code backend (if available) | ||
make OPT=0 quickcheck # With C backend | ||
``` | ||
|
||
To merely build test and benchmarking components, use the following `make` targets: | ||
|
||
```bash | ||
make mlkem | ||
make bench | ||
make bench_components | ||
make nistkat | ||
make kat | ||
``` | ||
|
||
The resulting binaries can then be found in [test/build](test/build). | ||
|
||
### Using `tests` script | ||
|
||
We recommend compiling and running tests and benchmarks using the [`./scripts/tests`](scripts/tests) script. For | ||
example, | ||
|
||
```bash | ||
./scripts/tests func | ||
``` | ||
|
||
will compile and run functionality tests. For detailed information on how to use the script, please refer to the | ||
`--help` option. | ||
|
||
### Nix setup | ||
|
||
All the development and build dependencies are also specified in [flake.nix](flake.nix). We recommend installing them | ||
using | ||
[nix](https://nixos.org/download/). To execute a bash shell with the development environment specified in | ||
[flake.nix](flake.nix), run | ||
```bash | ||
nix develop --experimental-features 'nix-command flakes' | ||
``` | ||
|
||
### Windows | ||
|
||
You can also build **mlkem-native** on Windows using `nmake` and an MSVC compiler. | ||
|
||
To build and run the tests (only support functional testing for non-opt implementation for now), use the following `nmake` targets: | ||
```powershell | ||
nmke /f .\Makefile.Microsoft_nmake quickcheck | ||
``` |
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
# Last matching pattern has precedence | ||
|
||
* @pq-code-package/pqcp-embedded-maintainers-aarch64 | ||
* @pq-code-package/pqcp-native-maintainers |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,19 @@ | ||
[//]: # (SPDX-License-Identifier: CC-BY-4.0) | ||
[//]: # (TODO Add contributing guide) | ||
|
||
# Contributing | ||
|
||
to be completed | ||
We welcome proposals to improve **mlkem-native**. | ||
In particular, we are interested to hear how you plan to use **mlkem-native** or what should be improved about **mlkem-native** allowing other projects to rely on it. | ||
If you have specific feature requests, please open an issue. | ||
|
||
You can contact the **mlkem-native** team through the [PQCA Discord](https://discord.com/invite/xyVnwzfg5R). | ||
|
||
## Call for contributors | ||
|
||
We are actively seeking contributors who can help us build **mlkem-native**. If you are interested, please contact us, | ||
or volunteer for any of the open issues. | ||
|
||
## Call for potential consumers | ||
|
||
If you are a potential consumer of **mlkem-native**, please reach out: We're interested in hearing the way you want to | ||
use **mlkem-native**. If you have specific feature requests, please open an issue. |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Arm Cortex-A76 (Raspberry Pi 5) benchmarks
ML-KEM-512 keypair
29175
cycles29175
cycles1
ML-KEM-512 encaps
35851
cycles35852
cycles1.00
ML-KEM-512 decaps
46654
cycles46655
cycles1.00
ML-KEM-768 keypair
49175
cycles49173
cycles1.00
ML-KEM-768 encaps
55842
cycles55842
cycles1
ML-KEM-768 decaps
71008
cycles71009
cycles1.00
ML-KEM-1024 keypair
72213
cycles72211
cycles1.00
ML-KEM-1024 encaps
81522
cycles81518
cycles1.00
ML-KEM-1024 decaps
102032
cycles102031
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intel Xeon 4th gen (c7i)
ML-KEM-512 keypair
13826
cycles13867
cycles1.00
ML-KEM-512 encaps
18206
cycles18209
cycles1.00
ML-KEM-512 decaps
24136
cycles24114
cycles1.00
ML-KEM-768 keypair
22449
cycles22529
cycles1.00
ML-KEM-768 encaps
24530
cycles24606
cycles1.00
ML-KEM-768 decaps
32562
cycles32992
cycles0.99
ML-KEM-1024 keypair
32068
cycles32044
cycles1.00
ML-KEM-1024 encaps
35768
cycles35669
cycles1.00
ML-KEM-1024 decaps
47196
cycles47172
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AMD EPYC 3rd gen (c6a)
ML-KEM-512 keypair
18105
cycles18125
cycles1.00
ML-KEM-512 encaps
23049
cycles23108
cycles1.00
ML-KEM-512 decaps
30365
cycles30437
cycles1.00
ML-KEM-768 keypair
31040
cycles31062
cycles1.00
ML-KEM-768 encaps
33992
cycles33988
cycles1.00
ML-KEM-768 decaps
44795
cycles44793
cycles1.00
ML-KEM-1024 keypair
44475
cycles44464
cycles1.00
ML-KEM-1024 encaps
49934
cycles49925
cycles1.00
ML-KEM-1024 decaps
64410
cycles64360
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intel Xeon 3rd gen (c6i)
ML-KEM-512 keypair
20333
cycles20406
cycles1.00
ML-KEM-512 encaps
27122
cycles27162
cycles1.00
ML-KEM-512 decaps
36246
cycles36252
cycles1.00
ML-KEM-768 keypair
34874
cycles34879
cycles1.00
ML-KEM-768 encaps
38228
cycles38211
cycles1.00
ML-KEM-768 decaps
51442
cycles51431
cycles1.00
ML-KEM-1024 keypair
48095
cycles47922
cycles1.00
ML-KEM-1024 encaps
54307
cycles54120
cycles1.00
ML-KEM-1024 decaps
72272
cycles72069
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intel Xeon 4th gen (c7i) (no-opt)
ML-KEM-512 keypair
36274
cycles36267
cycles1.00
ML-KEM-512 encaps
46425
cycles46461
cycles1.00
ML-KEM-512 decaps
61794
cycles61881
cycles1.00
ML-KEM-768 keypair
59022
cycles58961
cycles1.00
ML-KEM-768 encaps
73136
cycles73061
cycles1.00
ML-KEM-768 decaps
91674
cycles91662
cycles1.00
ML-KEM-1024 keypair
88422
cycles88471
cycles1.00
ML-KEM-1024 encaps
109490
cycles109327
cycles1.00
ML-KEM-1024 decaps
133800
cycles133709
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AMD EPYC 3rd gen (c6a) (no-opt)
ML-KEM-512 keypair
52283
cycles52311
cycles1.00
ML-KEM-512 encaps
67755
cycles67788
cycles1.00
ML-KEM-512 decaps
92689
cycles92638
cycles1.00
ML-KEM-768 keypair
84632
cycles84658
cycles1.00
ML-KEM-768 encaps
104807
cycles104851
cycles1.00
ML-KEM-768 decaps
137726
cycles137784
cycles1.00
ML-KEM-1024 keypair
125447
cycles125478
cycles1.00
ML-KEM-1024 encaps
149691
cycles150020
cycles1.00
ML-KEM-1024 decaps
192820
cycles192389
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Intel Xeon 3rd gen (c6i) (no-opt)
ML-KEM-512 keypair
56794
cycles56697
cycles1.00
ML-KEM-512 encaps
71874
cycles71820
cycles1.00
ML-KEM-512 decaps
96458
cycles96361
cycles1.00
ML-KEM-768 keypair
91852
cycles91823
cycles1.00
ML-KEM-768 encaps
111509
cycles111402
cycles1.00
ML-KEM-768 decaps
144573
cycles144449
cycles1.00
ML-KEM-1024 keypair
134776
cycles134612
cycles1.00
ML-KEM-1024 encaps
160403
cycles160084
cycles1.00
ML-KEM-1024 decaps
201536
cycles201685
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Graviton2
ML-KEM-512 keypair
29225
cycles29176
cycles1.00
ML-KEM-512 encaps
35945
cycles35859
cycles1.00
ML-KEM-512 decaps
46769
cycles46664
cycles1.00
ML-KEM-768 keypair
49356
cycles49198
cycles1.00
ML-KEM-768 encaps
56083
cycles55870
cycles1.00
ML-KEM-768 decaps
71255
cycles70985
cycles1.00
ML-KEM-1024 keypair
72196
cycles72174
cycles1.00
ML-KEM-1024 encaps
81636
cycles81621
cycles1.00
ML-KEM-1024 decaps
102095
cycles102067
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AMD EPYC 4th gen (c7a)
ML-KEM-512 keypair
15095
cycles15094
cycles1.00
ML-KEM-512 encaps
19759
cycles19754
cycles1.00
ML-KEM-512 decaps
26399
cycles26388
cycles1.00
ML-KEM-768 keypair
25602
cycles25558
cycles1.00
ML-KEM-768 encaps
28206
cycles28162
cycles1.00
ML-KEM-768 decaps
38237
cycles37988
cycles1.01
ML-KEM-1024 keypair
34906
cycles35553
cycles0.98
ML-KEM-1024 encaps
39691
cycles40680
cycles0.98
ML-KEM-1024 decaps
53117
cycles54473
cycles0.98
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Graviton3
ML-KEM-512 keypair
19030
cycles19031
cycles1.00
ML-KEM-512 encaps
23843
cycles23843
cycles1
ML-KEM-512 decaps
31229
cycles31230
cycles1.00
ML-KEM-768 keypair
32329
cycles32332
cycles1.00
ML-KEM-768 encaps
36085
cycles36086
cycles1.00
ML-KEM-768 decaps
46487
cycles46491
cycles1.00
ML-KEM-1024 keypair
46970
cycles46964
cycles1.00
ML-KEM-1024 encaps
53087
cycles53086
cycles1.00
ML-KEM-1024 decaps
67406
cycles67401
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Graviton4
ML-KEM-512 keypair
18268
cycles18265
cycles1.00
ML-KEM-512 encaps
22479
cycles22477
cycles1.00
ML-KEM-512 decaps
29399
cycles29402
cycles1.00
ML-KEM-768 keypair
30772
cycles30772
cycles1
ML-KEM-768 encaps
34059
cycles34062
cycles1.00
ML-KEM-768 decaps
43911
cycles43907
cycles1.00
ML-KEM-1024 keypair
44486
cycles44486
cycles1
ML-KEM-1024 encaps
50209
cycles50207
cycles1.00
ML-KEM-1024 decaps
63641
cycles63631
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Arm Cortex-A72 (Raspberry Pi 4) benchmarks
ML-KEM-512 keypair
51456
cycles51527
cycles1.00
ML-KEM-512 encaps
59714
cycles58605
cycles1.02
ML-KEM-512 decaps
75476
cycles75388
cycles1.00
ML-KEM-768 keypair
89405
cycles87796
cycles1.02
ML-KEM-768 encaps
97492
cycles96620
cycles1.01
ML-KEM-768 decaps
119923
cycles120278
cycles1.00
ML-KEM-1024 keypair
132345
cycles131709
cycles1.00
ML-KEM-1024 encaps
146025
cycles145878
cycles1.00
ML-KEM-1024 decaps
178032
cycles177156
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AMD EPYC 4th gen (c7a) (no-opt)
ML-KEM-512 keypair
45972
cycles45725
cycles1.01
ML-KEM-512 encaps
58802
cycles58775
cycles1.00
ML-KEM-512 decaps
80027
cycles80010
cycles1.00
ML-KEM-768 keypair
74656
cycles74608
cycles1.00
ML-KEM-768 encaps
91513
cycles91434
cycles1.00
ML-KEM-768 decaps
120193
cycles120124
cycles1.00
ML-KEM-1024 keypair
110252
cycles109836
cycles1.00
ML-KEM-1024 encaps
131041
cycles130932
cycles1.00
ML-KEM-1024 decaps
167695
cycles167588
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Graviton4 (no-opt)
ML-KEM-512 keypair
41915
cycles41906
cycles1.00
ML-KEM-512 encaps
51762
cycles51762
cycles1
ML-KEM-512 decaps
69323
cycles69324
cycles1.00
ML-KEM-768 keypair
69072
cycles69051
cycles1.00
ML-KEM-768 encaps
82685
cycles82688
cycles1.00
ML-KEM-768 decaps
106477
cycles106478
cycles1.00
ML-KEM-1024 keypair
102447
cycles102458
cycles1.00
ML-KEM-1024 encaps
120644
cycles120645
cycles1.00
ML-KEM-1024 decaps
150597
cycles150669
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Graviton3 (no-opt)
ML-KEM-512 keypair
45370
cycles45370
cycles1
ML-KEM-512 encaps
56178
cycles56173
cycles1.00
ML-KEM-512 decaps
75101
cycles75096
cycles1.00
ML-KEM-768 keypair
74858
cycles74879
cycles1.00
ML-KEM-768 encaps
89188
cycles89204
cycles1.00
ML-KEM-768 decaps
114545
cycles114561
cycles1.00
ML-KEM-1024 keypair
111077
cycles111083
cycles1.00
ML-KEM-1024 encaps
129993
cycles130004
cycles1.00
ML-KEM-1024 decaps
162569
cycles162579
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Graviton2 (no-opt)
ML-KEM-512 keypair
71103
cycles71154
cycles1.00
ML-KEM-512 encaps
87949
cycles87865
cycles1.00
ML-KEM-512 decaps
118383
cycles118174
cycles1.00
ML-KEM-768 keypair
117372
cycles117561
cycles1.00
ML-KEM-768 encaps
139304
cycles139340
cycles1.00
ML-KEM-768 decaps
180129
cycles180062
cycles1.00
ML-KEM-1024 keypair
174769
cycles175399
cycles1.00
ML-KEM-1024 encaps
202279
cycles202947
cycles1.00
ML-KEM-1024 decaps
254196
cycles254234
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.
112dbd3
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Arm Cortex-A55 (Snapdragon 888) benchmarks
ML-KEM-512 keypair
58013
cycles58031
cycles1.00
ML-KEM-512 encaps
65692
cycles65732
cycles1.00
ML-KEM-512 decaps
84336
cycles84332
cycles1.00
ML-KEM-768 keypair
98268
cycles98618
cycles1.00
ML-KEM-768 encaps
110020
cycles110516
cycles1.00
ML-KEM-768 decaps
136916
cycles137582
cycles1.00
ML-KEM-1024 keypair
148986
cycles150000
cycles0.99
ML-KEM-1024 encaps
166299
cycles166971
cycles1.00
ML-KEM-1024 decaps
202470
cycles203311
cycles1.00
This comment was automatically generated by workflow using github-action-benchmark.