Add PKey::bits
This commit is contained in:
parent
7c9afd8c99
commit
9b5c62b053
|
|
@ -600,6 +600,7 @@ extern {
|
|||
line: c_int) -> c_int;
|
||||
pub fn EVP_MD_CTX_create() -> *mut EVP_MD_CTX;
|
||||
pub fn EVP_MD_CTX_destroy(ctx: *mut EVP_MD_CTX);
|
||||
pub fn EVP_PKEY_bits(key: *mut EVP_PKEY) -> c_int;
|
||||
|
||||
pub fn sk_num(st: *const _STACK) -> c_int;
|
||||
pub fn sk_value(st: *const _STACK, n: c_int) -> *mut c_void;
|
||||
|
|
|
|||
|
|
@ -147,6 +147,7 @@ extern {
|
|||
pub fn X509_STORE_CTX_get0_chain(ctx: *mut ::X509_STORE_CTX) -> *mut stack_st_X509;
|
||||
pub fn EVP_MD_CTX_new() -> *mut EVP_MD_CTX;
|
||||
pub fn EVP_MD_CTX_free(ctx: *mut EVP_MD_CTX);
|
||||
pub fn EVP_PKEY_bits(key: *const EVP_PKEY) -> c_int;
|
||||
|
||||
pub fn OpenSSL_version_num() -> c_ulong;
|
||||
pub fn OpenSSL_version(key: c_int) -> *const c_char;
|
||||
|
|
|
|||
|
|
@ -92,6 +92,15 @@ impl PKeyRef {
|
|||
Ok(mem_bio.get_buf().to_owned())
|
||||
}
|
||||
|
||||
/// Returns the size of the key.
|
||||
///
|
||||
/// This corresponds to the bit length of the modulus of an RSA key, and the bit length of the
|
||||
/// group order for an elliptic curve key, for example.
|
||||
pub fn bits(&self) -> usize {
|
||||
unsafe { ffi::EVP_PKEY_bits(self.as_ptr()) as usize }
|
||||
}
|
||||
|
||||
/// Compares the public component of this key with another.
|
||||
pub fn public_eq(&self, other: &PKeyRef) -> bool {
|
||||
unsafe { ffi::EVP_PKEY_cmp(self.as_ptr(), other.as_ptr()) == 1 }
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue