Loading openssl-sys/build/expando.c +4 −0 Original line number Diff line number Diff line Loading @@ -90,3 +90,7 @@ RUST_CONF_OPENSSL_NO_STDIO #ifdef OPENSSL_NO_SM3 RUST_CONF_OPENSSL_NO_SM3 #endif #ifdef OPENSSL_NO_DEPRECATED_3_0 RUST_CONF_OPENSSL_NO_DEPRECATED_3_0 #endif openssl-sys/src/evp.rs +10 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,16 @@ extern "C" { -> c_int; pub fn EVP_DigestUpdate(ctx: *mut EVP_MD_CTX, data: *const c_void, n: size_t) -> c_int; pub fn EVP_DigestFinal_ex(ctx: *mut EVP_MD_CTX, res: *mut u8, n: *mut u32) -> c_int; #[cfg(ossl300)] pub fn EVP_Q_digest( libctx: *mut OSSL_LIB_CTX, name: *const c_char, propq: *const c_char, data: *const c_void, count: size_t, md: *mut c_uchar, size: *mut c_int, ) -> c_int; pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, typ: *const EVP_MD) -> c_int; pub fn EVP_DigestFinal(ctx: *mut EVP_MD_CTX, res: *mut u8, n: *mut u32) -> c_int; #[cfg(ossl111)] Loading openssl-sys/src/sha.rs +118 −55 Original line number Diff line number Diff line use crate::*; use libc::*; use std::ptr; pub type SHA_LONG = c_uint; pub const SHA_LBLOCK: c_int = 16; cfg_if! { if #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] { #[repr(C)] #[derive(Clone)] pub struct SHA_CTX { Loading @@ -22,9 +26,42 @@ extern "C" { pub fn SHA1_Init(c: *mut SHA_CTX) -> c_int; pub fn SHA1_Update(c: *mut SHA_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA1_Final(md: *mut c_uchar, c: *mut SHA_CTX) -> c_int; } } } cfg_if! { if #[cfg(ossl300)] { macro_rules! digest { ($name:ident) => { pub unsafe fn $name(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar { if EVP_Q_digest( ptr::null_mut(), concat!(stringify!($name), "\0").as_ptr() as *const c_char, ptr::null(), d, n, md, ptr::null(), ) != 0 { md } else { ptr::null_mut() } } } } digest!(SHA1); } else { extern "C" { pub fn SHA1(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; } } } cfg_if! { if #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] { #[repr(C)] #[derive(Clone)] pub struct SHA256_CTX { Loading @@ -40,13 +77,27 @@ extern "C" { pub fn SHA224_Init(c: *mut SHA256_CTX) -> c_int; pub fn SHA224_Update(c: *mut SHA256_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA224_Final(md: *mut c_uchar, c: *mut SHA256_CTX) -> c_int; pub fn SHA224(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; pub fn SHA256_Init(c: *mut SHA256_CTX) -> c_int; pub fn SHA256_Update(c: *mut SHA256_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA256_Final(md: *mut c_uchar, c: *mut SHA256_CTX) -> c_int; } } } cfg_if! { if #[cfg(ossl300)] { digest!(SHA224); digest!(SHA256); } else { extern "C" { pub fn SHA224(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; pub fn SHA256(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; } } } cfg_if! { if #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] { pub type SHA_LONG64 = u64; #[repr(C)] Loading @@ -65,9 +116,21 @@ extern "C" { pub fn SHA384_Init(c: *mut SHA512_CTX) -> c_int; pub fn SHA384_Update(c: *mut SHA512_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA384_Final(md: *mut c_uchar, c: *mut SHA512_CTX) -> c_int; pub fn SHA384(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; pub fn SHA512_Init(c: *mut SHA512_CTX) -> c_int; pub fn SHA512_Update(c: *mut SHA512_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA512_Final(md: *mut c_uchar, c: *mut SHA512_CTX) -> c_int; } } } cfg_if! { if #[cfg(ossl300)] { digest!(SHA384); digest!(SHA512); } else { extern "C" { pub fn SHA384(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; pub fn SHA512(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; } } } openssl/src/sha.rs +214 −203 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ //! ``` use libc::c_void; use std::mem; use cfg_if::cfg_if; /// Computes the SHA1 hash of some data. /// Loading Loading @@ -98,6 +99,8 @@ pub fn sha512(data: &[u8]) -> [u8; 64] { } } cfg_if! { if #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] { /// An object which calculates a SHA1 hash of some data. /// /// # Warning Loading Loading @@ -327,6 +330,8 @@ impl Sha512 { } } } } } #[cfg(test)] mod test { Loading @@ -341,6 +346,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_1() { let expected = "a9993e364706816aba3e25717850c26c9cd0d89d"; Loading @@ -351,6 +357,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn cloning_allows_incremental_hashing() { let expected = "a9993e364706816aba3e25717850c26c9cd0d89d"; Loading @@ -373,6 +380,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_224() { let expected = "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7"; Loading @@ -391,6 +399,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_256() { let expected = "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"; Loading @@ -411,6 +420,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_384() { let expected = "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e\ Loading @@ -433,6 +443,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_512() { let expected = "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274\ Loading Loading
openssl-sys/build/expando.c +4 −0 Original line number Diff line number Diff line Loading @@ -90,3 +90,7 @@ RUST_CONF_OPENSSL_NO_STDIO #ifdef OPENSSL_NO_SM3 RUST_CONF_OPENSSL_NO_SM3 #endif #ifdef OPENSSL_NO_DEPRECATED_3_0 RUST_CONF_OPENSSL_NO_DEPRECATED_3_0 #endif
openssl-sys/src/evp.rs +10 −0 Original line number Diff line number Diff line Loading @@ -58,6 +58,16 @@ extern "C" { -> c_int; pub fn EVP_DigestUpdate(ctx: *mut EVP_MD_CTX, data: *const c_void, n: size_t) -> c_int; pub fn EVP_DigestFinal_ex(ctx: *mut EVP_MD_CTX, res: *mut u8, n: *mut u32) -> c_int; #[cfg(ossl300)] pub fn EVP_Q_digest( libctx: *mut OSSL_LIB_CTX, name: *const c_char, propq: *const c_char, data: *const c_void, count: size_t, md: *mut c_uchar, size: *mut c_int, ) -> c_int; pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, typ: *const EVP_MD) -> c_int; pub fn EVP_DigestFinal(ctx: *mut EVP_MD_CTX, res: *mut u8, n: *mut u32) -> c_int; #[cfg(ossl111)] Loading
openssl-sys/src/sha.rs +118 −55 Original line number Diff line number Diff line use crate::*; use libc::*; use std::ptr; pub type SHA_LONG = c_uint; pub const SHA_LBLOCK: c_int = 16; cfg_if! { if #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] { #[repr(C)] #[derive(Clone)] pub struct SHA_CTX { Loading @@ -22,9 +26,42 @@ extern "C" { pub fn SHA1_Init(c: *mut SHA_CTX) -> c_int; pub fn SHA1_Update(c: *mut SHA_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA1_Final(md: *mut c_uchar, c: *mut SHA_CTX) -> c_int; } } } cfg_if! { if #[cfg(ossl300)] { macro_rules! digest { ($name:ident) => { pub unsafe fn $name(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar { if EVP_Q_digest( ptr::null_mut(), concat!(stringify!($name), "\0").as_ptr() as *const c_char, ptr::null(), d, n, md, ptr::null(), ) != 0 { md } else { ptr::null_mut() } } } } digest!(SHA1); } else { extern "C" { pub fn SHA1(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; } } } cfg_if! { if #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] { #[repr(C)] #[derive(Clone)] pub struct SHA256_CTX { Loading @@ -40,13 +77,27 @@ extern "C" { pub fn SHA224_Init(c: *mut SHA256_CTX) -> c_int; pub fn SHA224_Update(c: *mut SHA256_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA224_Final(md: *mut c_uchar, c: *mut SHA256_CTX) -> c_int; pub fn SHA224(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; pub fn SHA256_Init(c: *mut SHA256_CTX) -> c_int; pub fn SHA256_Update(c: *mut SHA256_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA256_Final(md: *mut c_uchar, c: *mut SHA256_CTX) -> c_int; } } } cfg_if! { if #[cfg(ossl300)] { digest!(SHA224); digest!(SHA256); } else { extern "C" { pub fn SHA224(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; pub fn SHA256(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; } } } cfg_if! { if #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] { pub type SHA_LONG64 = u64; #[repr(C)] Loading @@ -65,9 +116,21 @@ extern "C" { pub fn SHA384_Init(c: *mut SHA512_CTX) -> c_int; pub fn SHA384_Update(c: *mut SHA512_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA384_Final(md: *mut c_uchar, c: *mut SHA512_CTX) -> c_int; pub fn SHA384(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; pub fn SHA512_Init(c: *mut SHA512_CTX) -> c_int; pub fn SHA512_Update(c: *mut SHA512_CTX, data: *const c_void, len: size_t) -> c_int; pub fn SHA512_Final(md: *mut c_uchar, c: *mut SHA512_CTX) -> c_int; } } } cfg_if! { if #[cfg(ossl300)] { digest!(SHA384); digest!(SHA512); } else { extern "C" { pub fn SHA384(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; pub fn SHA512(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar; } } }
openssl/src/sha.rs +214 −203 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ //! ``` use libc::c_void; use std::mem; use cfg_if::cfg_if; /// Computes the SHA1 hash of some data. /// Loading Loading @@ -98,6 +99,8 @@ pub fn sha512(data: &[u8]) -> [u8; 64] { } } cfg_if! { if #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] { /// An object which calculates a SHA1 hash of some data. /// /// # Warning Loading Loading @@ -327,6 +330,8 @@ impl Sha512 { } } } } } #[cfg(test)] mod test { Loading @@ -341,6 +346,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_1() { let expected = "a9993e364706816aba3e25717850c26c9cd0d89d"; Loading @@ -351,6 +357,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn cloning_allows_incremental_hashing() { let expected = "a9993e364706816aba3e25717850c26c9cd0d89d"; Loading @@ -373,6 +380,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_224() { let expected = "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7"; Loading @@ -391,6 +399,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_256() { let expected = "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"; Loading @@ -411,6 +420,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_384() { let expected = "cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e\ Loading @@ -433,6 +443,7 @@ mod test { } #[test] #[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] fn struct_512() { let expected = "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274\ Loading