Skip to content
Ron Lauren Hombre edited this page Aug 31, 2024 · 7 revisions

Welcome to the KyberKotlin repository

[!WARNING] This wiki is outdated.

Get Started

KyberKotlin is a serious project and special care and attention needs to be given to it just like having your own child. If you want to contribute, be prepared to be a parent! That goes the same way for using it. Users of the library must make sure they update regularly in order to mitigate security-related risks. Your child KyberKotlin needs to learn how to protect itself against bad people hackers.

Recommendations

  • Kotlin 2.0.20+
  • Java 8+
  • Gradle 8.0+

If you're here to use a Kotlin Multiplatform library for ML-KEM(Kyber), here are the steps to install it as a dependency.

After installation, please view the docs in order to get a good grasp of how the KyberKotlin library works. We are confident you don't need to because of the intuitive design of the methods and classes, but if you have doubts, go read it.

All the source code for KyberKotlin is readily available in the repository. You may build it however you want as long as you abide by our Apache v2 License.

Standard vs Master

There are two releasing branches for KyberKotlin; "standard" and "master". These two have different yet similar code bases. They do the same thing, but they do it differently.

Standard

The "standard" branch is best suited to those who want to implement or study NIST FIPS 203 as it works right out of the box.

Master

The "master" branch is best suited for real world use cases as it is faster and better in every way. The downside is that "master" code is harder to read as there are optimization and security fixes added.

Contributing

KyberKotlin may seem like a simple and small library, but it deals with security and no one will use this library if it is vulnerable to malicious attacks. Thus, we need many people who have different ideas, views, and experiences in order to make this library as secure and performant as possible.

As its own repository, KyberKotlin has its own rules regarding contribution. These rules may not be strictly implemented, but its best if everyone abides by them in order to keep the codebase clean and maintainable for the foreseeable future.

Coders are humans. We make mistakes. It's inevitable that all codebases will experience its fair share of security-related problems the bigger it grows and the more sensitive it works. Please follow the guidelines on privately reporting security-related problems in order to speed up its resolution.

If you have a neat idea and think KyberKotlin needs to have it, don't be afraid to create a discussion post.

Supporting the Project

This project is ran by real people who have responsibilities in real life. If you want to show your appreciation, please contact Ron Lauren Hombre on Linkedin.