Skip to content

Commit 45534ac

Browse files
committed
use bignum for crl_number extension related functions
1 parent bf4c7e1 commit 45534ac

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

openssl/src/x509/mod.rs

+6-8
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ use crate::asn1::{
2828
Asn1OctetStringRef, Asn1StringRef, Asn1Time, Asn1TimeRef, Asn1Type,
2929
};
3030
use crate::bio::MemBioSlice;
31+
use crate::bn::BigNum;
3132
use crate::conf::ConfRef;
3233
use crate::error::ErrorStack;
3334
use crate::ex_data::Index;
@@ -1904,7 +1905,7 @@ impl X509Crl {
19041905

19051906
/// Read the value of the crl_number extensions.
19061907
/// Returns None if the extension is not present.
1907-
pub fn read_crl_number(&self) -> Result<Option<i64>, ErrorStack> {
1908+
pub fn read_crl_number(&self) -> Result<Option<BigNum>, ErrorStack> {
19081909
unsafe {
19091910
let mut crit = 0;
19101911
let number = Asn1Integer::from_ptr_opt(std::mem::transmute(ffi::X509_CRL_get_ext_d2i(
@@ -1923,23 +1924,20 @@ impl X509Crl {
19231924
}
19241925
}
19251926

1926-
Some(number) => Ok(Some(ffi::ASN1_INTEGER_get(number.as_ptr()))),
1927+
Some(number) => Ok(Some(number.to_bn()?)),
19271928
}
19281929
}
19291930
}
19301931

19311932
/// Set the crl_number extension's value.
19321933
/// If the extension is not present, it will be added.
1933-
pub fn set_crl_number(&mut self, value: i64) -> Result<(), ErrorStack> {
1934+
pub fn set_crl_number(&mut self, value: &BigNum) -> Result<(), ErrorStack> {
19341935
unsafe {
1935-
let number = ffi::ASN1_INTEGER_new();
1936-
let number = Asn1Integer::from_ptr(number);
1937-
cvt(ffi::ASN1_INTEGER_set(number.as_ptr(), value))?;
1938-
1936+
let value = Asn1Integer::from_bn(value)?;
19391937
cvt(ffi::X509_CRL_add1_ext_i2d(
19401938
self.as_ptr(),
19411939
ffi::NID_crl_number,
1942-
std::mem::transmute(number.as_ptr()),
1940+
std::mem::transmute(value.as_ptr()),
19431941
0,
19441942
ffi::X509V3_ADD_REPLACE,
19451943
))

0 commit comments

Comments
 (0)