Add PKey::from_rsa
This commit is contained in:
parent
6e5cd7ef47
commit
6b1016c86e
|
|
@ -284,6 +284,7 @@ pub const BIO_FLAGS_SHOULD_RETRY: c_int = 0x08;
|
|||
pub const CRYPTO_LOCK: c_int = 1;
|
||||
|
||||
pub const EVP_MAX_MD_SIZE: c_uint = 64;
|
||||
pub const EVP_PKEY_RSA: c_int = NID_rsaEncryption;
|
||||
|
||||
pub const MBSTRING_ASC: c_int = MBSTRING_FLAG | 1;
|
||||
pub const MBSTRING_BMP: c_int = MBSTRING_FLAG | 2;
|
||||
|
|
@ -291,6 +292,7 @@ pub const MBSTRING_FLAG: c_int = 0x1000;
|
|||
pub const MBSTRING_UNIV: c_int = MBSTRING_FLAG | 4;
|
||||
pub const MBSTRING_UTF8: c_int = MBSTRING_FLAG;
|
||||
|
||||
pub const NID_rsaEncryption: c_int = 6;
|
||||
pub const NID_ext_key_usage: c_int = 126;
|
||||
pub const NID_key_usage: c_int = 83;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
use libc::{c_void, c_char};
|
||||
use std::ptr;
|
||||
use bio::{MemBio, MemBioSlice};
|
||||
|
||||
use std::mem;
|
||||
use ffi;
|
||||
|
||||
use bio::{MemBio, MemBioSlice};
|
||||
use crypto::rsa::RSA;
|
||||
use error::ErrorStack;
|
||||
use crypto::util::{CallbackState, invoke_passwd_cb};
|
||||
|
|
@ -14,11 +15,14 @@ unsafe impl Sync for PKey {}
|
|||
|
||||
/// Represents a public key, optionally with a private key attached.
|
||||
impl PKey {
|
||||
pub fn new() -> Result<PKey, ErrorStack> {
|
||||
ffi::init();
|
||||
/// Create a new `PKey` containing an RSA key.
|
||||
pub fn from_rsa(rsa: RSA) -> Result<PKey, ErrorStack> {
|
||||
unsafe {
|
||||
let evp = try_ssl_null!(ffi::EVP_PKEY_new());
|
||||
Ok(PKey::from_handle(evp))
|
||||
let pkey = PKey(evp);
|
||||
try_ssl!(ffi::EVP_PKEY_assign(pkey.0, ffi::EVP_PKEY_RSA, rsa.as_ptr() as *mut _));
|
||||
mem::forget(rsa);
|
||||
Ok(pkey)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -118,8 +118,7 @@ impl X509StoreContext {
|
|||
/// use openssl::x509::extension::{Extension, KeyUsageOption};
|
||||
///
|
||||
/// let rsa = RSA::generate(2048).unwrap();
|
||||
/// let mut pkey = PKey::new().unwrap();
|
||||
/// pkey.set_rsa(&rsa).unwrap();
|
||||
/// let pkey = PKey::from_rsa(rsa).unwrap();
|
||||
///
|
||||
/// let gen = X509Generator::new()
|
||||
/// .set_valid_period(365*2)
|
||||
|
|
|
|||
|
|
@ -26,8 +26,7 @@ fn get_generator() -> X509Generator {
|
|||
|
||||
fn pkey() -> PKey {
|
||||
let rsa = RSA::generate(2048).unwrap();
|
||||
let mut pkey = PKey::new().unwrap();
|
||||
pkey.set_rsa(&rsa).unwrap();
|
||||
let mut pkey = PKey::from_rsa(rsa).unwrap();
|
||||
pkey
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue