Commit a4c9dd4a authored by Ansley Peduru's avatar Ansley Peduru
Browse files

Fix x509 doc examples

parent 1a407958
Loading
Loading
Loading
Loading
+20 −7
Original line number Original line Diff line number Diff line
@@ -13,15 +13,28 @@
//!
//!
//! 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();
//! }
//! }
//! ```
//! ```


+24 −5
Original line number Original line Diff line number Diff line
@@ -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;