102 lines
2.8 KiB
Rust
102 lines
2.8 KiB
Rust
use libc::*;
|
|
use std::ptr;
|
|
|
|
use *;
|
|
|
|
pub const RSA_F4: c_long = 0x10001;
|
|
|
|
cfg_if! {
|
|
if #[cfg(not(ossl300))] {
|
|
pub unsafe fn EVP_PKEY_CTX_set_rsa_padding(ctx: *mut EVP_PKEY_CTX, pad: c_int) -> c_int {
|
|
EVP_PKEY_CTX_ctrl(
|
|
ctx,
|
|
EVP_PKEY_RSA,
|
|
-1,
|
|
EVP_PKEY_CTRL_RSA_PADDING,
|
|
pad,
|
|
ptr::null_mut(),
|
|
)
|
|
}
|
|
pub unsafe fn EVP_PKEY_CTX_get_rsa_padding(ctx: *mut EVP_PKEY_CTX, ppad: *mut c_int) -> c_int {
|
|
EVP_PKEY_CTX_ctrl(
|
|
ctx,
|
|
EVP_PKEY_RSA,
|
|
-1,
|
|
EVP_PKEY_CTRL_GET_RSA_PADDING,
|
|
0,
|
|
ppad as *mut c_void,
|
|
)
|
|
}
|
|
|
|
pub unsafe fn EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx: *mut EVP_PKEY_CTX, len: c_int) -> c_int {
|
|
EVP_PKEY_CTX_ctrl(
|
|
ctx,
|
|
EVP_PKEY_RSA,
|
|
EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY,
|
|
EVP_PKEY_CTRL_RSA_PSS_SALTLEN,
|
|
len,
|
|
ptr::null_mut(),
|
|
)
|
|
}
|
|
|
|
pub unsafe fn EVP_PKEY_CTX_set_rsa_mgf1_md(ctx: *mut EVP_PKEY_CTX, md: *mut EVP_MD) -> c_int {
|
|
EVP_PKEY_CTX_ctrl(
|
|
ctx,
|
|
EVP_PKEY_RSA,
|
|
EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT,
|
|
EVP_PKEY_CTRL_RSA_MGF1_MD,
|
|
0,
|
|
md as *mut c_void,
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
#[cfg(any(ossl102, libressl310))]
|
|
pub unsafe fn EVP_PKEY_CTX_set_rsa_oaep_md(ctx: *mut EVP_PKEY_CTX, md: *mut EVP_MD) -> c_int {
|
|
EVP_PKEY_CTX_ctrl(
|
|
ctx,
|
|
EVP_PKEY_RSA,
|
|
EVP_PKEY_OP_TYPE_CRYPT,
|
|
EVP_PKEY_CTRL_RSA_OAEP_MD,
|
|
0,
|
|
md as *mut c_void,
|
|
)
|
|
}
|
|
|
|
#[cfg(any(ossl102, libressl310))]
|
|
pub unsafe fn EVP_PKEY_CTX_set0_rsa_oaep_label(
|
|
ctx: *mut EVP_PKEY_CTX,
|
|
label: *mut c_void,
|
|
len: c_int,
|
|
) -> c_int {
|
|
EVP_PKEY_CTX_ctrl(
|
|
ctx,
|
|
EVP_PKEY_RSA,
|
|
EVP_PKEY_OP_TYPE_CRYPT,
|
|
EVP_PKEY_CTRL_RSA_OAEP_LABEL,
|
|
len,
|
|
label as *mut c_void,
|
|
)
|
|
}
|
|
|
|
pub const EVP_PKEY_CTRL_RSA_PADDING: c_int = EVP_PKEY_ALG_CTRL + 1;
|
|
pub const EVP_PKEY_CTRL_RSA_PSS_SALTLEN: c_int = EVP_PKEY_ALG_CTRL + 2;
|
|
|
|
pub const EVP_PKEY_CTRL_RSA_MGF1_MD: c_int = EVP_PKEY_ALG_CTRL + 5;
|
|
|
|
pub const EVP_PKEY_CTRL_GET_RSA_PADDING: c_int = EVP_PKEY_ALG_CTRL + 6;
|
|
|
|
#[cfg(any(ossl102, libressl310))]
|
|
pub const EVP_PKEY_CTRL_RSA_OAEP_MD: c_int = EVP_PKEY_ALG_CTRL + 9;
|
|
#[cfg(any(ossl102, libressl310))]
|
|
pub const EVP_PKEY_CTRL_RSA_OAEP_LABEL: c_int = EVP_PKEY_ALG_CTRL + 10;
|
|
|
|
pub const RSA_PKCS1_PADDING: c_int = 1;
|
|
#[cfg(not(ossl300))]
|
|
pub const RSA_SSLV23_PADDING: c_int = 2;
|
|
pub const RSA_NO_PADDING: c_int = 3;
|
|
pub const RSA_PKCS1_OAEP_PADDING: c_int = 4;
|
|
pub const RSA_X931_PADDING: c_int = 5;
|
|
pub const RSA_PKCS1_PSS_PADDING: c_int = 6;
|