diff --git a/openssl-sys/src/x509.rs b/openssl-sys/src/x509.rs index d125e4b9..fc6e4269 100644 --- a/openssl-sys/src/x509.rs +++ b/openssl-sys/src/x509.rs @@ -228,6 +228,8 @@ extern "C" { pub fn X509_set_serialNumber(x: *mut X509, sn: *mut ASN1_INTEGER) -> c_int; pub fn X509_get_serialNumber(x: *mut X509) -> *mut ASN1_INTEGER; pub fn X509_set_issuer_name(x: *mut X509, name: *mut X509_NAME) -> c_int; + + pub fn X509_subject_name_hash(x: *mut ::X509) -> c_ulong; } cfg_if! { if #[cfg(any(ossl110, libressl280))] { diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs index 39190b7a..775aac69 100644 --- a/openssl/src/x509/mod.rs +++ b/openssl/src/x509/mod.rs @@ -398,6 +398,13 @@ impl X509Ref { } } + /// Returns the hash of the certificates subject + /// + /// This corresponds to `X509_subject_name_hash`. + pub fn subject_name_hash(&self) -> u32 { + unsafe { ffi::X509_subject_name_hash(self.as_ptr()) as u32 } + } + /// Returns this certificate's issuer name. /// /// This corresponds to [`X509_get_issuer_name`].