aboutsummaryrefslogtreecommitdiff
path: root/openssl/src/x509
diff options
context:
space:
mode:
authorSteven Fackler <[email protected]>2017-01-22 10:44:59 +0000
committerSteven Fackler <[email protected]>2017-01-22 10:44:59 +0000
commit54900976bb76d3cef4a78df48a3645b0ac49bb46 (patch)
treeef4194826e8a68984b6fd5353f03157541684cf3 /openssl/src/x509
parentFix test warnings (diff)
downloadrust-openssl-54900976bb76d3cef4a78df48a3645b0ac49bb46.tar.xz
rust-openssl-54900976bb76d3cef4a78df48a3645b0ac49bb46.zip
Support EC_GROUP_set_asn1_flag
Closes #561
Diffstat (limited to 'openssl/src/x509')
-rw-r--r--openssl/src/x509/tests.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/openssl/src/x509/tests.rs b/openssl/src/x509/tests.rs
index f89b7267..01cbf2ec 100644
--- a/openssl/src/x509/tests.rs
+++ b/openssl/src/x509/tests.rs
@@ -1,8 +1,11 @@
use hex::{FromHex, ToHex};
+use ec::{NAMED_CURVE, EcGroup, EcKey};
use hash::MessageDigest;
+use nid::X9_62_PRIME256V1;
use pkey::PKey;
use rsa::Rsa;
+use ssl::{SslMethod, SslContextBuilder};
use x509::{X509, X509Generator};
use x509::extension::Extension::{KeyUsage, ExtKeyUsage, SubjectAltName, OtherNid, OtherStr};
use x509::extension::AltNameOption as SAN;
@@ -197,3 +200,23 @@ fn issued() {
ca.issued(&cert).unwrap();
cert.issued(&cert).err().unwrap();
}
+
+#[test]
+fn ecdsa_cert() {
+ let mut group = EcGroup::from_curve_name(X9_62_PRIME256V1).unwrap();
+ group.set_asn1_flag(NAMED_CURVE);
+ let key = EcKey::generate(&group).unwrap();
+ let key = PKey::from_ec_key(key).unwrap();
+
+ let cert = X509Generator::new()
+ .set_valid_period(365)
+ .add_name("CN".to_owned(), "TestServer".to_owned())
+ .set_sign_hash(MessageDigest::sha256())
+ .sign(&key)
+ .unwrap();
+
+ let mut ctx = SslContextBuilder::new(SslMethod::tls()).unwrap();
+ ctx.set_certificate(&cert).unwrap();
+ ctx.set_private_key(&key).unwrap();
+ ctx.check_private_key().unwrap();
+}