Commit 702bc48b authored by Nathaniel McCallum's avatar Nathaniel McCallum
Browse files

Expose EC_GROUP_get_curve_name()

This gives us the ability to get the Nid from an EcGroupRef.
parent d9cb5433
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -30,6 +30,8 @@ extern "C" {
        ctx: *mut BN_CTX,
    ) -> 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_get_curve_GFp(
+10 −0
Original line number Diff line number Diff line
@@ -237,6 +237,16 @@ impl EcGroupRef {
            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! {