Skip to main content

oint_keys/algorithms/encryption/
mod.rs

1//! # Oint-Keys Public Key Encryption:
2//! 
3//! This module contains the type for a public key used for encrypting/decrypting data.
4//! 
5//! ## Implemented
6//! 
7//! - [ ] RSA
8//! - [X] ECIES_ED25519_SHA3
9//! - [X] Kyber1024 (ML-KEM-5) (Post-Quantum)
10
11use libslug::slugcrypt::internals::encryption::ecies::{ECPublicKey,ECSecretKey,ECIESDecrypt,ECIESEncrypt};
12use libslug::slugcrypt::internals::encryption::ml_kem::{MLKEMPublicKey,MLKEMSecretKey,MLKEMSharedSecret,MLKEMCipherText};
13use libslug::slugcrypt::internals::ciphertext::CipherText as EciesCipherText;
14
15pub enum EncryptionAlgorithms {
16    ECIES_ED25519_SHA3,
17    MLKEM,
18}
19
20pub enum EncryptionPublicKey {
21    ECIES_ED25519_SHA3(ECPublicKey),
22    MLKEM_5(MLKEMPublicKey)
23}
24    
25pub enum EncryptionSecretKey {
26    ECIES_ED25519_SHA3(ECSecretKey),
27    MLKEM_5(MLKEMSecretKey)
28}
29
30pub enum SharedSecret {
31    MLKEM_5(MLKEMSharedSecret)
32}
33
34pub enum EncryptionCipherText {
35    ECIES_ED25519_SHA3(EciesCipherText),
36    MLKEM_5(MLKEMCipherText),
37}