diff --git a/openssl-sys/src/lib.rs b/openssl-sys/src/lib.rs index 6ba8668e..74d1d03f 100644 --- a/openssl-sys/src/lib.rs +++ b/openssl-sys/src/lib.rs @@ -1391,6 +1391,7 @@ extern { pub fn EC_KEY_set_private_key(key: *mut EC_KEY, key: *const BIGNUM) -> c_int; pub fn EC_KEY_get0_private_key(key: *const EC_KEY) -> *const BIGNUM; pub fn EC_KEY_generate_key(key: *mut EC_KEY) -> c_int; + pub fn EC_KEY_check_key(key: *const EC_KEY) -> c_int; pub fn EC_KEY_free(key: *mut EC_KEY); pub fn EC_GFp_simple_method() -> *const EC_METHOD; diff --git a/openssl/src/ec_key.rs b/openssl/src/ec_key.rs index f9b8f58c..6cc95d11 100644 --- a/openssl/src/ec_key.rs +++ b/openssl/src/ec_key.rs @@ -249,6 +249,11 @@ impl EcKeyRef { } } } + + /// Checks the key for validity. + pub fn check_key(&self) -> Result<(), ErrorStack> { + unsafe { cvt(ffi::EC_KEY_check_key(self.as_ptr())).map(|_| ()) } + } } impl EcKey {