qrc_opensource_rs/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
pub mod qsc {
    pub mod asymmetric {
        pub mod cipher {
            pub mod ecdh {
                pub mod ec25519;
                pub mod ecdh;
                pub mod ecdhbase;
            }
            pub mod kyber {
                pub mod kyber;
                pub mod kyberbase;  
            }
            pub mod mceliece {
                pub mod mceliece;
                pub mod mceliecebase;
            }
            pub mod ntru {
                pub mod ntru;
                pub mod ntrubase;
            }
        }
        pub mod signature {
            pub mod dilithium {
                pub mod dilithium;
                pub mod dilithiumbase;
            }
            pub mod ecdsa {
                pub mod ecdsa;
                pub mod ecdsabase;
            }
            pub mod falcon {
                pub mod falcon;
                pub mod falconbase;
            }
            pub mod sphincsplus {
                pub mod sphincplus;
                pub mod sphincsplusbase;
            }
        }
    }
    pub mod cipher {
        pub mod aes;
        pub mod chacha;
    }
    pub mod common {
        pub mod common;
    }
    pub mod digest {
        pub mod sha2;
        pub mod sha3;
    }
    pub mod drbg {
        pub mod csg;
    }
    pub mod mac {
        pub mod poly1305;
    }
    pub mod numerics {
        pub mod donna128;
    }
    pub mod prng {
        pub mod secrand;
    }
    pub mod provider {
            pub mod rcrng;
            pub mod trng;
            pub mod osrng;
    }
    pub mod tools {
        pub mod intutils;
        pub mod memutils;
        pub mod stringutils;
        pub mod sysutils;
    }
}

pub use qsc::{
    asymmetric::{
        cipher::{
            kyber::kyber::{
                qsc_kyber_generate_keypair, qsc_kyber_encrypt, qsc_kyber_decrypt,
                QSC_KYBER_CIPHERTEXT_SIZE, QSC_KYBER_PRIVATEKEY_SIZE, QSC_KYBER_PUBLICKEY_SIZE, QSC_KYBER_SHAREDSECRET_SIZE, QSC_KYBER_SEED_SIZE,
            },
            mceliece::mceliece::{
                qsc_mceliece_generate_keypair, qsc_mceliece_encrypt, qsc_mceliece_decrypt,
                QSC_MCELIECE_CIPHERTEXT_SIZE, QSC_MCELIECE_PRIVATEKEY_SIZE, QSC_MCELIECE_PUBLICKEY_SIZE, QSC_MCELIECE_SHAREDSECRET_SIZE, QSC_MCELIECE_SEED_SIZE,
            },
        },
        signature::sphincsplus::sphincplus::{
            qsc_sphincsplus_generate_keypair, qsc_sphincsplus_sign, qsc_sphincsplus_verify,
            QSC_SPHINCSPLUS_PRIVATEKEY_SIZE, QSC_SPHINCSPLUS_PUBLICKEY_SIZE, QSC_SPHINCSPLUS_SIGNATURE_SIZE, QRCS_CRYPTO_HASH_SIZE,
        },
    },
    cipher::aes::{
        qsc_aes_initialize, qsc_aes_dispose,
        qsc_aes_cbc_encrypt_block, qsc_aes_cbc_decrypt_block,
        qsc_aes_ctrbe_transform, qsc_aes_ctrle_transform,
        qsc_aes_ecb_encrypt_block, qsc_aes_ecb_decrypt_block,
        qsc_aes_hba256_initialize, qsc_aes_hba256_set_associated, qsc_aes_hba256_transform,
        QSC_AES_BLOCK_SIZE, QSC_HBA_MAXINFO_SIZE, QSC_AES256_KEY_SIZE, QSC_HBA256_MAC_LENGTH,
        QscAesKeyparams, QscAesState, QscAesCipherType, QscAesHba256State, 
    },
    digest::{
        sha2::{
            qsc_hmac256_compute, qsc_hmac512_compute, 
            qsc_sha256_initialize, qsc_sha256_blockupdate, qsc_sha256_finalize,
            qsc_sha512_initialize, qsc_sha512_blockupdate, qsc_sha512_finalize, 
            qsc_hkdf256_extract, qsc_hkdf256_expand,
            qsc_hkdf512_extract, qsc_hkdf512_expand,
            QSC_HMAC_256_MAC, QSC_HMAC_512_MAC, QSC_SHA2_256_HASH, QSC_SHA2_512_HASH, QSC_SHA2_256_RATE, QSC_SHA2_512_RATE,
            QscHmac256State, QscHmac512State,
        },
        sha3::{
            qsc_sha3_compute256, qsc_sha3_compute512, qsc_sha3_initialize, qsc_sha3_update, qsc_sha3_finalize, 
            qsc_shake128_compute, qsc_shake256_compute, qsc_shake512_compute, qsc_shake_initialize, qsc_shake_squeezeblocks,
            qsc_cshake128_compute, qsc_cshake256_compute, qsc_cshake512_compute, qsc_cshake_initialize, qsc_cshake_squeezeblocks,
            qsc_kmac128_compute, qsc_kmac256_compute, qsc_kmac512_compute, qsc_kmac_initialize, qsc_kmac_update, qsc_kmac_finalize,
            qsc_keccak_dispose, 
            QSC_SHA3_256_HASH_SIZE, QSC_SHA3_512_HASH_SIZE, QSC_KECCAK_STATE_SIZE, QSC_KECCAK_STATE_BYTE_SIZE, QSC_KECCAK_SHA3_DOMAIN_ID, QSC_KECCAK_SHAKE_DOMAIN_ID, QSC_KECCAK_KMAC_DOMAIN_ID, QSC_KECCAK_CSHAKE_DOMAIN_ID, QSC_KECCAK_PERMUTATION_ROUNDS,
            QscKeccakState, QscKeccakRate,
        }
    },
    mac::poly1305::{
        qsc_poly1305_compute, qsc_poly1305_initialize, qsc_poly1305_update, qsc_poly1305_finalize, 
        QSC_POLY1305_BLOCK_SIZE,
        QscPoly1305State,
    },
};