@@ -28,6 +28,7 @@ use crate::asn1::{
28
28
Asn1OctetStringRef , Asn1StringRef , Asn1Time , Asn1TimeRef , Asn1Type ,
29
29
} ;
30
30
use crate :: bio:: MemBioSlice ;
31
+ use crate :: bn:: BigNum ;
31
32
use crate :: conf:: ConfRef ;
32
33
use crate :: error:: ErrorStack ;
33
34
use crate :: ex_data:: Index ;
@@ -1904,7 +1905,7 @@ impl X509Crl {
1904
1905
1905
1906
/// Read the value of the crl_number extensions.
1906
1907
/// 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 > {
1908
1909
unsafe {
1909
1910
let mut crit = 0 ;
1910
1911
let number = Asn1Integer :: from_ptr_opt ( std:: mem:: transmute ( ffi:: X509_CRL_get_ext_d2i (
@@ -1923,23 +1924,20 @@ impl X509Crl {
1923
1924
}
1924
1925
}
1925
1926
1926
- Some ( number) => Ok ( Some ( ffi :: ASN1_INTEGER_get ( number. as_ptr ( ) ) ) ) ,
1927
+ Some ( number) => Ok ( Some ( number. to_bn ( ) ? ) ) ,
1927
1928
}
1928
1929
}
1929
1930
}
1930
1931
1931
1932
/// Set the crl_number extension's value.
1932
1933
/// 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 > {
1934
1935
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) ?;
1939
1937
cvt ( ffi:: X509_CRL_add1_ext_i2d (
1940
1938
self . as_ptr ( ) ,
1941
1939
ffi:: NID_crl_number ,
1942
- std:: mem:: transmute ( number . as_ptr ( ) ) ,
1940
+ std:: mem:: transmute ( value . as_ptr ( ) ) ,
1943
1941
0 ,
1944
1942
ffi:: X509V3_ADD_REPLACE ,
1945
1943
) )
0 commit comments