192f3ab15Sopenharmony_ciuse super::super::*; 292f3ab15Sopenharmony_ciuse libc::*; 392f3ab15Sopenharmony_ci 492f3ab15Sopenharmony_cicfg_if! { 592f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 692f3ab15Sopenharmony_ci extern "C" { 792f3ab15Sopenharmony_ci pub fn EVP_MD_get_block_size(md: *const EVP_MD) -> c_int; 892f3ab15Sopenharmony_ci pub fn EVP_MD_get_size(md: *const EVP_MD) -> c_int; 992f3ab15Sopenharmony_ci pub fn EVP_MD_get_type(md: *const EVP_MD) -> c_int; 1092f3ab15Sopenharmony_ci 1192f3ab15Sopenharmony_ci pub fn EVP_MD_CTX_get0_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD; 1292f3ab15Sopenharmony_ci 1392f3ab15Sopenharmony_ci pub fn EVP_CIPHER_get_key_length(cipher: *const EVP_CIPHER) -> c_int; 1492f3ab15Sopenharmony_ci pub fn EVP_CIPHER_get_block_size(cipher: *const EVP_CIPHER) -> c_int; 1592f3ab15Sopenharmony_ci pub fn EVP_CIPHER_get_iv_length(cipher: *const EVP_CIPHER) -> c_int; 1692f3ab15Sopenharmony_ci pub fn EVP_CIPHER_get_nid(cipher: *const EVP_CIPHER) -> c_int; 1792f3ab15Sopenharmony_ci pub fn EVP_CIPHER_fetch( 1892f3ab15Sopenharmony_ci ctx: *mut OSSL_LIB_CTX, 1992f3ab15Sopenharmony_ci algorithm: *const c_char, 2092f3ab15Sopenharmony_ci properties: *const c_char, 2192f3ab15Sopenharmony_ci ) -> *mut EVP_CIPHER; 2292f3ab15Sopenharmony_ci pub fn EVP_CIPHER_free(cipher: *mut EVP_CIPHER); 2392f3ab15Sopenharmony_ci 2492f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_get0_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER; 2592f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_get_block_size(ctx: *const EVP_CIPHER_CTX) -> c_int; 2692f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_get_key_length(ctx: *const EVP_CIPHER_CTX) -> c_int; 2792f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_get_iv_length(ctx: *const EVP_CIPHER_CTX) -> c_int; 2892f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_get_tag_length(ctx: *const EVP_CIPHER_CTX) -> c_int; 2992f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_get_num(ctx: *const EVP_CIPHER_CTX) -> c_int; 3092f3ab15Sopenharmony_ci } 3192f3ab15Sopenharmony_ci } else { 3292f3ab15Sopenharmony_ci extern "C" { 3392f3ab15Sopenharmony_ci pub fn EVP_MD_block_size(md: *const EVP_MD) -> c_int; 3492f3ab15Sopenharmony_ci pub fn EVP_MD_size(md: *const EVP_MD) -> c_int; 3592f3ab15Sopenharmony_ci pub fn EVP_MD_type(md: *const EVP_MD) -> c_int; 3692f3ab15Sopenharmony_ci 3792f3ab15Sopenharmony_ci pub fn EVP_MD_CTX_md(ctx: *const EVP_MD_CTX) -> *const EVP_MD; 3892f3ab15Sopenharmony_ci 3992f3ab15Sopenharmony_ci pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> c_int; 4092f3ab15Sopenharmony_ci pub fn EVP_CIPHER_block_size(cipher: *const EVP_CIPHER) -> c_int; 4192f3ab15Sopenharmony_ci pub fn EVP_CIPHER_iv_length(cipher: *const EVP_CIPHER) -> c_int; 4292f3ab15Sopenharmony_ci pub fn EVP_CIPHER_nid(cipher: *const EVP_CIPHER) -> c_int; 4392f3ab15Sopenharmony_ci 4492f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_cipher(ctx: *const EVP_CIPHER_CTX) -> *const EVP_CIPHER; 4592f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_block_size(ctx: *const EVP_CIPHER_CTX) -> c_int; 4692f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_key_length(ctx: *const EVP_CIPHER_CTX) -> c_int; 4792f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_iv_length(ctx: *const EVP_CIPHER_CTX) -> c_int; 4892f3ab15Sopenharmony_ci #[cfg(ossl110)] 4992f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_num(ctx: *const EVP_CIPHER_CTX) -> c_int; 5092f3ab15Sopenharmony_ci } 5192f3ab15Sopenharmony_ci } 5292f3ab15Sopenharmony_ci} 5392f3ab15Sopenharmony_ci 5492f3ab15Sopenharmony_cicfg_if! { 5592f3ab15Sopenharmony_ci if #[cfg(ossl110)] { 5692f3ab15Sopenharmony_ci extern "C" { 5792f3ab15Sopenharmony_ci pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX; 5892f3ab15Sopenharmony_ci pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX); 5992f3ab15Sopenharmony_ci } 6092f3ab15Sopenharmony_ci } else { 6192f3ab15Sopenharmony_ci extern "C" { 6292f3ab15Sopenharmony_ci pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX; 6392f3ab15Sopenharmony_ci pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX); 6492f3ab15Sopenharmony_ci } 6592f3ab15Sopenharmony_ci } 6692f3ab15Sopenharmony_ci} 6792f3ab15Sopenharmony_ci 6892f3ab15Sopenharmony_cicfg_if! { 6992f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 7092f3ab15Sopenharmony_ci extern "C" { 7192f3ab15Sopenharmony_ci pub fn EVP_default_properties_is_fips_enabled(libctx: *mut OSSL_LIB_CTX) -> c_int; 7292f3ab15Sopenharmony_ci } 7392f3ab15Sopenharmony_ci } 7492f3ab15Sopenharmony_ci} 7592f3ab15Sopenharmony_ci 7692f3ab15Sopenharmony_ciextern "C" { 7792f3ab15Sopenharmony_ci pub fn EVP_DigestInit_ex(ctx: *mut EVP_MD_CTX, typ: *const EVP_MD, imple: *mut ENGINE) 7892f3ab15Sopenharmony_ci -> c_int; 7992f3ab15Sopenharmony_ci pub fn EVP_DigestUpdate(ctx: *mut EVP_MD_CTX, data: *const c_void, n: size_t) -> c_int; 8092f3ab15Sopenharmony_ci pub fn EVP_DigestFinal_ex(ctx: *mut EVP_MD_CTX, res: *mut u8, n: *mut u32) -> c_int; 8192f3ab15Sopenharmony_ci #[cfg(ossl300)] 8292f3ab15Sopenharmony_ci pub fn EVP_Q_digest( 8392f3ab15Sopenharmony_ci libctx: *mut OSSL_LIB_CTX, 8492f3ab15Sopenharmony_ci name: *const c_char, 8592f3ab15Sopenharmony_ci propq: *const c_char, 8692f3ab15Sopenharmony_ci data: *const c_void, 8792f3ab15Sopenharmony_ci count: size_t, 8892f3ab15Sopenharmony_ci md: *mut c_uchar, 8992f3ab15Sopenharmony_ci size: *mut size_t, 9092f3ab15Sopenharmony_ci ) -> c_int; 9192f3ab15Sopenharmony_ci pub fn EVP_DigestInit(ctx: *mut EVP_MD_CTX, typ: *const EVP_MD) -> c_int; 9292f3ab15Sopenharmony_ci pub fn EVP_DigestFinal(ctx: *mut EVP_MD_CTX, res: *mut u8, n: *mut u32) -> c_int; 9392f3ab15Sopenharmony_ci #[cfg(ossl111)] 9492f3ab15Sopenharmony_ci pub fn EVP_DigestFinalXOF(ctx: *mut EVP_MD_CTX, res: *mut u8, len: usize) -> c_int; 9592f3ab15Sopenharmony_ci 9692f3ab15Sopenharmony_ci #[cfg(ossl300)] 9792f3ab15Sopenharmony_ci pub fn EVP_MD_fetch( 9892f3ab15Sopenharmony_ci ctx: *mut OSSL_LIB_CTX, 9992f3ab15Sopenharmony_ci algorithm: *const c_char, 10092f3ab15Sopenharmony_ci properties: *const c_char, 10192f3ab15Sopenharmony_ci ) -> *mut EVP_MD; 10292f3ab15Sopenharmony_ci 10392f3ab15Sopenharmony_ci #[cfg(ossl300)] 10492f3ab15Sopenharmony_ci pub fn EVP_MD_free(md: *mut EVP_MD); 10592f3ab15Sopenharmony_ci 10692f3ab15Sopenharmony_ci pub fn EVP_BytesToKey( 10792f3ab15Sopenharmony_ci typ: *const EVP_CIPHER, 10892f3ab15Sopenharmony_ci md: *const EVP_MD, 10992f3ab15Sopenharmony_ci salt: *const u8, 11092f3ab15Sopenharmony_ci data: *const u8, 11192f3ab15Sopenharmony_ci datalen: c_int, 11292f3ab15Sopenharmony_ci count: c_int, 11392f3ab15Sopenharmony_ci key: *mut u8, 11492f3ab15Sopenharmony_ci iv: *mut u8, 11592f3ab15Sopenharmony_ci ) -> c_int; 11692f3ab15Sopenharmony_ci 11792f3ab15Sopenharmony_ci pub fn EVP_CipherInit( 11892f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 11992f3ab15Sopenharmony_ci evp: *const EVP_CIPHER, 12092f3ab15Sopenharmony_ci key: *const u8, 12192f3ab15Sopenharmony_ci iv: *const u8, 12292f3ab15Sopenharmony_ci mode: c_int, 12392f3ab15Sopenharmony_ci ) -> c_int; 12492f3ab15Sopenharmony_ci pub fn EVP_CipherInit_ex( 12592f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 12692f3ab15Sopenharmony_ci type_: *const EVP_CIPHER, 12792f3ab15Sopenharmony_ci impl_: *mut ENGINE, 12892f3ab15Sopenharmony_ci key: *const c_uchar, 12992f3ab15Sopenharmony_ci iv: *const c_uchar, 13092f3ab15Sopenharmony_ci enc: c_int, 13192f3ab15Sopenharmony_ci ) -> c_int; 13292f3ab15Sopenharmony_ci pub fn EVP_CipherUpdate( 13392f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 13492f3ab15Sopenharmony_ci outbuf: *mut u8, 13592f3ab15Sopenharmony_ci outlen: *mut c_int, 13692f3ab15Sopenharmony_ci inbuf: *const u8, 13792f3ab15Sopenharmony_ci inlen: c_int, 13892f3ab15Sopenharmony_ci ) -> c_int; 13992f3ab15Sopenharmony_ci pub fn EVP_CipherFinal(ctx: *mut EVP_CIPHER_CTX, res: *mut u8, len: *mut c_int) -> c_int; 14092f3ab15Sopenharmony_ci 14192f3ab15Sopenharmony_ci pub fn EVP_DigestSignInit( 14292f3ab15Sopenharmony_ci ctx: *mut EVP_MD_CTX, 14392f3ab15Sopenharmony_ci pctx: *mut *mut EVP_PKEY_CTX, 14492f3ab15Sopenharmony_ci type_: *const EVP_MD, 14592f3ab15Sopenharmony_ci e: *mut ENGINE, 14692f3ab15Sopenharmony_ci pkey: *mut EVP_PKEY, 14792f3ab15Sopenharmony_ci ) -> c_int; 14892f3ab15Sopenharmony_ci 14992f3ab15Sopenharmony_ci #[cfg(ossl300)] 15092f3ab15Sopenharmony_ci pub fn EVP_DigestSignUpdate(ctx: *mut EVP_MD_CTX, data: *const c_void, dsize: size_t) -> c_int; 15192f3ab15Sopenharmony_ci pub fn EVP_DigestSignFinal( 15292f3ab15Sopenharmony_ci ctx: *mut EVP_MD_CTX, 15392f3ab15Sopenharmony_ci sig: *mut c_uchar, 15492f3ab15Sopenharmony_ci siglen: *mut size_t, 15592f3ab15Sopenharmony_ci ) -> c_int; 15692f3ab15Sopenharmony_ci pub fn EVP_DigestVerifyInit( 15792f3ab15Sopenharmony_ci ctx: *mut EVP_MD_CTX, 15892f3ab15Sopenharmony_ci pctx: *mut *mut EVP_PKEY_CTX, 15992f3ab15Sopenharmony_ci type_: *const EVP_MD, 16092f3ab15Sopenharmony_ci e: *mut ENGINE, 16192f3ab15Sopenharmony_ci pkey: *mut EVP_PKEY, 16292f3ab15Sopenharmony_ci ) -> c_int; 16392f3ab15Sopenharmony_ci #[cfg(ossl300)] 16492f3ab15Sopenharmony_ci pub fn EVP_DigestVerifyUpdate( 16592f3ab15Sopenharmony_ci ctx: *mut EVP_MD_CTX, 16692f3ab15Sopenharmony_ci data: *const c_void, 16792f3ab15Sopenharmony_ci dsize: size_t, 16892f3ab15Sopenharmony_ci ) -> c_int; 16992f3ab15Sopenharmony_ci pub fn EVP_SealInit( 17092f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 17192f3ab15Sopenharmony_ci type_: *const EVP_CIPHER, 17292f3ab15Sopenharmony_ci ek: *mut *mut c_uchar, 17392f3ab15Sopenharmony_ci ekl: *mut c_int, 17492f3ab15Sopenharmony_ci iv: *mut c_uchar, 17592f3ab15Sopenharmony_ci pubk: *mut *mut EVP_PKEY, 17692f3ab15Sopenharmony_ci npubk: c_int, 17792f3ab15Sopenharmony_ci ) -> c_int; 17892f3ab15Sopenharmony_ci pub fn EVP_SealFinal(ctx: *mut EVP_CIPHER_CTX, out: *mut c_uchar, outl: *mut c_int) -> c_int; 17992f3ab15Sopenharmony_ci pub fn EVP_EncryptInit_ex( 18092f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 18192f3ab15Sopenharmony_ci cipher: *const EVP_CIPHER, 18292f3ab15Sopenharmony_ci impl_: *mut ENGINE, 18392f3ab15Sopenharmony_ci key: *const c_uchar, 18492f3ab15Sopenharmony_ci iv: *const c_uchar, 18592f3ab15Sopenharmony_ci ) -> c_int; 18692f3ab15Sopenharmony_ci pub fn EVP_EncryptUpdate( 18792f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 18892f3ab15Sopenharmony_ci out: *mut c_uchar, 18992f3ab15Sopenharmony_ci outl: *mut c_int, 19092f3ab15Sopenharmony_ci in_: *const u8, 19192f3ab15Sopenharmony_ci inl: c_int, 19292f3ab15Sopenharmony_ci ) -> c_int; 19392f3ab15Sopenharmony_ci pub fn EVP_EncryptFinal_ex( 19492f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 19592f3ab15Sopenharmony_ci out: *mut c_uchar, 19692f3ab15Sopenharmony_ci outl: *mut c_int, 19792f3ab15Sopenharmony_ci ) -> c_int; 19892f3ab15Sopenharmony_ci pub fn EVP_OpenInit( 19992f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 20092f3ab15Sopenharmony_ci type_: *const EVP_CIPHER, 20192f3ab15Sopenharmony_ci ek: *const c_uchar, 20292f3ab15Sopenharmony_ci ekl: c_int, 20392f3ab15Sopenharmony_ci iv: *const c_uchar, 20492f3ab15Sopenharmony_ci priv_: *mut EVP_PKEY, 20592f3ab15Sopenharmony_ci ) -> c_int; 20692f3ab15Sopenharmony_ci pub fn EVP_OpenFinal(ctx: *mut EVP_CIPHER_CTX, out: *mut c_uchar, outl: *mut c_int) -> c_int; 20792f3ab15Sopenharmony_ci pub fn EVP_DecryptInit_ex( 20892f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 20992f3ab15Sopenharmony_ci cipher: *const EVP_CIPHER, 21092f3ab15Sopenharmony_ci impl_: *mut ENGINE, 21192f3ab15Sopenharmony_ci key: *const c_uchar, 21292f3ab15Sopenharmony_ci iv: *const c_uchar, 21392f3ab15Sopenharmony_ci ) -> c_int; 21492f3ab15Sopenharmony_ci pub fn EVP_DecryptUpdate( 21592f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 21692f3ab15Sopenharmony_ci out: *mut c_uchar, 21792f3ab15Sopenharmony_ci outl: *mut c_int, 21892f3ab15Sopenharmony_ci in_: *const u8, 21992f3ab15Sopenharmony_ci inl: c_int, 22092f3ab15Sopenharmony_ci ) -> c_int; 22192f3ab15Sopenharmony_ci pub fn EVP_DecryptFinal_ex( 22292f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 22392f3ab15Sopenharmony_ci outm: *mut c_uchar, 22492f3ab15Sopenharmony_ci outl: *mut c_int, 22592f3ab15Sopenharmony_ci ) -> c_int; 22692f3ab15Sopenharmony_ci} 22792f3ab15Sopenharmony_cicfg_if! { 22892f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 22992f3ab15Sopenharmony_ci extern "C" { 23092f3ab15Sopenharmony_ci pub fn EVP_PKEY_get_size(pkey: *const EVP_PKEY) -> c_int; 23192f3ab15Sopenharmony_ci } 23292f3ab15Sopenharmony_ci } else { 23392f3ab15Sopenharmony_ci const_ptr_api! { 23492f3ab15Sopenharmony_ci extern "C" { 23592f3ab15Sopenharmony_ci pub fn EVP_PKEY_size(pkey: #[const_ptr_if(any(ossl111b, libressl280))] EVP_PKEY) -> c_int; 23692f3ab15Sopenharmony_ci } 23792f3ab15Sopenharmony_ci } 23892f3ab15Sopenharmony_ci } 23992f3ab15Sopenharmony_ci} 24092f3ab15Sopenharmony_cicfg_if! { 24192f3ab15Sopenharmony_ci if #[cfg(any(ossl111, libressl370))] { 24292f3ab15Sopenharmony_ci extern "C" { 24392f3ab15Sopenharmony_ci pub fn EVP_DigestSign( 24492f3ab15Sopenharmony_ci ctx: *mut EVP_MD_CTX, 24592f3ab15Sopenharmony_ci sigret: *mut c_uchar, 24692f3ab15Sopenharmony_ci siglen: *mut size_t, 24792f3ab15Sopenharmony_ci tbs: *const c_uchar, 24892f3ab15Sopenharmony_ci tbslen: size_t 24992f3ab15Sopenharmony_ci ) -> c_int; 25092f3ab15Sopenharmony_ci 25192f3ab15Sopenharmony_ci pub fn EVP_DigestVerify( 25292f3ab15Sopenharmony_ci ctx: *mut EVP_MD_CTX, 25392f3ab15Sopenharmony_ci sigret: *const c_uchar, 25492f3ab15Sopenharmony_ci siglen: size_t, 25592f3ab15Sopenharmony_ci tbs: *const c_uchar, 25692f3ab15Sopenharmony_ci tbslen: size_t 25792f3ab15Sopenharmony_ci ) -> c_int; 25892f3ab15Sopenharmony_ci } 25992f3ab15Sopenharmony_ci } 26092f3ab15Sopenharmony_ci} 26192f3ab15Sopenharmony_ciconst_ptr_api! { 26292f3ab15Sopenharmony_ci extern "C" { 26392f3ab15Sopenharmony_ci pub fn EVP_DigestVerifyFinal( 26492f3ab15Sopenharmony_ci ctx: *mut EVP_MD_CTX, 26592f3ab15Sopenharmony_ci sigret: #[const_ptr_if(any(ossl102, libressl280))] c_uchar, 26692f3ab15Sopenharmony_ci siglen: size_t, 26792f3ab15Sopenharmony_ci ) -> c_int; 26892f3ab15Sopenharmony_ci } 26992f3ab15Sopenharmony_ci} 27092f3ab15Sopenharmony_ci 27192f3ab15Sopenharmony_ciextern "C" { 27292f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_new() -> *mut EVP_CIPHER_CTX; 27392f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_free(ctx: *mut EVP_CIPHER_CTX); 27492f3ab15Sopenharmony_ci pub fn EVP_MD_CTX_copy_ex(dst: *mut EVP_MD_CTX, src: *const EVP_MD_CTX) -> c_int; 27592f3ab15Sopenharmony_ci #[cfg(ossl111)] 27692f3ab15Sopenharmony_ci pub fn EVP_MD_CTX_reset(ctx: *mut EVP_MD_CTX) -> c_int; 27792f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_set_key_length(ctx: *mut EVP_CIPHER_CTX, keylen: c_int) -> c_int; 27892f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_set_padding(ctx: *mut EVP_CIPHER_CTX, padding: c_int) -> c_int; 27992f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_ctrl( 28092f3ab15Sopenharmony_ci ctx: *mut EVP_CIPHER_CTX, 28192f3ab15Sopenharmony_ci type_: c_int, 28292f3ab15Sopenharmony_ci arg: c_int, 28392f3ab15Sopenharmony_ci ptr: *mut c_void, 28492f3ab15Sopenharmony_ci ) -> c_int; 28592f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_rand_key(ctx: *mut EVP_CIPHER_CTX, key: *mut c_uchar) -> c_int; 28692f3ab15Sopenharmony_ci pub fn EVP_CIPHER_CTX_set_flags(ctx: *mut EVP_CIPHER_CTX, flags: c_int); 28792f3ab15Sopenharmony_ci 28892f3ab15Sopenharmony_ci pub fn EVP_md_null() -> *const EVP_MD; 28992f3ab15Sopenharmony_ci pub fn EVP_md5() -> *const EVP_MD; 29092f3ab15Sopenharmony_ci pub fn EVP_sha1() -> *const EVP_MD; 29192f3ab15Sopenharmony_ci pub fn EVP_sha224() -> *const EVP_MD; 29292f3ab15Sopenharmony_ci pub fn EVP_sha256() -> *const EVP_MD; 29392f3ab15Sopenharmony_ci pub fn EVP_sha384() -> *const EVP_MD; 29492f3ab15Sopenharmony_ci pub fn EVP_sha512() -> *const EVP_MD; 29592f3ab15Sopenharmony_ci #[cfg(ossl111)] 29692f3ab15Sopenharmony_ci pub fn EVP_sha3_224() -> *const EVP_MD; 29792f3ab15Sopenharmony_ci #[cfg(ossl111)] 29892f3ab15Sopenharmony_ci pub fn EVP_sha3_256() -> *const EVP_MD; 29992f3ab15Sopenharmony_ci #[cfg(ossl111)] 30092f3ab15Sopenharmony_ci pub fn EVP_sha3_384() -> *const EVP_MD; 30192f3ab15Sopenharmony_ci #[cfg(ossl111)] 30292f3ab15Sopenharmony_ci pub fn EVP_sha3_512() -> *const EVP_MD; 30392f3ab15Sopenharmony_ci #[cfg(ossl111)] 30492f3ab15Sopenharmony_ci pub fn EVP_shake128() -> *const EVP_MD; 30592f3ab15Sopenharmony_ci #[cfg(ossl111)] 30692f3ab15Sopenharmony_ci pub fn EVP_shake256() -> *const EVP_MD; 30792f3ab15Sopenharmony_ci pub fn EVP_ripemd160() -> *const EVP_MD; 30892f3ab15Sopenharmony_ci #[cfg(all(any(ossl111, libressl291), not(osslconf = "OPENSSL_NO_SM3")))] 30992f3ab15Sopenharmony_ci pub fn EVP_sm3() -> *const EVP_MD; 31092f3ab15Sopenharmony_ci pub fn EVP_des_ecb() -> *const EVP_CIPHER; 31192f3ab15Sopenharmony_ci pub fn EVP_des_ede3() -> *const EVP_CIPHER; 31292f3ab15Sopenharmony_ci pub fn EVP_des_ede3_cbc() -> *const EVP_CIPHER; 31392f3ab15Sopenharmony_ci pub fn EVP_des_ede3_cfb64() -> *const EVP_CIPHER; 31492f3ab15Sopenharmony_ci pub fn EVP_des_cbc() -> *const EVP_CIPHER; 31592f3ab15Sopenharmony_ci #[cfg(not(osslconf = "OPENSSL_NO_RC4"))] 31692f3ab15Sopenharmony_ci pub fn EVP_rc4() -> *const EVP_CIPHER; 31792f3ab15Sopenharmony_ci pub fn EVP_bf_ecb() -> *const EVP_CIPHER; 31892f3ab15Sopenharmony_ci pub fn EVP_bf_cbc() -> *const EVP_CIPHER; 31992f3ab15Sopenharmony_ci pub fn EVP_bf_cfb64() -> *const EVP_CIPHER; 32092f3ab15Sopenharmony_ci pub fn EVP_bf_ofb() -> *const EVP_CIPHER; 32192f3ab15Sopenharmony_ci pub fn EVP_aes_128_ecb() -> *const EVP_CIPHER; 32292f3ab15Sopenharmony_ci pub fn EVP_aes_128_cbc() -> *const EVP_CIPHER; 32392f3ab15Sopenharmony_ci pub fn EVP_aes_128_cfb1() -> *const EVP_CIPHER; 32492f3ab15Sopenharmony_ci pub fn EVP_aes_128_cfb8() -> *const EVP_CIPHER; 32592f3ab15Sopenharmony_ci pub fn EVP_aes_128_cfb128() -> *const EVP_CIPHER; 32692f3ab15Sopenharmony_ci pub fn EVP_aes_128_ctr() -> *const EVP_CIPHER; 32792f3ab15Sopenharmony_ci pub fn EVP_aes_128_ccm() -> *const EVP_CIPHER; 32892f3ab15Sopenharmony_ci pub fn EVP_aes_128_gcm() -> *const EVP_CIPHER; 32992f3ab15Sopenharmony_ci pub fn EVP_aes_128_xts() -> *const EVP_CIPHER; 33092f3ab15Sopenharmony_ci pub fn EVP_aes_128_ofb() -> *const EVP_CIPHER; 33192f3ab15Sopenharmony_ci #[cfg(ossl110)] 33292f3ab15Sopenharmony_ci pub fn EVP_aes_128_ocb() -> *const EVP_CIPHER; 33392f3ab15Sopenharmony_ci #[cfg(ossl102)] 33492f3ab15Sopenharmony_ci pub fn EVP_aes_128_wrap() -> *const EVP_CIPHER; 33592f3ab15Sopenharmony_ci #[cfg(ossl110)] 33692f3ab15Sopenharmony_ci pub fn EVP_aes_128_wrap_pad() -> *const EVP_CIPHER; 33792f3ab15Sopenharmony_ci pub fn EVP_aes_192_ecb() -> *const EVP_CIPHER; 33892f3ab15Sopenharmony_ci pub fn EVP_aes_192_cbc() -> *const EVP_CIPHER; 33992f3ab15Sopenharmony_ci pub fn EVP_aes_192_cfb1() -> *const EVP_CIPHER; 34092f3ab15Sopenharmony_ci pub fn EVP_aes_192_cfb8() -> *const EVP_CIPHER; 34192f3ab15Sopenharmony_ci pub fn EVP_aes_192_cfb128() -> *const EVP_CIPHER; 34292f3ab15Sopenharmony_ci pub fn EVP_aes_192_ctr() -> *const EVP_CIPHER; 34392f3ab15Sopenharmony_ci pub fn EVP_aes_192_ccm() -> *const EVP_CIPHER; 34492f3ab15Sopenharmony_ci pub fn EVP_aes_192_gcm() -> *const EVP_CIPHER; 34592f3ab15Sopenharmony_ci pub fn EVP_aes_192_ofb() -> *const EVP_CIPHER; 34692f3ab15Sopenharmony_ci #[cfg(ossl110)] 34792f3ab15Sopenharmony_ci pub fn EVP_aes_192_ocb() -> *const EVP_CIPHER; 34892f3ab15Sopenharmony_ci #[cfg(ossl102)] 34992f3ab15Sopenharmony_ci pub fn EVP_aes_192_wrap() -> *const EVP_CIPHER; 35092f3ab15Sopenharmony_ci #[cfg(ossl110)] 35192f3ab15Sopenharmony_ci pub fn EVP_aes_192_wrap_pad() -> *const EVP_CIPHER; 35292f3ab15Sopenharmony_ci pub fn EVP_aes_256_ecb() -> *const EVP_CIPHER; 35392f3ab15Sopenharmony_ci pub fn EVP_aes_256_cbc() -> *const EVP_CIPHER; 35492f3ab15Sopenharmony_ci pub fn EVP_aes_256_cfb1() -> *const EVP_CIPHER; 35592f3ab15Sopenharmony_ci pub fn EVP_aes_256_cfb8() -> *const EVP_CIPHER; 35692f3ab15Sopenharmony_ci pub fn EVP_aes_256_cfb128() -> *const EVP_CIPHER; 35792f3ab15Sopenharmony_ci pub fn EVP_aes_256_ctr() -> *const EVP_CIPHER; 35892f3ab15Sopenharmony_ci pub fn EVP_aes_256_ccm() -> *const EVP_CIPHER; 35992f3ab15Sopenharmony_ci pub fn EVP_aes_256_gcm() -> *const EVP_CIPHER; 36092f3ab15Sopenharmony_ci pub fn EVP_aes_256_xts() -> *const EVP_CIPHER; 36192f3ab15Sopenharmony_ci pub fn EVP_aes_256_ofb() -> *const EVP_CIPHER; 36292f3ab15Sopenharmony_ci #[cfg(ossl110)] 36392f3ab15Sopenharmony_ci pub fn EVP_aes_256_ocb() -> *const EVP_CIPHER; 36492f3ab15Sopenharmony_ci #[cfg(ossl102)] 36592f3ab15Sopenharmony_ci pub fn EVP_aes_256_wrap() -> *const EVP_CIPHER; 36692f3ab15Sopenharmony_ci #[cfg(ossl110)] 36792f3ab15Sopenharmony_ci pub fn EVP_aes_256_wrap_pad() -> *const EVP_CIPHER; 36892f3ab15Sopenharmony_ci #[cfg(all(ossl110, not(osslconf = "OPENSSL_NO_CHACHA")))] 36992f3ab15Sopenharmony_ci pub fn EVP_chacha20() -> *const EVP_CIPHER; 37092f3ab15Sopenharmony_ci #[cfg(all(ossl110, not(osslconf = "OPENSSL_NO_CHACHA")))] 37192f3ab15Sopenharmony_ci pub fn EVP_chacha20_poly1305() -> *const EVP_CIPHER; 37292f3ab15Sopenharmony_ci #[cfg(not(osslconf = "OPENSSL_NO_SEED"))] 37392f3ab15Sopenharmony_ci pub fn EVP_seed_cbc() -> *const EVP_CIPHER; 37492f3ab15Sopenharmony_ci #[cfg(not(osslconf = "OPENSSL_NO_SEED"))] 37592f3ab15Sopenharmony_ci pub fn EVP_seed_cfb128() -> *const EVP_CIPHER; 37692f3ab15Sopenharmony_ci #[cfg(not(osslconf = "OPENSSL_NO_SEED"))] 37792f3ab15Sopenharmony_ci pub fn EVP_seed_ecb() -> *const EVP_CIPHER; 37892f3ab15Sopenharmony_ci #[cfg(not(osslconf = "OPENSSL_NO_SEED"))] 37992f3ab15Sopenharmony_ci pub fn EVP_seed_ofb() -> *const EVP_CIPHER; 38092f3ab15Sopenharmony_ci 38192f3ab15Sopenharmony_ci #[cfg(all(any(ossl111, libressl291), not(osslconf = "OPENSSL_NO_SM4")))] 38292f3ab15Sopenharmony_ci pub fn EVP_sm4_ecb() -> *const EVP_CIPHER; 38392f3ab15Sopenharmony_ci #[cfg(all(any(ossl111, libressl291), not(osslconf = "OPENSSL_NO_SM4")))] 38492f3ab15Sopenharmony_ci pub fn EVP_sm4_cbc() -> *const EVP_CIPHER; 38592f3ab15Sopenharmony_ci #[cfg(all(any(ossl111, libressl291), not(osslconf = "OPENSSL_NO_SM4")))] 38692f3ab15Sopenharmony_ci pub fn EVP_sm4_cfb128() -> *const EVP_CIPHER; 38792f3ab15Sopenharmony_ci #[cfg(all(any(ossl111, libressl291), not(osslconf = "OPENSSL_NO_SM4")))] 38892f3ab15Sopenharmony_ci pub fn EVP_sm4_ofb() -> *const EVP_CIPHER; 38992f3ab15Sopenharmony_ci #[cfg(all(any(ossl111, libressl291), not(osslconf = "OPENSSL_NO_SM4")))] 39092f3ab15Sopenharmony_ci pub fn EVP_sm4_ctr() -> *const EVP_CIPHER; 39192f3ab15Sopenharmony_ci 39292f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_CAMELLIA")))] 39392f3ab15Sopenharmony_ci pub fn EVP_camellia_128_cfb128() -> *const EVP_CIPHER; 39492f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_CAMELLIA")))] 39592f3ab15Sopenharmony_ci pub fn EVP_camellia_128_ecb() -> *const EVP_CIPHER; 39692f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_CAMELLIA")))] 39792f3ab15Sopenharmony_ci pub fn EVP_camellia_192_cfb128() -> *const EVP_CIPHER; 39892f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_CAMELLIA")))] 39992f3ab15Sopenharmony_ci pub fn EVP_camellia_192_ecb() -> *const EVP_CIPHER; 40092f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_CAMELLIA")))] 40192f3ab15Sopenharmony_ci pub fn EVP_camellia_256_cfb128() -> *const EVP_CIPHER; 40292f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_CAMELLIA")))] 40392f3ab15Sopenharmony_ci pub fn EVP_camellia_256_ecb() -> *const EVP_CIPHER; 40492f3ab15Sopenharmony_ci 40592f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_CAST")))] 40692f3ab15Sopenharmony_ci pub fn EVP_cast5_cfb64() -> *const EVP_CIPHER; 40792f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_CAST")))] 40892f3ab15Sopenharmony_ci pub fn EVP_cast5_ecb() -> *const EVP_CIPHER; 40992f3ab15Sopenharmony_ci 41092f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_IDEA")))] 41192f3ab15Sopenharmony_ci pub fn EVP_idea_cfb64() -> *const EVP_CIPHER; 41292f3ab15Sopenharmony_ci #[cfg(not(any(boringssl, osslconf = "OPENSSL_NO_IDEA")))] 41392f3ab15Sopenharmony_ci pub fn EVP_idea_ecb() -> *const EVP_CIPHER; 41492f3ab15Sopenharmony_ci 41592f3ab15Sopenharmony_ci #[cfg(not(ossl110))] 41692f3ab15Sopenharmony_ci pub fn OPENSSL_add_all_algorithms_noconf(); 41792f3ab15Sopenharmony_ci 41892f3ab15Sopenharmony_ci pub fn EVP_get_digestbyname(name: *const c_char) -> *const EVP_MD; 41992f3ab15Sopenharmony_ci pub fn EVP_get_cipherbyname(name: *const c_char) -> *const EVP_CIPHER; 42092f3ab15Sopenharmony_ci} 42192f3ab15Sopenharmony_ci 42292f3ab15Sopenharmony_cicfg_if! { 42392f3ab15Sopenharmony_ci if #[cfg(ossl300)] { 42492f3ab15Sopenharmony_ci extern "C" { 42592f3ab15Sopenharmony_ci pub fn EVP_PKEY_get_id(pkey: *const EVP_PKEY) -> c_int; 42692f3ab15Sopenharmony_ci pub fn EVP_PKEY_get_bits(key: *const EVP_PKEY) -> c_int; 42792f3ab15Sopenharmony_ci pub fn EVP_PKEY_get_security_bits(key: *const EVP_PKEY) -> c_int; 42892f3ab15Sopenharmony_ci } 42992f3ab15Sopenharmony_ci } else { 43092f3ab15Sopenharmony_ci extern "C" { 43192f3ab15Sopenharmony_ci pub fn EVP_PKEY_id(pkey: *const EVP_PKEY) -> c_int; 43292f3ab15Sopenharmony_ci } 43392f3ab15Sopenharmony_ci const_ptr_api! { 43492f3ab15Sopenharmony_ci extern "C" { 43592f3ab15Sopenharmony_ci pub fn EVP_PKEY_bits(key: #[const_ptr_if(any(ossl110, libressl280))] EVP_PKEY) -> c_int; 43692f3ab15Sopenharmony_ci #[cfg(any(ossl110, libressl360))] 43792f3ab15Sopenharmony_ci pub fn EVP_PKEY_security_bits(pkey: #[const_ptr_if(any(ossl110, libressl280))] EVP_PKEY) -> c_int; 43892f3ab15Sopenharmony_ci } 43992f3ab15Sopenharmony_ci } 44092f3ab15Sopenharmony_ci } 44192f3ab15Sopenharmony_ci} 44292f3ab15Sopenharmony_ciextern "C" { 44392f3ab15Sopenharmony_ci pub fn EVP_PKEY_assign(pkey: *mut EVP_PKEY, typ: c_int, key: *mut c_void) -> c_int; 44492f3ab15Sopenharmony_ci 44592f3ab15Sopenharmony_ci pub fn EVP_PKEY_set1_RSA(k: *mut EVP_PKEY, r: *mut RSA) -> c_int; 44692f3ab15Sopenharmony_ci pub fn EVP_PKEY_get1_RSA(k: *mut EVP_PKEY) -> *mut RSA; 44792f3ab15Sopenharmony_ci pub fn EVP_PKEY_get1_DSA(k: *mut EVP_PKEY) -> *mut DSA; 44892f3ab15Sopenharmony_ci pub fn EVP_PKEY_get1_DH(k: *mut EVP_PKEY) -> *mut DH; 44992f3ab15Sopenharmony_ci pub fn EVP_PKEY_get1_EC_KEY(k: *mut EVP_PKEY) -> *mut EC_KEY; 45092f3ab15Sopenharmony_ci 45192f3ab15Sopenharmony_ci pub fn EVP_PKEY_new() -> *mut EVP_PKEY; 45292f3ab15Sopenharmony_ci pub fn EVP_PKEY_free(k: *mut EVP_PKEY); 45392f3ab15Sopenharmony_ci #[cfg(any(ossl110, libressl270))] 45492f3ab15Sopenharmony_ci pub fn EVP_PKEY_up_ref(pkey: *mut EVP_PKEY) -> c_int; 45592f3ab15Sopenharmony_ci 45692f3ab15Sopenharmony_ci pub fn d2i_AutoPrivateKey( 45792f3ab15Sopenharmony_ci a: *mut *mut EVP_PKEY, 45892f3ab15Sopenharmony_ci pp: *mut *const c_uchar, 45992f3ab15Sopenharmony_ci length: c_long, 46092f3ab15Sopenharmony_ci ) -> *mut EVP_PKEY; 46192f3ab15Sopenharmony_ci 46292f3ab15Sopenharmony_ci pub fn EVP_PKEY_cmp(a: *const EVP_PKEY, b: *const EVP_PKEY) -> c_int; 46392f3ab15Sopenharmony_ci 46492f3ab15Sopenharmony_ci pub fn EVP_PKEY_copy_parameters(to: *mut EVP_PKEY, from: *const EVP_PKEY) -> c_int; 46592f3ab15Sopenharmony_ci 46692f3ab15Sopenharmony_ci pub fn PKCS5_PBKDF2_HMAC_SHA1( 46792f3ab15Sopenharmony_ci pass: *const c_char, 46892f3ab15Sopenharmony_ci passlen: c_int, 46992f3ab15Sopenharmony_ci salt: *const u8, 47092f3ab15Sopenharmony_ci saltlen: c_int, 47192f3ab15Sopenharmony_ci iter: c_int, 47292f3ab15Sopenharmony_ci keylen: c_int, 47392f3ab15Sopenharmony_ci out: *mut u8, 47492f3ab15Sopenharmony_ci ) -> c_int; 47592f3ab15Sopenharmony_ci pub fn PKCS5_PBKDF2_HMAC( 47692f3ab15Sopenharmony_ci pass: *const c_char, 47792f3ab15Sopenharmony_ci passlen: c_int, 47892f3ab15Sopenharmony_ci salt: *const c_uchar, 47992f3ab15Sopenharmony_ci saltlen: c_int, 48092f3ab15Sopenharmony_ci iter: c_int, 48192f3ab15Sopenharmony_ci digest: *const EVP_MD, 48292f3ab15Sopenharmony_ci keylen: c_int, 48392f3ab15Sopenharmony_ci out: *mut u8, 48492f3ab15Sopenharmony_ci ) -> c_int; 48592f3ab15Sopenharmony_ci 48692f3ab15Sopenharmony_ci #[cfg(ossl110)] 48792f3ab15Sopenharmony_ci pub fn EVP_PBE_scrypt( 48892f3ab15Sopenharmony_ci pass: *const c_char, 48992f3ab15Sopenharmony_ci passlen: size_t, 49092f3ab15Sopenharmony_ci salt: *const c_uchar, 49192f3ab15Sopenharmony_ci saltlen: size_t, 49292f3ab15Sopenharmony_ci N: u64, 49392f3ab15Sopenharmony_ci r: u64, 49492f3ab15Sopenharmony_ci p: u64, 49592f3ab15Sopenharmony_ci maxmem: u64, 49692f3ab15Sopenharmony_ci key: *mut c_uchar, 49792f3ab15Sopenharmony_ci keylen: size_t, 49892f3ab15Sopenharmony_ci ) -> c_int; 49992f3ab15Sopenharmony_ci 50092f3ab15Sopenharmony_ci pub fn EVP_PKEY_CTX_new(k: *mut EVP_PKEY, e: *mut ENGINE) -> *mut EVP_PKEY_CTX; 50192f3ab15Sopenharmony_ci pub fn EVP_PKEY_CTX_new_id(id: c_int, e: *mut ENGINE) -> *mut EVP_PKEY_CTX; 50292f3ab15Sopenharmony_ci pub fn EVP_PKEY_CTX_free(ctx: *mut EVP_PKEY_CTX); 50392f3ab15Sopenharmony_ci 50492f3ab15Sopenharmony_ci pub fn EVP_PKEY_CTX_ctrl( 50592f3ab15Sopenharmony_ci ctx: *mut EVP_PKEY_CTX, 50692f3ab15Sopenharmony_ci keytype: c_int, 50792f3ab15Sopenharmony_ci optype: c_int, 50892f3ab15Sopenharmony_ci cmd: c_int, 50992f3ab15Sopenharmony_ci p1: c_int, 51092f3ab15Sopenharmony_ci p2: *mut c_void, 51192f3ab15Sopenharmony_ci ) -> c_int; 51292f3ab15Sopenharmony_ci 51392f3ab15Sopenharmony_ci #[cfg(ossl300)] 51492f3ab15Sopenharmony_ci pub fn EVP_PKEY_CTX_set_signature_md(ctx: *mut EVP_PKEY_CTX, md: *const EVP_MD) -> c_int; 51592f3ab15Sopenharmony_ci 51692f3ab15Sopenharmony_ci pub fn EVP_PKEY_new_mac_key( 51792f3ab15Sopenharmony_ci type_: c_int, 51892f3ab15Sopenharmony_ci e: *mut ENGINE, 51992f3ab15Sopenharmony_ci key: *const c_uchar, 52092f3ab15Sopenharmony_ci keylen: c_int, 52192f3ab15Sopenharmony_ci ) -> *mut EVP_PKEY; 52292f3ab15Sopenharmony_ci 52392f3ab15Sopenharmony_ci pub fn EVP_PKEY_derive_init(ctx: *mut EVP_PKEY_CTX) -> c_int; 52492f3ab15Sopenharmony_ci pub fn EVP_PKEY_derive_set_peer(ctx: *mut EVP_PKEY_CTX, peer: *mut EVP_PKEY) -> c_int; 52592f3ab15Sopenharmony_ci #[cfg(ossl300)] 52692f3ab15Sopenharmony_ci pub fn EVP_PKEY_derive_set_peer_ex( 52792f3ab15Sopenharmony_ci ctx: *mut EVP_PKEY_CTX, 52892f3ab15Sopenharmony_ci peer: *mut EVP_PKEY, 52992f3ab15Sopenharmony_ci validate_peer: c_int, 53092f3ab15Sopenharmony_ci ) -> c_int; 53192f3ab15Sopenharmony_ci pub fn EVP_PKEY_derive(ctx: *mut EVP_PKEY_CTX, key: *mut c_uchar, size: *mut size_t) -> c_int; 53292f3ab15Sopenharmony_ci 53392f3ab15Sopenharmony_ci #[cfg(ossl300)] 53492f3ab15Sopenharmony_ci pub fn EVP_PKEY_Q_keygen( 53592f3ab15Sopenharmony_ci libctx: *mut OSSL_LIB_CTX, 53692f3ab15Sopenharmony_ci propq: *const c_char, 53792f3ab15Sopenharmony_ci type_: *const c_char, 53892f3ab15Sopenharmony_ci ... 53992f3ab15Sopenharmony_ci ) -> *mut EVP_PKEY; 54092f3ab15Sopenharmony_ci pub fn EVP_PKEY_keygen_init(ctx: *mut EVP_PKEY_CTX) -> c_int; 54192f3ab15Sopenharmony_ci pub fn EVP_PKEY_keygen(ctx: *mut EVP_PKEY_CTX, key: *mut *mut EVP_PKEY) -> c_int; 54292f3ab15Sopenharmony_ci 54392f3ab15Sopenharmony_ci pub fn EVP_PKEY_sign_init(ctx: *mut EVP_PKEY_CTX) -> c_int; 54492f3ab15Sopenharmony_ci pub fn EVP_PKEY_sign( 54592f3ab15Sopenharmony_ci ctx: *mut EVP_PKEY_CTX, 54692f3ab15Sopenharmony_ci sig: *mut c_uchar, 54792f3ab15Sopenharmony_ci siglen: *mut size_t, 54892f3ab15Sopenharmony_ci tbs: *const c_uchar, 54992f3ab15Sopenharmony_ci tbslen: size_t, 55092f3ab15Sopenharmony_ci ) -> c_int; 55192f3ab15Sopenharmony_ci pub fn EVP_PKEY_verify_init(ctx: *mut EVP_PKEY_CTX) -> c_int; 55292f3ab15Sopenharmony_ci pub fn EVP_PKEY_verify( 55392f3ab15Sopenharmony_ci ctx: *mut EVP_PKEY_CTX, 55492f3ab15Sopenharmony_ci sig: *const c_uchar, 55592f3ab15Sopenharmony_ci siglen: size_t, 55692f3ab15Sopenharmony_ci tbs: *const c_uchar, 55792f3ab15Sopenharmony_ci tbslen: size_t, 55892f3ab15Sopenharmony_ci ) -> c_int; 55992f3ab15Sopenharmony_ci pub fn EVP_PKEY_encrypt_init(ctx: *mut EVP_PKEY_CTX) -> c_int; 56092f3ab15Sopenharmony_ci pub fn EVP_PKEY_encrypt( 56192f3ab15Sopenharmony_ci ctx: *mut EVP_PKEY_CTX, 56292f3ab15Sopenharmony_ci pout: *mut c_uchar, 56392f3ab15Sopenharmony_ci poutlen: *mut size_t, 56492f3ab15Sopenharmony_ci pin: *const c_uchar, 56592f3ab15Sopenharmony_ci pinlen: size_t, 56692f3ab15Sopenharmony_ci ) -> c_int; 56792f3ab15Sopenharmony_ci pub fn EVP_PKEY_decrypt_init(ctx: *mut EVP_PKEY_CTX) -> c_int; 56892f3ab15Sopenharmony_ci pub fn EVP_PKEY_decrypt( 56992f3ab15Sopenharmony_ci ctx: *mut EVP_PKEY_CTX, 57092f3ab15Sopenharmony_ci pout: *mut c_uchar, 57192f3ab15Sopenharmony_ci poutlen: *mut size_t, 57292f3ab15Sopenharmony_ci pin: *const c_uchar, 57392f3ab15Sopenharmony_ci pinlen: size_t, 57492f3ab15Sopenharmony_ci ) -> c_int; 57592f3ab15Sopenharmony_ci pub fn EVP_PKEY_verify_recover_init(ctx: *mut EVP_PKEY_CTX) -> c_int; 57692f3ab15Sopenharmony_ci pub fn EVP_PKEY_verify_recover( 57792f3ab15Sopenharmony_ci ctx: *mut EVP_PKEY_CTX, 57892f3ab15Sopenharmony_ci rout: *mut c_uchar, 57992f3ab15Sopenharmony_ci routlen: *mut size_t, 58092f3ab15Sopenharmony_ci sig: *const c_uchar, 58192f3ab15Sopenharmony_ci siglen: size_t, 58292f3ab15Sopenharmony_ci ) -> c_int; 58392f3ab15Sopenharmony_ci} 58492f3ab15Sopenharmony_ci 58592f3ab15Sopenharmony_ciconst_ptr_api! { 58692f3ab15Sopenharmony_ci extern "C" { 58792f3ab15Sopenharmony_ci pub fn EVP_PKCS82PKEY(p8: #[const_ptr_if(any(ossl110, libressl280))] PKCS8_PRIV_KEY_INFO) -> *mut EVP_PKEY; 58892f3ab15Sopenharmony_ci } 58992f3ab15Sopenharmony_ci} 59092f3ab15Sopenharmony_ci 59192f3ab15Sopenharmony_cicfg_if! { 59292f3ab15Sopenharmony_ci if #[cfg(any(ossl111, libressl370))] { 59392f3ab15Sopenharmony_ci extern "C" { 59492f3ab15Sopenharmony_ci pub fn EVP_PKEY_get_raw_public_key( 59592f3ab15Sopenharmony_ci pkey: *const EVP_PKEY, 59692f3ab15Sopenharmony_ci ppub: *mut c_uchar, 59792f3ab15Sopenharmony_ci len: *mut size_t, 59892f3ab15Sopenharmony_ci ) -> c_int; 59992f3ab15Sopenharmony_ci pub fn EVP_PKEY_new_raw_public_key( 60092f3ab15Sopenharmony_ci ttype: c_int, 60192f3ab15Sopenharmony_ci e: *mut ENGINE, 60292f3ab15Sopenharmony_ci key: *const c_uchar, 60392f3ab15Sopenharmony_ci keylen: size_t, 60492f3ab15Sopenharmony_ci ) -> *mut EVP_PKEY; 60592f3ab15Sopenharmony_ci pub fn EVP_PKEY_get_raw_private_key( 60692f3ab15Sopenharmony_ci pkey: *const EVP_PKEY, 60792f3ab15Sopenharmony_ci ppriv: *mut c_uchar, 60892f3ab15Sopenharmony_ci len: *mut size_t, 60992f3ab15Sopenharmony_ci ) -> c_int; 61092f3ab15Sopenharmony_ci pub fn EVP_PKEY_new_raw_private_key( 61192f3ab15Sopenharmony_ci ttype: c_int, 61292f3ab15Sopenharmony_ci e: *mut ENGINE, 61392f3ab15Sopenharmony_ci key: *const c_uchar, 61492f3ab15Sopenharmony_ci keylen: size_t, 61592f3ab15Sopenharmony_ci ) -> *mut EVP_PKEY; 61692f3ab15Sopenharmony_ci } 61792f3ab15Sopenharmony_ci } 61892f3ab15Sopenharmony_ci} 61992f3ab15Sopenharmony_ci 62092f3ab15Sopenharmony_ciextern "C" { 62192f3ab15Sopenharmony_ci pub fn EVP_EncodeBlock(dst: *mut c_uchar, src: *const c_uchar, src_len: c_int) -> c_int; 62292f3ab15Sopenharmony_ci pub fn EVP_DecodeBlock(dst: *mut c_uchar, src: *const c_uchar, src_len: c_int) -> c_int; 62392f3ab15Sopenharmony_ci} 624