rust: Use AsRef<Path> and PathBuf in libraries

Use `AsRef<Path>` instead of `&Path`, &str, .... to be more versatile
and accept more input types. In addition, use `PathBuf` and `Path` for
paths instead of `String` and `str`.

Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Reviewed-by: Steffen Eiden <seiden@linux.ibm.com>
Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
This commit is contained in:
Marc Hartmayer
2024-05-23 16:32:57 +00:00
committed by Steffen Eiden
parent 87d43c7a32
commit 4a76efe6d5
13 changed files with 88 additions and 84 deletions
+12 -12
View File
@@ -13,11 +13,11 @@ use openssl::{
///
/// This function will return an error if the underlying OpenSSL implementation cannot parse `buf`
/// as `DER` or `PEM`.
pub fn read_crls(buf: &[u8]) -> Result<Vec<X509Crl>> {
pub fn read_crls<T: AsRef<[u8]>>(buf: T) -> Result<Vec<X509Crl>> {
use crate::openssl_extensions::StackableX509Crl;
X509Crl::from_der(buf)
X509Crl::from_der(buf.as_ref())
.map(|crl| vec![crl])
.or_else(|_| StackableX509Crl::stack_from_pem(buf))
.or_else(|_| StackableX509Crl::stack_from_pem(buf.as_ref()))
.map_err(Error::Crypto)
}
@@ -26,10 +26,10 @@ pub fn read_crls(buf: &[u8]) -> Result<Vec<X509Crl>> {
/// # Errors
///
/// This function will return an error if the underlying OpenSSL implementation cannot parse `buf`
pub fn read_certs(buf: &[u8]) -> Result<Vec<X509>, ErrorStack> {
X509::from_der(buf)
pub fn read_certs<T: AsRef<[u8]>>(buf: T) -> Result<Vec<X509>, ErrorStack> {
X509::from_der(buf.as_ref())
.map(|crt| vec![crt])
.or_else(|_| X509::stack_from_pem(buf))
.or_else(|_| X509::stack_from_pem(buf.as_ref()))
}
#[cfg(test)]
@@ -41,9 +41,9 @@ mod tests {
let crl = get_cert_asset("ibm.crl");
let crl_der = get_cert_asset("der.crl");
let fail = get_cert_asset("ibm.crt");
assert_eq!(super::read_crls(&crl).unwrap().len(), 1);
assert_eq!(super::read_crls(&crl_der).unwrap().len(), 1);
assert_eq!(super::read_crls(&fail).unwrap().len(), 0);
assert_eq!(super::read_crls(crl).unwrap().len(), 1);
assert_eq!(super::read_crls(crl_der).unwrap().len(), 1);
assert_eq!(super::read_crls(fail).unwrap().len(), 0);
}
#[test]
@@ -51,8 +51,8 @@ mod tests {
let crt = get_cert_asset("ibm.crt");
let crt_der = get_cert_asset("der.crt");
let fail = get_cert_asset("ibm.crl");
assert_eq!(super::read_certs(&crt).unwrap().len(), 1);
assert_eq!(super::read_certs(&crt_der).unwrap().len(), 1);
assert_eq!(super::read_certs(&fail).unwrap().len(), 0);
assert_eq!(super::read_certs(crt).unwrap().len(), 1);
assert_eq!(super::read_certs(crt_der).unwrap().len(), 1);
assert_eq!(super::read_certs(fail).unwrap().len(), 0);
}
}