aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/ec.rs
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2017-04-11 10:04:57 -0700
committerGitHub <[email protected]>2017-04-11 10:04:57 -0700
commit3439ec6f41e9b6849f62e0eb6524020ec67d918b (patch)
treec8da9a4fe516451a75e5ac30052b67d68c5c25d4 /openssl/src/ec.rs
parentDon't exclude test data from package (diff)
parentAdd new EC/PKEY methods to permit deriving shared secrets. (diff)
downloadrust-openssl-3439ec6f41e9b6849f62e0eb6524020ec67d918b.tar.xz
rust-openssl-3439ec6f41e9b6849f62e0eb6524020ec67d918b.zip
Merge pull request #613 from aosmond/add_evp_pkey_derive
Add new EC/PKEY methods to permit deriving shared secrets.
Diffstat (limited to 'openssl/src/ec.rs')
-rw-r--r--openssl/src/ec.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/openssl/src/ec.rs b/openssl/src/ec.rs
index 37815021..33c15569 100644
--- a/openssl/src/ec.rs
+++ b/openssl/src/ec.rs
@@ -314,6 +314,10 @@ impl EcKeyRef {
pub fn check_key(&self) -> Result<(), ErrorStack> {
unsafe { cvt(ffi::EC_KEY_check_key(self.as_ptr())).map(|_| ()) }
}
+
+ pub fn to_owned(&self) -> Result<EcKey, ErrorStack> {
+ unsafe { cvt_p(ffi::EC_KEY_dup(self.as_ptr())).map(EcKey) }
+ }
}
impl EcKey {
@@ -441,6 +445,13 @@ mod test {
}
#[test]
+ fn dup() {
+ let group = EcGroup::from_curve_name(nid::X9_62_PRIME256V1).unwrap();
+ let key = EcKey::generate(&group).unwrap();
+ key.to_owned().unwrap();
+ }
+
+ #[test]
fn point_new() {
let group = EcGroup::from_curve_name(nid::X9_62_PRIME256V1).unwrap();
EcPoint::new(&group).unwrap();