Skip to content

Commit b44bcc5

Browse files
committed
fix incompatibilities with older openssl versions
1 parent cd0bf42 commit b44bcc5

File tree

1 file changed

+49
-16
lines changed

1 file changed

+49
-16
lines changed

openssl/src/x509/mod.rs

+49-16
Original file line numberDiff line numberDiff line change
@@ -1852,18 +1852,25 @@ impl X509Crl {
18521852
pub fn new(issuer_cert: &X509) -> Result<Self, ErrorStack> {
18531853
unsafe {
18541854
let crl = cvt_p(ffi::X509_CRL_new())?;
1855-
cvt(ffi::X509_CRL_set_version(
1856-
crl,
1857-
issuer_cert.version() as c_long,
1858-
))?;
1855+
#[cfg(ossl110)]
1856+
{
1857+
cvt(ffi::X509_CRL_set_version(
1858+
crl,
1859+
issuer_cert.version() as c_long,
1860+
))?;
1861+
}
18591862
cvt(ffi::X509_CRL_set_issuer_name(
18601863
crl,
18611864
issuer_cert.issuer_name().as_ptr(),
18621865
))?;
1863-
cvt(ffi::X509_CRL_set1_lastUpdate(
1864-
crl,
1865-
Asn1Time::now()?.as_ptr(),
1866-
))?;
1866+
1867+
cfg_if!(
1868+
if #[cfg(any(ossl110, libressl270))] {
1869+
cvt(ffi::X509_CRL_set1_lastUpdate(crl, Asn1Time::now()?.as_ptr())).map(|_| ())?
1870+
} else {
1871+
cvt(ffi::X509_CRL_set_lastUpdate(crl, Asn1Time::now()?.as_ptr())).map(|_| ())?
1872+
}
1873+
);
18671874

18681875
Ok(Self(crl))
18691876
}
@@ -1872,18 +1879,44 @@ impl X509Crl {
18721879
/// use a negative value to set a time before 'now'
18731880
pub fn set_last_update(&mut self, seconds_from_now: Option<i32>) -> Result<(), ErrorStack> {
18741881
let time = Asn1Time::seconds_from_now(seconds_from_now.unwrap_or(0) as c_long)?;
1875-
unsafe { cvt(ffi::X509_CRL_set1_lastUpdate(self.as_ptr(), time.as_ptr())).map(|_| ()) }
1882+
cfg_if!(
1883+
if #[cfg(any(ossl110, libressl270))] {
1884+
unsafe {
1885+
cvt(ffi::X509_CRL_set1_lastUpdate(self.as_ptr(), time.as_ptr())).map(|_| ())?
1886+
};
1887+
} else {
1888+
unsafe {
1889+
cvt(ffi::X509_CRL_set_lastUpdate(self.as_ptr(), time.as_ptr())).map(|_| ())?
1890+
};
1891+
}
1892+
);
1893+
1894+
Ok(())
18761895
}
18771896

18781897
// Note: u32 seconds is more than enough for this;
18791898
pub fn set_next_update_from_now(&mut self, seconds_from_now: u32) -> Result<(), ErrorStack> {
1880-
unsafe {
1881-
cvt(ffi::X509_CRL_set1_nextUpdate(
1882-
self.as_ptr(),
1883-
Asn1Time::seconds_from_now(seconds_from_now as c_long)?.as_ptr(),
1884-
))
1885-
.map(|_| ())
1886-
}
1899+
cfg_if!(
1900+
if #[cfg(any(ossl110, libressl270))] {
1901+
unsafe {
1902+
cvt(ffi::X509_CRL_set1_nextUpdate(
1903+
self.as_ptr(),
1904+
Asn1Time::seconds_from_now(seconds_from_now as c_long)?.as_ptr(),
1905+
))
1906+
.map(|_| ())?;
1907+
}
1908+
} else {
1909+
unsafe {
1910+
cvt(ffi::X509_CRL_set_nextUpdate(
1911+
self.as_ptr(),
1912+
Asn1Time::seconds_from_now(seconds_from_now as c_long)?.as_ptr(),
1913+
))
1914+
.map(|_| ())?;
1915+
}
1916+
}
1917+
);
1918+
1919+
Ok(())
18871920
}
18881921

18891922
pub fn entry_count(&mut self) -> usize {

0 commit comments

Comments
 (0)