lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README | LICENSE

lib.rs (4603B)


      1 #![cfg_attr(not(feature = "std"), no_std)]
      2 #![forbid(unsafe_code)]
      3 
      4 extern crate alloc;
      5 
      6 pub mod auth;
      7 pub mod error;
      8 pub mod message;
      9 pub mod official_ratchet;
     10 pub mod ratchet;
     11 pub mod short_link;
     12 
     13 pub mod prelude {
     14     pub use crate::auth::{
     15         RadrootsSimplexSmpCommandAuthorization, RadrootsSimplexSmpEd25519Keypair,
     16         RadrootsSimplexSmpQueueAuthorizationMaterial, RadrootsSimplexSmpQueueAuthorizationScope,
     17         decode_ed25519_public_key_x509, decode_x25519_public_key_x509,
     18         encode_ed25519_public_key_x509, encode_x25519_public_key_x509, verify_signature,
     19     };
     20     pub use crate::error::RadrootsSimplexSmpCryptoError;
     21     pub use crate::message::{
     22         RADROOTS_SIMPLEX_SMP_NONCE_LENGTH, RADROOTS_SIMPLEX_SMP_SHARED_SECRET_LENGTH,
     23         RadrootsSimplexSmpSecretBoxChainKey, RadrootsSimplexSmpX25519Keypair,
     24         advance_secretbox_chain, decrypt_no_pad, decrypt_padded, derive_shared_secret,
     25         encrypt_no_pad, encrypt_padded, init_secretbox_chain, random_nonce,
     26     };
     27     pub use crate::official_ratchet::{
     28         RADROOTS_SIMPLEX_OFFICIAL_AES_AUTH_TAG_LENGTH, RADROOTS_SIMPLEX_OFFICIAL_AES_IV_LENGTH,
     29         RADROOTS_SIMPLEX_OFFICIAL_AES_KEY_LENGTH, RADROOTS_SIMPLEX_OFFICIAL_CHAIN_RATCHET_INFO,
     30         RADROOTS_SIMPLEX_OFFICIAL_E2E_CURRENT_VERSION, RADROOTS_SIMPLEX_OFFICIAL_E2E_KDF_VERSION,
     31         RADROOTS_SIMPLEX_OFFICIAL_E2E_PQ_VERSION,
     32         RADROOTS_SIMPLEX_OFFICIAL_PQ_RATCHET_HEADER_LENGTH,
     33         RADROOTS_SIMPLEX_OFFICIAL_RATCHET_HEADER_LENGTH,
     34         RADROOTS_SIMPLEX_OFFICIAL_ROOT_RATCHET_INFO,
     35         RADROOTS_SIMPLEX_OFFICIAL_SNTRUP761_CIPHERTEXT_LENGTH,
     36         RADROOTS_SIMPLEX_OFFICIAL_SNTRUP761_PRIVATE_KEY_LENGTH,
     37         RADROOTS_SIMPLEX_OFFICIAL_SNTRUP761_PUBLIC_KEY_LENGTH,
     38         RADROOTS_SIMPLEX_OFFICIAL_SNTRUP761_SHARED_SECRET_LENGTH,
     39         RADROOTS_SIMPLEX_OFFICIAL_X3DH_INFO, RADROOTS_SIMPLEX_OFFICIAL_X448_KEY_LENGTH,
     40         RADROOTS_SIMPLEX_OFFICIAL_X448_SHARED_SECRET_LENGTH, RadrootsSimplexOfficialAesGcmPayload,
     41         RadrootsSimplexOfficialChainKdfOutput, RadrootsSimplexOfficialEncryptedHeader,
     42         RadrootsSimplexOfficialEncryptedMessage, RadrootsSimplexOfficialMsgHeader,
     43         RadrootsSimplexOfficialRootKdfOutput, RadrootsSimplexOfficialSntrup761Keypair,
     44         RadrootsSimplexOfficialX3dhInit, RadrootsSimplexOfficialX3dhParams,
     45         RadrootsSimplexOfficialX3dhReceiverPqInit, RadrootsSimplexOfficialX3dhSenderPqInit,
     46         RadrootsSimplexOfficialX448Keypair, decapsulate_official_sntrup761,
     47         decode_official_encrypted_header, decode_official_encrypted_message,
     48         decode_official_msg_header, decode_official_x3dh_params_uri,
     49         decode_official_x448_public_key_der, derive_official_x448_shared_secret,
     50         encapsulate_official_sntrup761, encode_official_encrypted_header,
     51         encode_official_encrypted_message, encode_official_msg_header,
     52         encode_official_x3dh_params_uri, encode_official_x448_public_key_der,
     53         generate_official_sntrup761_keypair, generate_official_x448_keypair,
     54         official_aes_gcm_decrypt_padded, official_aes_gcm_encrypt_padded, official_chain_kdf,
     55         official_encoded_encrypted_header_len, official_encoded_encrypted_message_len,
     56         official_full_header_len, official_ratchet_header_len, official_root_kdf,
     57         official_sntrup761_keypair_from_seed, official_x3dh_receiver_init,
     58         official_x3dh_receiver_init_accepting_pq, official_x3dh_sender_init,
     59         official_x3dh_sender_init_accepting_pq, official_x448_keypair_from_seed,
     60     };
     61     pub use crate::ratchet::{
     62         RadrootsSimplexSmpRatchetHeader, RadrootsSimplexSmpRatchetRole,
     63         RadrootsSimplexSmpRatchetState, RadrootsSimplexSmpSkippedMessageKey,
     64     };
     65     pub use crate::short_link::{
     66         RADROOTS_SIMPLEX_SMP_SHORT_LINK_CONTACT_INFO,
     67         RADROOTS_SIMPLEX_SMP_SHORT_LINK_CONTACT_KDF_OUTPUT_LENGTH,
     68         RADROOTS_SIMPLEX_SMP_SHORT_LINK_FIXED_DATA_PADDED_LENGTH,
     69         RADROOTS_SIMPLEX_SMP_SHORT_LINK_ID_LENGTH, RADROOTS_SIMPLEX_SMP_SHORT_LINK_INVITATION_INFO,
     70         RADROOTS_SIMPLEX_SMP_SHORT_LINK_KEY_LENGTH,
     71         RADROOTS_SIMPLEX_SMP_SHORT_LINK_SIGNATURE_LENGTH,
     72         RADROOTS_SIMPLEX_SMP_SHORT_LINK_USER_DATA_PADDED_LENGTH,
     73         RadrootsSimplexSmpContactShortLinkKeyMaterial, RadrootsSimplexSmpVerifiedShortLinkData,
     74         decrypt_short_link_data, decrypt_verify_short_link_data,
     75         derive_contact_short_link_key_material, derive_invitation_short_link_data_key,
     76         encrypt_short_link_data, encrypt_short_link_data_with_nonces, sign_short_link_data,
     77         verify_signed_short_link_data,
     78     };
     79 }