diff options
| author | Steven Fackler <[email protected]> | 2017-02-11 09:34:24 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2017-02-11 09:34:24 -0800 |
| commit | 3a0d24f7292213df1420eb8f4c1791fd714e8d98 (patch) | |
| tree | cb8f230cd1cc07dfa6c26bb609cab6e3a49673ca /openssl/src/x509/mod.rs | |
| parent | Merge pull request #579 from sfackler/x509-signature (diff) | |
| parent | Re-add reexport (diff) | |
| download | rust-openssl-3a0d24f7292213df1420eb8f4c1791fd714e8d98.tar.xz rust-openssl-3a0d24f7292213df1420eb8f4c1791fd714e8d98.zip | |
Merge pull request #568 from mredlek/x509_req_version_subject
X509 request information
Diffstat (limited to 'openssl/src/x509/mod.rs')
| -rw-r--r-- | openssl/src/x509/mod.rs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index de7aece7..0d329da4 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -649,6 +649,34 @@ impl X509Req { impl X509ReqRef { to_pem!(ffi::PEM_write_bio_X509_REQ); to_der!(ffi::i2d_X509_REQ); + + pub fn version(&self) -> i32 + { + unsafe { + compat::X509_REQ_get_version(self.as_ptr()) as i32 + } + } + + pub fn set_version(&mut self, value: i32) -> Result<(), ErrorStack> + { + unsafe { + cvt(ffi::X509_REQ_set_version(self.as_ptr(), value as c_long)).map(|_| ()) + } + } + + pub fn subject_name(&self) -> &X509NameRef { + unsafe { + let name = compat::X509_REQ_get_subject_name(self.as_ptr()); + assert!(!name.is_null()); + X509NameRef::from_ptr(name) + } + } + + pub fn set_subject_name(&mut self, value: &X509NameRef) -> Result<(), ErrorStack> { + unsafe { + cvt(ffi::X509_REQ_set_subject_name(self.as_ptr(), value.as_ptr())).map(|_| ()) + } + } } /// A collection of X.509 extensions. @@ -846,6 +874,8 @@ mod compat { pub use ffi::X509_getm_notBefore as X509_get_notBefore; pub use ffi::X509_up_ref; pub use ffi::X509_get0_extensions; + pub use ffi::X509_REQ_get_version; + pub use ffi::X509_REQ_get_subject_name; pub use ffi::X509_get0_signature; pub use ffi::X509_ALGOR_get0; } @@ -882,6 +912,16 @@ mod compat { } } + pub unsafe fn X509_REQ_get_version(x: *mut ffi::X509_REQ) -> ::libc::c_long + { + ::ffi::ASN1_INTEGER_get((*(*x).req_info).version) + } + + pub unsafe fn X509_REQ_get_subject_name(x: *mut ffi::X509_REQ) -> *mut ::ffi::X509_NAME + { + (*(*x).req_info).subject + } + pub unsafe fn X509_get0_signature(psig: *mut *const ffi::ASN1_BIT_STRING, palg: *mut *const ffi::X509_ALGOR, x: *const ffi::X509) { |