Fix x509 doc examples

This commit is contained in:
Ansley Peduru 2018-01-01 11:48:55 -05:00
parent 1a40795886
commit a4c9dd4af3
2 changed files with 44 additions and 12 deletions

View File

@ -11,17 +11,30 @@
//! //!
//! ```rust //! ```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() { //! fn main() {
//! let cert = include_bytes!("cert_with_alt_name.pem"); //! let rsa = Rsa::generate(2048).unwrap();
//! let cert = X509::from_pem(cert).unwrap(); //! let pkey = PKey::from_rsa(rsa).unwrap();
//! //!
//! let subject_alt_names = cert.subject_alt_names().unwrap(); //! let mut name = X509Name::builder().unwrap();
//! let mut san_iter = subject_alt_names.iter(); //! name.append_entry_by_nid(Nid::COMMONNAME, "foobar.com").unwrap();
//! println!("{:?}", san_iter.next().unwrap().dnsname().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();
//! } //! }
//! ``` //! ```

View File

@ -6,21 +6,40 @@
//! # Example //! # Example
//! //!
//! ```rust //! ```rust
//!
//! extern crate openssl; //! extern crate openssl;
//! //!
//! use openssl::x509::X509;
//! use openssl::x509::store::{X509StoreBuilder, X509Store}; //! 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() { //! fn main() {
//! let cert = include_bytes!("cert.pem"); //! let rsa = Rsa::generate(2048).unwrap();
//! let cert = X509::from_pem(cert).ok().expect("Failed to load PEM"); //! 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 mut builder = X509StoreBuilder::new().unwrap();
//! let _ = builder.add_cert(cert); //! let _ = builder.add_cert(certificate);
//! //!
//! let store: X509Store = builder.build(); //! let store: X509Store = builder.build();
//! } //! }
//! ``` //! ```
use ffi; use ffi;
use foreign_types::ForeignTypeRef; use foreign_types::ForeignTypeRef;
use std::mem; use std::mem;