aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/ec_key.rs
diff options
context:
space:
mode:
Diffstat (limited to 'openssl/src/ec_key.rs')
-rw-r--r--openssl/src/ec_key.rs24
1 files changed, 24 insertions, 0 deletions
diff --git a/openssl/src/ec_key.rs b/openssl/src/ec_key.rs
new file mode 100644
index 00000000..41501c14
--- /dev/null
+++ b/openssl/src/ec_key.rs
@@ -0,0 +1,24 @@
+use ffi;
+
+use cvt_p;
+use error::ErrorStack;
+use nid::Nid;
+
+type_!(EcKey, EcKeyRef, ffi::EC_KEY, ffi::EC_KEY_free);
+
+impl EcKey {
+ pub fn new_by_curve_name(nid: Nid) -> Result<EcKey, ErrorStack> {
+ unsafe { cvt_p(ffi::EC_KEY_new_by_curve_name(nid.as_raw())).map(EcKey) }
+ }
+}
+
+#[cfg(test)]
+mod test {
+ use nid;
+ use super::*;
+
+ #[test]
+ fn new_by_curve_name() {
+ EcKey::new_by_curve_name(nid::X9_62_PRIME256V1).unwrap();
+ }
+}