Skip to content

Commit 8bcb4b2

Browse files
authored
Merge pull request #6 from planetf1/initial
2 parents a6f9211 + 6d10f92 commit 8bcb4b2

28 files changed

+218
-86
lines changed

README.md

Lines changed: 18 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,38 @@
11
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2-
# Welcome to the documentation template
2+
# Welcome to the documentation
33

4-
This repository serves as a template for creating documentation for projects. The template utilizes MkDocs (documentation at [mkdocs.org](https://www.mkdocs.org)) and the theme Material for MkDocs (documentation at [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/)). Material adds a number of extra features to MkDocs, and repositories can take advantage of the theme's [Insiders](https://squidfunk.github.io/mkdocs-material/insiders/) capabilities.
5-
6-
[Material for MkDocs]: https://squidfunk.github.io/mkdocs-material/
7-
[Mike]: https://github.com/jimporter/mike
4+
This repository manages the documentation for the pq-code-package project.
85

96
## Prerequisites
107

11-
To test the documents and update the published site, the following tools are needed:
12-
13-
- A Bash shell
14-
- git
15-
- Python 3
16-
- The [Material for Mkdocs] theme.
17-
- The [Mike] MkDocs plugin for publishing versions to gh-pages.
18-
- Not used locally, but referenced in the `mkdocs.yml` file and needed for
19-
deploying the site to gh-pages.
20-
21-
### git
22-
`git` can be installed locally, as described in the [Install Git Guide from GitHub](https://github.com/git-guides/install-git).
23-
24-
### Python 3
25-
`Python 3` can be installed locally, as described in the [Python Getting Started guide](https://www.python.org/about/gettingstarted/).
26-
27-
### Mkdocs
8+
- [Material for MkDocs]: https://squidfunk.github.io/mkdocs-material/
9+
- [Mike]: https://github.com/jimporter/mike
2810

29-
The Mkdocs-related items can be installed locally, as described in the [Material
30-
for Mkdocs] installation instructions. The short, case-specific version of those
31-
instructions follow:
32-
33-
```bash
11+
You can install these requirements via:
12+
```
3413
pip install -r requirements.txt
3514
```
3615

37-
### Verify Setup
16+
## Adding Content
3817

39-
To verify your setup, check that you can run `mkdocs` by running the command `mkdocs --help` to see the help text.
18+
The basic process for adding content to the site is:
4019

41-
## Useful MkDocs Commands
20+
- Create a new markdown file under the `docs` folder
21+
- Add the new file to the table of contents (`nav` section in the `mkdocs.yml` file)
4222

43-
The commands you will usually use with `mkdocs` are:
23+
## Local testing
4424

45-
* `mkdocs serve` - Start the live-reloading docs server.
46-
* `mkdocs build` - Build the documentation site.
47-
* `mkdocs -h` - Print help message and exit.
25+
Build the pages locally for testing using
26+
```
27+
mkdocs serve
28+
```
4829

49-
## Adding Content
30+
## CI/Code
5031

51-
The basic process for adding content to the site is:
32+
Github actions are used to build and publish the site to https://documentation.pqcodepackage.org
5233

53-
- Create a new markdown file under the `docs` folder
54-
- Add the new file to the table of contents (`nav` section in the `mkdocs.yml` file)
34+
**NOTE** At this time there is NO PR verification, so please test locally to avoid a broken site.
5535

56-
If you are using this as a template for creating your own documentation, please see [the instructions for customization](./docs/index.md).
5736

5837
## Repository layout
5938

docs/contributing/asking-a-question.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,21 @@
1111
## Chat
1212
[PQCA's Discord server](https://discord.com/invite/xyVnwzfg5R) is the place to go for real-time chat about everything from quick help to involved discussions.
1313

14-
For general pq-code-package discussions, join the Discord server and visit #pqca-code-package.
14+
For general pq-code-package discussions, join the Discord server and visit the channels in the **PQ Code Package** section, for example:
15+
16+
- pqcp-general : general discussions
17+
- pqcp-tsc : Technical steering committee
18+
19+
Other channels will be added as individual projects opt to use discord to continue async discussions.
20+
21+
## Github discussions
22+
23+
[Discussions on pq-code-package](https://github.com/orgs/pq-code-package/discussions) can also be used for discussions that aren't appropriate to track in issues
1524

1625
## Mailing Lists
1726
The pq-code-package mailing lists are hosted by the pqca Foundation: https://pqca.org .
1827

28+
Currently there is one specific mailing list **pq-code-package-tsc** .
29+
30+
If the lists are used extensively, additional lists can be added,
31+

docs/contributing/charter.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/contributing/code-of-conduct.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/contributing/reporting-a-bug.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
22
# Reporting a Bug
33

4-
To report a bug, submit an issue in our public issue trackers on Github.
4+
To report a bug, submit an issue via github, directly against the appropriate [repository](repositories.md
5+
6+
If the issue is security related, please follow the steps in [reporting a security issue](../security/reporting-a-security-issue.md) instead.
57

68
When reporting an issue, please provide as much detail as possible about how to reproduce it. If possible, explain how to reproduce the issue. Details are very helpful. Please include the following information:
79

8-
* Operating system and version (if Mac, include the processor)
9-
* Project version
10+
* Operating system and version
11+
* Architecture (ie amd64, arm64 etc)
12+
* Code version
1013
* Environment details (virtual, physical, etc.)
1114
* Steps to reproduce the issue
1215
* Actual results

docs/contributing/reporting-a-security-issue.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/contributing/repositories.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
| Repository | tags | Purpose |
2+
| --- | --- | --- |
3+
| [`.github` :material-github:](https://github.com/pq-code-package/.github){ target=gh } | None | PQCP GitHub organization profile |
4+
| [`documentation` :material-github:](https://github.com/pq-code-package/documentation){ target=gh } | [OrderedDict({'name': 'documentation'}), OrderedDict({'name': 'website'})] | Project documentation built using mkdocs |
5+
| [`mlkem-c-aarch64` :material-github:](https://github.com/pq-code-package/mlkem-c-aarch64){ target=gh } | None | ML-KEM implementation optimized for aarch64 |
6+
| [`mlkem-c-embedded` :material-github:](https://github.com/pq-code-package/mlkem-c-embedded){ target=gh } | None | MLKEM implementation optimized for embedded microcontrollers |
7+
| [`mlkem-c-generic` :material-github:](https://github.com/pq-code-package/mlkem-c-generic){ target=gh } | None | ML-KEM generic implementation in C from PQclean |
8+
| [`mlkem-libjade` :material-github:](https://github.com/pq-code-package/mlkem-libjade){ target=gh } | None | ML-KEM implementation in libjade with high assurance |
9+
| [`mlkem-rust-libcrux` :material-github:](https://github.com/pq-code-package/mlkem-rust-libcrux){ target=gh } | None | portable ML-KEM implementation with some optimizations for AVX2. Full AVX2 support will be added over the coming months. The code is formally verified for panic freedom, correctness, and secret independence in F* using the hax toolchain. |
10+
| [`pq-code-package-hackathon` :material-github:](https://github.com/pq-code-package/pq-code-package-hackathon){ target=gh } | [OrderedDict({'name': 'documentation'}), OrderedDict({'name': 'hackathon'}), OrderedDict({'name': 'website'})] | Hackathon planning and documentation |
11+
| [`template-code` :material-github:](https://github.com/pq-code-package/template-code){ target=gh } | None | Template for creating code repositories, with basic file setup included |
12+
| [`tsc` :material-github:](https://github.com/pq-code-package/tsc){ target=gh } | None | PQ Code Project Technical Steering Committee resources |
13+
14+
15+
**NOTE**: The above segment is created by the `scripts/catalog_repo.pl` script.

docs/contributing/tsc.md

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/faqs.md

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,11 @@
11
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2-
# Frequently Asked Questions
3-
4-
## Topic 1
5-
6-
### Question 1 for Topic 1
72

8-
Answer
9-
10-
### Question 2 for Topic 1
11-
12-
Answer
3+
# Frequently Asked Questions
134

14-
## Topic 2
155

16-
### Question 1 for Topic 2
176

18-
Answer
7+
## What is this section of the documentation for?
198

20-
### Question 2 for Topic 2
9+
This area will contain common FAQs in future
2110

22-
Answer
2311

docs/glossary.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2-
**term**
32

4-
: definition
3+
**glossary**
4+
5+
: A list of definitions of terms used in this documentation.
56

6-
**term**
77

8-
: definition

docs/governance/charter.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
3+
The charter under which pq-code-package is managed can be found in the TSC repository
4+
5+
* Read [pq-code-package charter](https://pq-code-package.github.io/tsc/charter/charter-2024-01-29.pdf)

docs/governance/code-of-conduct.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
3+
Whilst the community is organizing, we haven't yet formally adopted a specific code of conduct.
4+
5+
The working assumption is that we follow the standard Linux Foundation code of conduct
6+
7+
* [Linux Foundation COC](https://docs.linuxfoundation.org/lfx/mentorship/mentor-guide/code-of-conduct)

docs/governance/dco.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
The DCO is a per-commit sign-off made by a contributor stating that they agree to the terms published at https://developercertificate.org/ for that particular contribution.
2+
3+
* [Read more](https://wiki.linuxfoundation.org/dco)

docs/governance/tsc.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
3+
The Technical Steering Committee (TSC) is the leadership of the
4+
pq-code-package project. It's role is to:
5+
6+
- Set the overall strategy of the project ie across all our algorithm
7+
implementations & supporting subprojects
8+
- Liase with the PQCA TAC providing feedback and raising issues and concerns
9+
- resolve any issues within the project community
10+
11+
## Members
12+
13+
The initial TSC was created based on the intial contributors during the project inception.
14+
15+
Subsequent members may be voted onto the TSC, the process for doing so will be clarified at a later stage.
16+
17+
## Meetings
18+
19+
Meetings are open to everyone, but only TSC members may vote.
20+
21+
Minutes and recordings will generally be made available. If you are concerned about recording or minutes this may be noted, and recording/minuting then suspended for the appropriate discussion.
22+
23+
* [Link to agenda and minutes](https://github.com/pq-code-package/tsc/blob/main/meetings/index.md)
24+
25+
* [PQCA calendar](https://pqca.org/calendar/) incorporates all scheduled TSC meetings
26+
- note that times are currently displayed in US Central time
27+
28+
## Issue Tracking
29+
30+
The [tsc](https://github.com/pq-code-package/tsc/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) is used to track discussions and actions at the TSC.

docs/implementations/index.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,16 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
3+
The PQ Code Package offers a variety of different implementations of ML-KEM.
4+
5+
These vary in certain characteristics in terms of:
6+
7+
* Code Audits
8+
* Formal verification
9+
* Platform specific optimizations (memory, cpu, ...)
10+
* Implementation Language
11+
12+
Additionally as sub-projects onboard to pq-code-package they will go through a variety of stages before being ready to use
13+
14+
More guidance about how to choose an implementation will be added in future.
15+
16+
For now go to the [list of repositories](../contributing/repositories.md) & view the other pages in this section
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
ML-KEM implementation optimized for aarch64
3+
4+
??? not-started "NO implementation code as of 2024-05-09"
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
MLKEM-C-EMBEDDED is a collection of MLKEM implementations optimized for embedded microcontrollers.
3+
4+
* [Detailed information](https://github.com/pq-code-package/mlkem-c-embedded#)
Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
3+
ML-KEM generic implementation in C from PQclean
4+
5+
??? not-started "NO implementation code as of 2024-05-09"

docs/implementations/mlkem-libjade.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
The code provided in this repository comes from the libjade cryptographic library. See https://formosa-crypto.org for more information.
3+
4+
??? not-started "NO implementation code as of 2024-05-09"
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
portable ML-KEM implementation with some optimizations for AVX2. Full AVX2 support will be added over the coming months. The code is formally verified for panic freedom, correctness, and secret independence in F* using the hax toolchain.
3+
4+
??? not-started "NO implementation code as of 2024-05-09"

docs/index.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@
33

44
Welcome to the pq-code-package documentation.
55

6-
In this version, only the **Contributing** section has been
7-
customized.
6+
Please select one of the section using the nav-bar at the top, or top-left.
87

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
22
# Choosing an ML-KEM implementation
33

4-
The implementations in this repository vary in terms of:
5-
- Implementation Language
6-
- Auditing
7-
- Formal Verification
4+
The PQ Code Package offers a variety of different implementations of ML-KEM.
5+
6+
These vary in certain characteristics in terms of:
7+
8+
* Code Audits
9+
* Formal verification
10+
* Platform specific optimizations (memory, cpu, ...)
11+
* Implementation Language
12+
13+
Additionally as sub-projects onboard to pq-code-package they will go through a variety of stages before being ready to use
14+
15+
More guidance about how to choose an implementation will be added in future.
16+
17+
For now go to the [list of repositories](../contributing/repositories.md) & view the other pages in this section

docs/overview/mlkem.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,12 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
3+
ML-KEM is an **M** odule **L** attice implementation of a **K** ey **E** xchange **M** echanism as
4+
specified in [FIPS 203 (draft)](https://csrc.nist.gov/pubs/fips/203/ipd).
5+
6+
This standard also specifies three parameter sets:
7+
8+
- ML-KEM-512
9+
- ML-KEM-768
10+
- ML-KEM-1024
11+
12+
ML-KEM is based on the original CRYSTALS-Kyber KEM and is IND-CCA2 secure.

docs/overview/pqca.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
_The alliance seeks to address cryptographic security challenges posed by quantum computing by producing high-assurance software implementations of standardized algorithms and supporting the continued development and standardization of new post-quantum algorithms with software for evaluation and prototyping._
3+
4+
- https://pqca.org/
5+
6+
The pq-code-package is a project under the PQCA

docs/overview/purpose.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,13 @@
1-
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
The PQ Code Package project is a new open source project that aims to build high-assurance software implementations of standards-track post-quantum cryptography algorithms. The PQCP is a project within the [Linux Foundation](https://linuxfoundation.org/) as part of the [Post-Quantum Cryptography Alliance](https://pqca.org/).
3+
4+
Our initial focus in the first phase of the project will be on the [Module-Lattice-Based Key Encapsulation Mechanism (ML-KEM) algorithm](https://csrc.nist.gov/pubs/fips/203/ipd). As the project grows, we intend to also produce implementations for [ML-DSA](https://csrc.nist.gov/pubs/fips/204/ipd) and [SLH-DSA](https://csrc.nist.gov/pubs/fips/205/ipd), as well as other standards-track post-quantum algorithms.
5+
6+
We aim for implementations produced by the project to have assurances given either as a result of external audits or as a result of formal verification methods (or both).
7+
8+
We have interest from early participants to create or build on existing implementations for the following algorithms and platforms, and hope to expand this list as the project progresses:
9+
10+
- a platform-independent implementation of ML-KEM in C
11+
- an AVX2-optimized assembly implementation of ML-KEM
12+
- a Rust implementation of ML-KEM
13+
- an aarch64-optimized implementation of ML-KEM
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<!-- SPDX-License-Identifier: CC-BY-4.0 -->
2+
3+
Guidance on reporting security concerns will be added soon.
4+
5+
For now, please contact one of the project maintainers directly if it's a security concern that's not yet appropriate to make public.

0 commit comments

Comments
 (0)