diff options
| author | Valerii Hiora <[email protected]> | 2014-10-08 09:07:10 +0300 |
|---|---|---|
| committer | Valerii Hiora <[email protected]> | 2014-10-08 19:26:38 +0300 |
| commit | fe21d4bb666ac3fbea3101d9d5ad8afe972d0e9b (patch) | |
| tree | c8964af75d74b97a4ff408d2aaad7510ed2c939b /src | |
| parent | Minor doc fixes and feature mentions (diff) | |
| download | rust-openssl-fe21d4bb666ac3fbea3101d9d5ad8afe972d0e9b.tar.xz rust-openssl-fe21d4bb666ac3fbea3101d9d5ad8afe972d0e9b.zip | |
X509 Generator sample
Forcing static linking for lib wrapped as in other case doc tests
fail to locate the static library
Diffstat (limited to 'src')
| -rwxr-xr-x | src/ffi.rs | 2 | ||||
| -rw-r--r-- | src/x509/mod.rs | 30 |
2 files changed, 31 insertions, 1 deletions
@@ -193,7 +193,7 @@ extern { } pub unsafe fn BN_is_zero(a: *mut BIGNUM) -> c_int { bn_is_zero(a) } /* Special import from native/bn_is_zero.c */ -#[link(name="wrapped")] +#[link(name = "wrapped", kind = "static")] extern "C" { pub fn bn_is_zero(a: *mut BIGNUM) -> c_int; } diff --git a/src/x509/mod.rs b/src/x509/mod.rs index f04f6ff1..88b81d7e 100644 --- a/src/x509/mod.rs +++ b/src/x509/mod.rs @@ -133,6 +133,36 @@ impl<'a, T: AsStr<'a>> ToStr for Vec<T> { } #[allow(non_snake_case)] +/// Generator of private key/certificate pairs +/// +/// # Example +/// +/// ``` +/// use std::io::{File, Open, Write}; +/// # use std::io::fs; +/// +/// use openssl::crypto::hash::SHA256; +/// use openssl::x509::{DigitalSignature, X509Generator}; +/// +/// let gen = X509Generator::new() +/// .set_bitlength(2048) +/// .set_valid_period(365*2) +/// .set_CN("SuperMegaCorp Inc.") +/// .set_sign_hash(SHA256) +/// .set_usage([DigitalSignature]); +/// +/// let (cert, pkey) = gen.generate().unwrap(); +/// +/// let cert_path = Path::new("doc_cert.pem"); +/// let mut file = File::open_mode(&cert_path, Open, Write).unwrap(); +/// assert!(cert.write_pem(&mut file).is_ok()); +/// # let _ = fs::unlink(&cert_path); +/// +/// let pkey_path = Path::new("doc_key.pem"); +/// let mut file = File::open_mode(&pkey_path, Open, Write).unwrap(); +/// assert!(pkey.write_pem(&mut file).is_ok()); +/// # let _ = fs::unlink(&pkey_path); +/// ``` pub struct X509Generator { bits: uint, days: uint, |