diff options
| author | Steven Fackler <[email protected]> | 2015-03-21 13:53:25 -0400 |
|---|---|---|
| committer | Steven Fackler <[email protected]> | 2015-03-21 13:53:25 -0400 |
| commit | 20335c4f00995da172c3c0b4f1d64c3a84c9772c (patch) | |
| tree | cd75902435c2940a2479cc455333368ab672ebd5 /openssl/src | |
| parent | Fix doc test (diff) | |
| parent | Add X509Generator::sign() (diff) | |
| download | rust-openssl-20335c4f00995da172c3c0b4f1d64c3a84c9772c.tar.xz rust-openssl-20335c4f00995da172c3c0b4f1d64c3a84c9772c.zip | |
Merge pull request #187 from manuels/x509_sign
Add X509Generator::sign()
Diffstat (limited to 'openssl/src')
| -rw-r--r-- | openssl/src/x509/mod.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index 33ed1fa5..b031a239 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -298,6 +298,15 @@ impl X509Generator { let mut p_key = PKey::new(); p_key.gen(self.bits as usize); + let x509 = try!(self.sign(&p_key)); + Ok((x509, p_key)) + } + + /// Signs certificate with a private key and returns it + /// Note: That the bit-length of the private key is used (set_bitlength is ignored) + pub fn sign<'a>(&self, p_key: &PKey) -> Result<X509<'a>, SslError> { + ffi::init(); + unsafe { let x509 = ffi::X509_new(); try_ssl_null!(x509); @@ -338,7 +347,7 @@ impl X509Generator { let hash_fn = self.hash_type.evp_md(); try_ssl!(ffi::X509_sign(x509.handle, p_key.get_handle(), hash_fn)); - Ok((x509, p_key)) + Ok(x509) } } } |