diff options
| author | Steven Fackler <[email protected]> | 2017-04-11 10:04:57 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-04-11 10:04:57 -0700 |
| commit | 3439ec6f41e9b6849f62e0eb6524020ec67d918b (patch) | |
| tree | c8da9a4fe516451a75e5ac30052b67d68c5c25d4 /openssl/src/ec.rs | |
| parent | Don't exclude test data from package (diff) | |
| parent | Add new EC/PKEY methods to permit deriving shared secrets. (diff) | |
| download | rust-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.rs | 11 |
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(); |