LICENSE INFORMATION FOR liboqs_mlkem COMPONENT
================================================
This component integrates code from multiple sources with different licenses.
This file documents the licenses that apply to various parts of this component.
PORT LAYER (ESP-IDF Component Wrapper)
=======================================
The following files are part of the ESP-IDF port layer for this component:
- mlkem768.c
- randombytes.c
- CMakeLists.txt
- README.md
- LICENSE.txt
- examples/
- tests/
Copyright (c) [Year] [Your Name/Organization]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use these files except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
liboqs LIBRARY
==============
The following files are from the liboqs library (Open Quantum Safe):
- src/liboqs/src/kem/kem.c
- src/liboqs/src/kem/ml_kem/kem_ml_kem_512.c
- src/liboqs/src/kem/ml_kem/kem_ml_kem_768.c
- src/liboqs/src/kem/kyber/kem_kyber_512.c
- src/liboqs/src/kem/kyber/kem_kyber_768.c
- src/liboqs/src/common/common.c
- include/oqs/*
MIT License
Copyright (c) 2016-2024 The Open Quantum Safe project authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
NOTE: Some files within liboqs may have different licenses. Specifically:
- src/liboqs/src/common/common.c: includes portions which are Apache License v2.0
(licensed under Apache-2.0 AND MIT, allowing use under either license)
For full details, see: https://github.com/open-quantum-safe/liboqs
KYBER REFERENCE IMPLEMENTATION
===============================
The following files are from the CRYSTALS-Kyber reference implementation:
- src/kyber/ref/kem.c
- src/kyber/ref/fips202.c
- src/kyber/ref/symmetric-shake.c
- src/kyber/ref/indcpa.c
- src/kyber/ref/poly.c
- src/kyber/ref/polyvec.c
- src/kyber/ref/ntt.c
- src/kyber/ref/verify.c
- src/kyber/ref/reduce.c
- src/kyber/ref/cbd.c
- src/kyber/ref/*.h
Public Domain (https://creativecommons.org/share-your-work/public-domain/cc0/);
or Apache 2.0 License (https://www.apache.org/licenses/LICENSE-2.0.html).
For Keccak and AES we are using public-domain code from sources and by authors
listed in comments on top of the respective files.
Original authors:
- Joppe Bos
- Léo Ducas
- Eike Kiltz
- Tancrède Lepoint
- Vadim Lyubashevsky
- John Schanck
- Peter Schwabe
- Gregor Seiler
- Damien Stehlé
The Kyber reference implementation may be used under either:
1. Public Domain (CC0) - dedicated to the public domain
2. Apache License 2.0 - same terms as the port layer above
Users may choose either license option.
For full details, see: https://github.com/pq-crystals/kyber
SUMMARY
=======
This component combines:
1. Port layer code (Apache 2.0) - ESP-IDF integration and wrapper
2. liboqs library (MIT License) - unified post-quantum cryptography API
3. Kyber reference implementation (Public Domain OR Apache 2.0) - cryptographic primitives
All licenses are compatible, allowing the combined work to be distributed.
The port layer is licensed under Apache 2.0 to ensure compatibility with ESP-IDF
and the Kyber reference implementation's Apache 2.0 option.