diff --git a/openssl/src/conf.rs b/openssl/src/conf.rs index a648bb15..91030138 100644 --- a/openssl/src/conf.rs +++ b/openssl/src/conf.rs @@ -1,3 +1,4 @@ +//! Interface for processing OpenSSL configuration files. use ffi; use cvt_p; @@ -6,6 +7,12 @@ use error::ErrorStack; pub struct ConfMethod(*mut ffi::CONF_METHOD); impl ConfMethod { + /// Retrieve handle to the default OpenSSL configuration file processing function. + /// + /// # OpenSSL Implementation Details + /// + /// `NCONF` stands for "New Conf", as described in crypto/conf/conf_lib.c. This is + /// a newer API than the "CONF classic" functions. pub fn default() -> ConfMethod { unsafe { ffi::init(); @@ -13,10 +20,12 @@ impl ConfMethod { } } + /// Construct from raw pointer. pub unsafe fn from_ptr(ptr: *mut ffi::CONF_METHOD) -> ConfMethod { ConfMethod(ptr) } + /// Convert to raw pointer. pub fn as_ptr(&self) -> *mut ffi::CONF_METHOD { self.0 } @@ -31,6 +40,15 @@ foreign_type! { } impl Conf { + /// Create a configuration parser. + /// + /// # Examples + /// + /// ``` + /// use openssl::conf::{Conf, ConfMethod}; + /// + /// let conf = Conf::new(ConfMethod::default()); + /// ``` pub fn new(method: ConfMethod) -> Result { unsafe { cvt_p(ffi::NCONF_new(method.as_ptr())).map(Conf) } }