diff options
| author | Ansley Peduru <[email protected]> | 2018-01-01 11:48:55 -0500 |
|---|---|---|
| committer | Ansley Peduru <[email protected]> | 2018-01-01 11:48:55 -0500 |
| commit | a4c9dd4af3e8538acec5edd464811d68bb50da7e (patch) | |
| tree | 4f812a930e440ffd3a0e72b525107cca4dee23b2 | |
| parent | Add documentation for x509 module (diff) | |
| download | rust-openssl-a4c9dd4af3e8538acec5edd464811d68bb50da7e.tar.xz rust-openssl-a4c9dd4af3e8538acec5edd464811d68bb50da7e.zip | |
Fix x509 doc examples
| -rw-r--r-- | openssl/src/x509/mod.rs | 27 | ||||
| -rw-r--r-- | openssl/src/x509/store.rs | 29 |
2 files changed, 44 insertions, 12 deletions
diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index 1e1ec339..0ee02f0c 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -11,17 +11,30 @@ //! //! ```rust //! -//! extern crate openssl; +//! extern crate openssl; //! -//! use openssl::x509::X509; +//! use openssl::x509::{X509, X509Name}; +//! use openssl::pkey::PKey; +//! use openssl::hash::MessageDigest; +//! use openssl::rsa::Rsa; +//! use openssl::nid::Nid; //! //! fn main() { -//! let cert = include_bytes!("cert_with_alt_name.pem"); -//! let cert = X509::from_pem(cert).unwrap(); +//! let rsa = Rsa::generate(2048).unwrap(); +//! let pkey = PKey::from_rsa(rsa).unwrap(); //! -//! let subject_alt_names = cert.subject_alt_names().unwrap(); -//! let mut san_iter = subject_alt_names.iter(); -//! println!("{:?}", san_iter.next().unwrap().dnsname().unwrap()); +//! let mut name = X509Name::builder().unwrap(); +//! name.append_entry_by_nid(Nid::COMMONNAME, "foobar.com").unwrap(); +//! let name = name.build(); +//! +//! let mut builder = X509::builder().unwrap(); +//! builder.set_version(2).unwrap(); +//! builder.set_subject_name(&name).unwrap(); +//! builder.set_issuer_name(&name).unwrap(); +//! builder.set_pubkey(&pkey).unwrap(); +//! builder.sign(&pkey, MessageDigest::sha256()).unwrap(); +//! +//! let certificate: X509 = builder.build(); //! } //! ``` diff --git a/openssl/src/x509/store.rs b/openssl/src/x509/store.rs index e1e6de7d..876e4246 100644 --- a/openssl/src/x509/store.rs +++ b/openssl/src/x509/store.rs @@ -6,21 +6,40 @@ //! # Example //! //! ```rust +//! //! extern crate openssl; -//! -//! use openssl::x509::X509; +//! //! use openssl::x509::store::{X509StoreBuilder, X509Store}; +//! use openssl::x509::{X509, X509Name}; +//! use openssl::pkey::PKey; +//! use openssl::hash::MessageDigest; +//! use openssl::rsa::Rsa; +//! use openssl::nid::Nid; //! //! fn main() { -//! let cert = include_bytes!("cert.pem"); -//! let cert = X509::from_pem(cert).ok().expect("Failed to load PEM"); +//! let rsa = Rsa::generate(2048).unwrap(); +//! let pkey = PKey::from_rsa(rsa).unwrap(); +//! +//! let mut name = X509Name::builder().unwrap(); +//! name.append_entry_by_nid(Nid::COMMONNAME, "foobar.com").unwrap(); +//! let name = name.build(); +//! +//! let mut builder = X509::builder().unwrap(); +//! builder.set_version(2).unwrap(); +//! builder.set_subject_name(&name).unwrap(); +//! builder.set_issuer_name(&name).unwrap(); +//! builder.set_pubkey(&pkey).unwrap(); +//! builder.sign(&pkey, MessageDigest::sha256()).unwrap(); +//! +//! let certificate: X509 = builder.build(); //! //! let mut builder = X509StoreBuilder::new().unwrap(); -//! let _ = builder.add_cert(cert); +//! let _ = builder.add_cert(certificate); //! //! let store: X509Store = builder.build(); //! } //! ``` + use ffi; use foreign_types::ForeignTypeRef; use std::mem; |