192f3ab15Sopenharmony_ciuse libc::*; 292f3ab15Sopenharmony_ciuse std::ptr; 392f3ab15Sopenharmony_ci 492f3ab15Sopenharmony_ciuse super::super::*; 592f3ab15Sopenharmony_ci 692f3ab15Sopenharmony_cipub const RSA_F4: c_long = 0x10001; 792f3ab15Sopenharmony_ci 892f3ab15Sopenharmony_cicfg_if! { 992f3ab15Sopenharmony_ci if #[cfg(not(ossl300))] { 1092f3ab15Sopenharmony_ci pub unsafe fn EVP_PKEY_CTX_set_rsa_padding(ctx: *mut EVP_PKEY_CTX, pad: c_int) -> c_int { 1192f3ab15Sopenharmony_ci EVP_PKEY_CTX_ctrl( 1292f3ab15Sopenharmony_ci ctx, 1392f3ab15Sopenharmony_ci EVP_PKEY_RSA, 1492f3ab15Sopenharmony_ci -1, 1592f3ab15Sopenharmony_ci EVP_PKEY_CTRL_RSA_PADDING, 1692f3ab15Sopenharmony_ci pad, 1792f3ab15Sopenharmony_ci ptr::null_mut(), 1892f3ab15Sopenharmony_ci ) 1992f3ab15Sopenharmony_ci } 2092f3ab15Sopenharmony_ci pub unsafe fn EVP_PKEY_CTX_get_rsa_padding(ctx: *mut EVP_PKEY_CTX, ppad: *mut c_int) -> c_int { 2192f3ab15Sopenharmony_ci EVP_PKEY_CTX_ctrl( 2292f3ab15Sopenharmony_ci ctx, 2392f3ab15Sopenharmony_ci EVP_PKEY_RSA, 2492f3ab15Sopenharmony_ci -1, 2592f3ab15Sopenharmony_ci EVP_PKEY_CTRL_GET_RSA_PADDING, 2692f3ab15Sopenharmony_ci 0, 2792f3ab15Sopenharmony_ci ppad as *mut c_void, 2892f3ab15Sopenharmony_ci ) 2992f3ab15Sopenharmony_ci } 3092f3ab15Sopenharmony_ci 3192f3ab15Sopenharmony_ci pub unsafe fn EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx: *mut EVP_PKEY_CTX, len: c_int) -> c_int { 3292f3ab15Sopenharmony_ci EVP_PKEY_CTX_ctrl( 3392f3ab15Sopenharmony_ci ctx, 3492f3ab15Sopenharmony_ci EVP_PKEY_RSA, 3592f3ab15Sopenharmony_ci EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY, 3692f3ab15Sopenharmony_ci EVP_PKEY_CTRL_RSA_PSS_SALTLEN, 3792f3ab15Sopenharmony_ci len, 3892f3ab15Sopenharmony_ci ptr::null_mut(), 3992f3ab15Sopenharmony_ci ) 4092f3ab15Sopenharmony_ci } 4192f3ab15Sopenharmony_ci 4292f3ab15Sopenharmony_ci pub unsafe fn EVP_PKEY_CTX_set_rsa_mgf1_md(ctx: *mut EVP_PKEY_CTX, md: *mut EVP_MD) -> c_int { 4392f3ab15Sopenharmony_ci EVP_PKEY_CTX_ctrl( 4492f3ab15Sopenharmony_ci ctx, 4592f3ab15Sopenharmony_ci EVP_PKEY_RSA, 4692f3ab15Sopenharmony_ci EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, 4792f3ab15Sopenharmony_ci EVP_PKEY_CTRL_RSA_MGF1_MD, 4892f3ab15Sopenharmony_ci 0, 4992f3ab15Sopenharmony_ci md as *mut c_void, 5092f3ab15Sopenharmony_ci ) 5192f3ab15Sopenharmony_ci } 5292f3ab15Sopenharmony_ci } 5392f3ab15Sopenharmony_ci} 5492f3ab15Sopenharmony_ci 5592f3ab15Sopenharmony_ci#[cfg(any(ossl102, libressl310))] 5692f3ab15Sopenharmony_cipub unsafe fn EVP_PKEY_CTX_set_rsa_oaep_md(ctx: *mut EVP_PKEY_CTX, md: *mut EVP_MD) -> c_int { 5792f3ab15Sopenharmony_ci EVP_PKEY_CTX_ctrl( 5892f3ab15Sopenharmony_ci ctx, 5992f3ab15Sopenharmony_ci EVP_PKEY_RSA, 6092f3ab15Sopenharmony_ci EVP_PKEY_OP_TYPE_CRYPT, 6192f3ab15Sopenharmony_ci EVP_PKEY_CTRL_RSA_OAEP_MD, 6292f3ab15Sopenharmony_ci 0, 6392f3ab15Sopenharmony_ci md as *mut c_void, 6492f3ab15Sopenharmony_ci ) 6592f3ab15Sopenharmony_ci} 6692f3ab15Sopenharmony_ci 6792f3ab15Sopenharmony_ci#[cfg(any(ossl102, libressl310))] 6892f3ab15Sopenharmony_cipub unsafe fn EVP_PKEY_CTX_set0_rsa_oaep_label( 6992f3ab15Sopenharmony_ci ctx: *mut EVP_PKEY_CTX, 7092f3ab15Sopenharmony_ci label: *mut c_void, 7192f3ab15Sopenharmony_ci len: c_int, 7292f3ab15Sopenharmony_ci) -> c_int { 7392f3ab15Sopenharmony_ci EVP_PKEY_CTX_ctrl( 7492f3ab15Sopenharmony_ci ctx, 7592f3ab15Sopenharmony_ci EVP_PKEY_RSA, 7692f3ab15Sopenharmony_ci EVP_PKEY_OP_TYPE_CRYPT, 7792f3ab15Sopenharmony_ci EVP_PKEY_CTRL_RSA_OAEP_LABEL, 7892f3ab15Sopenharmony_ci len, 7992f3ab15Sopenharmony_ci label as *mut c_void, 8092f3ab15Sopenharmony_ci ) 8192f3ab15Sopenharmony_ci} 8292f3ab15Sopenharmony_ci 8392f3ab15Sopenharmony_cipub const EVP_PKEY_CTRL_RSA_PADDING: c_int = EVP_PKEY_ALG_CTRL + 1; 8492f3ab15Sopenharmony_cipub const EVP_PKEY_CTRL_RSA_PSS_SALTLEN: c_int = EVP_PKEY_ALG_CTRL + 2; 8592f3ab15Sopenharmony_ci 8692f3ab15Sopenharmony_cipub const EVP_PKEY_CTRL_RSA_MGF1_MD: c_int = EVP_PKEY_ALG_CTRL + 5; 8792f3ab15Sopenharmony_ci 8892f3ab15Sopenharmony_cipub const EVP_PKEY_CTRL_GET_RSA_PADDING: c_int = EVP_PKEY_ALG_CTRL + 6; 8992f3ab15Sopenharmony_ci 9092f3ab15Sopenharmony_ci#[cfg(any(ossl102, libressl310))] 9192f3ab15Sopenharmony_cipub const EVP_PKEY_CTRL_RSA_OAEP_MD: c_int = EVP_PKEY_ALG_CTRL + 9; 9292f3ab15Sopenharmony_ci#[cfg(any(ossl102, libressl310))] 9392f3ab15Sopenharmony_cipub const EVP_PKEY_CTRL_RSA_OAEP_LABEL: c_int = EVP_PKEY_ALG_CTRL + 10; 9492f3ab15Sopenharmony_ci 9592f3ab15Sopenharmony_cipub const RSA_PKCS1_PADDING: c_int = 1; 9692f3ab15Sopenharmony_ci#[cfg(not(ossl300))] 9792f3ab15Sopenharmony_cipub const RSA_SSLV23_PADDING: c_int = 2; 9892f3ab15Sopenharmony_cipub const RSA_NO_PADDING: c_int = 3; 9992f3ab15Sopenharmony_cipub const RSA_PKCS1_OAEP_PADDING: c_int = 4; 10092f3ab15Sopenharmony_cipub const RSA_X931_PADDING: c_int = 5; 10192f3ab15Sopenharmony_cipub const RSA_PKCS1_PSS_PADDING: c_int = 6; 102