Merge pull request #1084 from npmccallum/nid
Add the ability to get Nid from MessageDigest and EcGroupRef
This commit is contained in:
commit
8c5ce91d07
|
|
@ -30,6 +30,8 @@ extern "C" {
|
||||||
ctx: *mut BN_CTX,
|
ctx: *mut BN_CTX,
|
||||||
) -> c_int;
|
) -> c_int;
|
||||||
|
|
||||||
|
pub fn EC_GROUP_get_curve_name(group: *const EC_GROUP) -> c_int;
|
||||||
|
|
||||||
pub fn EC_GROUP_set_asn1_flag(key: *mut EC_GROUP, flag: c_int);
|
pub fn EC_GROUP_set_asn1_flag(key: *mut EC_GROUP, flag: c_int);
|
||||||
|
|
||||||
pub fn EC_GROUP_get_curve_GFp(
|
pub fn EC_GROUP_get_curve_GFp(
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ pub unsafe fn EVP_get_digestbynid(type_: c_int) -> *const EVP_MD {
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
pub fn EVP_MD_size(md: *const EVP_MD) -> c_int;
|
pub fn EVP_MD_size(md: *const EVP_MD) -> c_int;
|
||||||
|
pub fn EVP_MD_type(md: *const EVP_MD) -> c_int;
|
||||||
|
|
||||||
#[cfg(any(ossl110, libressl273))]
|
#[cfg(any(ossl110, libressl273))]
|
||||||
pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> c_int;
|
pub fn EVP_CIPHER_key_length(cipher: *const EVP_CIPHER) -> c_int;
|
||||||
|
|
|
||||||
|
|
@ -237,6 +237,16 @@ impl EcGroupRef {
|
||||||
ffi::EC_GROUP_set_asn1_flag(self.as_ptr(), flag.0);
|
ffi::EC_GROUP_set_asn1_flag(self.as_ptr(), flag.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the name of the curve, if a name is associated.
|
||||||
|
///
|
||||||
|
/// OpenSSL documentation at [`EC_GROUP_get_curve_name`]
|
||||||
|
///
|
||||||
|
/// [`EC_GROUP_get_curve_name`]: https://www.openssl.org/docs/man1.1.0/crypto/EC_GROUP_get_curve_name.html
|
||||||
|
pub fn curve_name(&self) -> Option<Nid> {
|
||||||
|
let nid = unsafe { ffi::EC_GROUP_get_curve_name(self.as_ptr()) };
|
||||||
|
if nid > 0 { Some(Nid::from_raw(nid)) } else { None }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreign_type_and_impl_send_sync! {
|
foreign_type_and_impl_send_sync! {
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,11 @@ impl MessageDigest {
|
||||||
pub fn size(&self) -> usize {
|
pub fn size(&self) -> usize {
|
||||||
unsafe { ffi::EVP_MD_size(self.0) as usize }
|
unsafe { ffi::EVP_MD_size(self.0) as usize }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// The name of the digest
|
||||||
|
pub fn type_(&self) -> Nid {
|
||||||
|
Nid::from_raw(unsafe { ffi::EVP_MD_type(self.0) })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl Sync for MessageDigest {}
|
unsafe impl Sync for MessageDigest {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue