DaGenix / rust-crypto

A (mostly) pure-Rust implementation of various cryptographic algorithms.
Apache License 2.0
1.4k stars 297 forks source link

adding optional dependencies #471

Open lattice0 opened 3 years ago

lattice0 commented 3 years ago

Can I add optional dependencies to I can remove libc dependencies and other things? Will this be welcome?

I'm trying to determinate which algorithms use libc. Looks like it's used on

extern {
    pub fn rust_crypto_util_fixed_time_eq_asm(
            lhsp: *const u8,
            rhsp: *const u8,
            count: libc::size_t) -> u32;
    pub fn rust_crypto_util_secure_memset(
            dst: *mut u8,
            val: libc::uint8_t,
            count: libc::size_t);
}

pub fn secure_memset(dst: &mut [u8], val: u8) {
    unsafe {
        rust_crypto_util_secure_memset(
            dst.as_mut_ptr(),
            val,
            dst.len() as libc::size_t);
    }
}

which are for algorithms dependent on time. Which one?

Looks like serialize is only needed if you use result_str on digest or on pbkdf2

rand is only used on scrypt

time is only used on fortuna.

Well, since these algorithms depend on other crates, can I make these features: pbkdf2, scrypt, fortuna?

I'm trying to get rid of unnecessary dependencies on my project so I'd like for this crate to have no dependencies.

I still need to determinate what src/util_helpers.asm, src/aesni_helpers.asm are used for.

Also, why this lib isn't updated since 2016? Is it because it's too good that everything is ok or because no one maintains it anymore?

newpavlov commented 3 years ago

This crate is unmaintained. See: https://rustsec.org/advisories/RUSTSEC-2016-0005.html