Struct openssl::x509::X509Generator [-]  [+] [src]

pub struct X509Generator {
    // some fields omitted
}

Generator of private key/certificate pairs

Example

use std::io::{File, Open, Write};

use openssl::crypto::hash::HashType;
use openssl::x509::{KeyUsage, X509Generator};

let gen = X509Generator::new()
       .set_bitlength(2048)
       .set_valid_period(365*2)
       .set_CN("SuperMegaCorp Inc.")
       .set_sign_hash(HashType::SHA256)
       .set_usage(&[KeyUsage::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 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());

Methods

impl X509Generator

fn new() -> X509Generator

Creates a new generator with the following defaults:

bit length: 1024

validity period: 365 days

CN: "rust-openssl"

hash: SHA1

fn set_bitlength(self, bits: u32) -> X509Generator

Sets desired bit length

fn set_valid_period(self, days: u32) -> X509Generator

Sets certificate validity period in days since today

fn set_CN(self, CN: &str) -> X509Generator

Sets Common Name of certificate

fn set_usage(self, purposes: &[KeyUsage]) -> X509Generator

Sets what for certificate could be used

fn set_ext_usage(self, purposes: &[ExtKeyUsage]) -> X509Generator

Sets allowed extended usage of certificate

fn set_sign_hash(self, hash_type: HashType) -> X509Generator

fn generate<'a>(&self) -> Result<(X509<'a>, PKey), SslError>

Generates a private key and a signed certificate and returns them