aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Huenseler <[email protected]>2018-06-03 15:37:18 +0200
committerMarco Huenseler <[email protected]>2018-06-03 15:38:46 +0200
commit14b543934720132fd7c60b8bc842150cf3f17aaf (patch)
tree837b68dcdb4a13a49fb02aae1ab72a8fbdf22dbc
parentProvide an Asn1Object getter method for X509NameEntryRef (diff)
downloadrust-openssl-14b543934720132fd7c60b8bc842150cf3f17aaf.tar.xz
rust-openssl-14b543934720132fd7c60b8bc842150cf3f17aaf.zip
Rename X509NameRef::all_entries and refactor end-of-iterator checks
-rw-r--r--openssl/src/x509/mod.rs12
-rw-r--r--openssl/src/x509/tests.rs2
2 files changed, 8 insertions, 6 deletions
diff --git a/openssl/src/x509/mod.rs b/openssl/src/x509/mod.rs
index 697aba6f..0b6c6b3d 100644
--- a/openssl/src/x509/mod.rs
+++ b/openssl/src/x509/mod.rs
@@ -826,7 +826,7 @@ impl X509NameRef {
}
/// Returns an iterator over all `X509NameEntry` values
- pub fn all_entries<'a>(&'a self) -> X509NameEntries<'a> {
+ pub fn entries<'a>(&'a self) -> X509NameEntries<'a> {
X509NameEntries {
name: self,
nid: None,
@@ -854,17 +854,19 @@ impl<'a> Iterator for X509NameEntries<'a> {
// There is a `Nid` specified to search for
self.loc =
ffi::X509_NAME_get_index_by_NID(self.name.as_ptr(), nid.as_raw(), self.loc);
+ if self.loc == -1 {
+ return None;
+ }
}
None => {
// Iterate over all `Nid`s
self.loc += 1;
+ if self.loc >= entry_count {
+ return None;
+ }
}
}
- if self.loc == -1 || self.loc >= entry_count {
- return None;
- }
-
let entry = ffi::X509_NAME_get_entry(self.name.as_ptr(), self.loc);
assert!(!entry.is_null());
diff --git a/openssl/src/x509/tests.rs b/openssl/src/x509/tests.rs
index bfc50899..7b3f2569 100644
--- a/openssl/src/x509/tests.rs
+++ b/openssl/src/x509/tests.rs
@@ -84,7 +84,7 @@ fn test_nameref_iterator() {
let cert = include_bytes!("../../test/nid_test_cert.pem");
let cert = X509::from_pem(cert).unwrap();
let subject = cert.subject_name();
- let mut all_entries = subject.all_entries();
+ let mut all_entries = subject.entries();
let email = all_entries.next().unwrap();
assert_eq!(email.object().nid().as_raw(), Nid::PKCS9_EMAILADDRESS.as_raw());