# Kyber-Rust
A Rust wrapper for the Kyber post-quantum key encapsulation mechanism.
## Overview
This crate provides a safe Rust interface to the Kyber algorithm, which is a finalist in the NIST Post-Quantum Cryptography standardization process. Kyber is a key encapsulation mechanism (KEM) that is believed to be secure against attacks by quantum computers.
## Features
- Generate Kyber keypairs
- Encapsulate shared secrets
- Decapsulate shared secrets
- Easy-to-use high-level API
## Installation
Add this to your `Cargo.toml`:
```toml
[dependencies]
kyber-rust = "0.1.0"
```
## Usage
Here's a basic example of how to use the Kyber-Rust library:
```rust
use kyber_rust::{generate_keypair, encapsulate, decapsulate};
fn main() -> Result<(), String> {
// Generate a keypair
let (public_key, secret_key) = generate_keypair()?;
// Encapsulate a shared secret
let (ciphertext, shared_secret_enc) = encapsulate(&public_key)?;
// Decapsulate the shared secret
let shared_secret_dec = decapsulate(&ciphertext, &secret_key)?;
// Verify that the shared secrets match
assert_eq!(shared_secret_enc, shared_secret_dec);
Ok(())
}
```
## Safety
This crate uses `unsafe` Rust to interface with the C implementation of Kyber. While efforts have been made to ensure safety, users should be aware of the potential risks associated with FFI and unsafe code.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Contribution
Contributions are welcome! Please feel free to submit a Pull Request.
## Disclaimer
This implementation is for educational and research purposes only. It has not been audited for production use.