kyber-rust 0.1.0

A Rust wrapper for the Kyber post-quantum key encapsulation mechanism
Documentation
# 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.