192f3ab15Sopenharmony_ciuse super::*; 292f3ab15Sopenharmony_ciuse libc::*; 392f3ab15Sopenharmony_ciuse std::ptr; 492f3ab15Sopenharmony_ci 592f3ab15Sopenharmony_ci#[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] 692f3ab15Sopenharmony_cipub const SHA_LBLOCK: c_int = 16; 792f3ab15Sopenharmony_ci 892f3ab15Sopenharmony_ci#[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] 992f3ab15Sopenharmony_cipub type SHA_LONG = c_uint; 1092f3ab15Sopenharmony_ci 1192f3ab15Sopenharmony_cicfg_if! { 1292f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 1392f3ab15Sopenharmony_ci #[cfg(ossl300)] 1492f3ab15Sopenharmony_ci // Ideally we'd macro define these, but that crashes ctest :( 1592f3ab15Sopenharmony_ci pub unsafe fn SHA1(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar { 1692f3ab15Sopenharmony_ci if EVP_Q_digest( 1792f3ab15Sopenharmony_ci ptr::null_mut(), 1892f3ab15Sopenharmony_ci "SHA1\0".as_ptr() as *const c_char, 1992f3ab15Sopenharmony_ci ptr::null(), 2092f3ab15Sopenharmony_ci d as *const c_void, 2192f3ab15Sopenharmony_ci n, 2292f3ab15Sopenharmony_ci md, 2392f3ab15Sopenharmony_ci ptr::null_mut(), 2492f3ab15Sopenharmony_ci ) != 0 2592f3ab15Sopenharmony_ci { 2692f3ab15Sopenharmony_ci md 2792f3ab15Sopenharmony_ci } else { 2892f3ab15Sopenharmony_ci ptr::null_mut() 2992f3ab15Sopenharmony_ci } 3092f3ab15Sopenharmony_ci } 3192f3ab15Sopenharmony_ci 3292f3ab15Sopenharmony_ci pub unsafe fn SHA224(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar { 3392f3ab15Sopenharmony_ci if EVP_Q_digest( 3492f3ab15Sopenharmony_ci ptr::null_mut(), 3592f3ab15Sopenharmony_ci "SHA224\0".as_ptr() as *const c_char, 3692f3ab15Sopenharmony_ci ptr::null(), 3792f3ab15Sopenharmony_ci d as *const c_void, 3892f3ab15Sopenharmony_ci n, 3992f3ab15Sopenharmony_ci md, 4092f3ab15Sopenharmony_ci ptr::null_mut(), 4192f3ab15Sopenharmony_ci ) != 0 { 4292f3ab15Sopenharmony_ci md 4392f3ab15Sopenharmony_ci } else { 4492f3ab15Sopenharmony_ci ptr::null_mut() 4592f3ab15Sopenharmony_ci } 4692f3ab15Sopenharmony_ci } 4792f3ab15Sopenharmony_ci 4892f3ab15Sopenharmony_ci pub unsafe fn SHA256(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar { 4992f3ab15Sopenharmony_ci if EVP_Q_digest( 5092f3ab15Sopenharmony_ci ptr::null_mut(), 5192f3ab15Sopenharmony_ci "SHA256\0".as_ptr() as *const c_char, 5292f3ab15Sopenharmony_ci ptr::null(), 5392f3ab15Sopenharmony_ci d as *const c_void, 5492f3ab15Sopenharmony_ci n, 5592f3ab15Sopenharmony_ci md, 5692f3ab15Sopenharmony_ci ptr::null_mut(), 5792f3ab15Sopenharmony_ci ) != 0 { 5892f3ab15Sopenharmony_ci md 5992f3ab15Sopenharmony_ci } else { 6092f3ab15Sopenharmony_ci ptr::null_mut() 6192f3ab15Sopenharmony_ci } 6292f3ab15Sopenharmony_ci } 6392f3ab15Sopenharmony_ci } 6492f3ab15Sopenharmony_ci} 6592f3ab15Sopenharmony_ci 6692f3ab15Sopenharmony_ci#[cfg(not(osslconf = "OPENSSL_NO_DEPRECATED_3_0"))] 6792f3ab15Sopenharmony_cipub type SHA_LONG64 = u64; 6892f3ab15Sopenharmony_ci 6992f3ab15Sopenharmony_cicfg_if! { 7092f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 7192f3ab15Sopenharmony_ci pub unsafe fn SHA384(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar { 7292f3ab15Sopenharmony_ci if EVP_Q_digest( 7392f3ab15Sopenharmony_ci ptr::null_mut(), 7492f3ab15Sopenharmony_ci "SHA384\0".as_ptr() as *const c_char, 7592f3ab15Sopenharmony_ci ptr::null(), 7692f3ab15Sopenharmony_ci d as *const c_void, 7792f3ab15Sopenharmony_ci n, 7892f3ab15Sopenharmony_ci md, 7992f3ab15Sopenharmony_ci ptr::null_mut(), 8092f3ab15Sopenharmony_ci ) != 0 { 8192f3ab15Sopenharmony_ci md 8292f3ab15Sopenharmony_ci } else { 8392f3ab15Sopenharmony_ci ptr::null_mut() 8492f3ab15Sopenharmony_ci } 8592f3ab15Sopenharmony_ci } 8692f3ab15Sopenharmony_ci 8792f3ab15Sopenharmony_ci pub unsafe fn SHA512(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar { 8892f3ab15Sopenharmony_ci if EVP_Q_digest( 8992f3ab15Sopenharmony_ci ptr::null_mut(), 9092f3ab15Sopenharmony_ci "SHA512\0".as_ptr() as *const c_char, 9192f3ab15Sopenharmony_ci ptr::null(), 9292f3ab15Sopenharmony_ci d as *const c_void, 9392f3ab15Sopenharmony_ci n, 9492f3ab15Sopenharmony_ci md, 9592f3ab15Sopenharmony_ci ptr::null_mut(), 9692f3ab15Sopenharmony_ci ) != 0 { 9792f3ab15Sopenharmony_ci md 9892f3ab15Sopenharmony_ci } else { 9992f3ab15Sopenharmony_ci ptr::null_mut() 10092f3ab15Sopenharmony_ci } 10192f3ab15Sopenharmony_ci } 10292f3ab15Sopenharmony_ci } 10392f3ab15Sopenharmony_ci} 104