Provide an Asn1Object getter method for X509NameEntryRef
This commit is contained in:
parent
2afdc16fc9
commit
f5e6d57c47
|
|
@ -592,6 +592,7 @@ extern "C" {
|
||||||
pub fn X509_NAME_entry_count(n: *mut ::X509_NAME) -> c_int;
|
pub fn X509_NAME_entry_count(n: *mut ::X509_NAME) -> c_int;
|
||||||
pub fn X509_NAME_get_entry(n: *mut ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY;
|
pub fn X509_NAME_get_entry(n: *mut ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY;
|
||||||
pub fn X509_NAME_ENTRY_get_data(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING;
|
pub fn X509_NAME_ENTRY_get_data(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING;
|
||||||
|
pub fn X509_NAME_ENTRY_get_object(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_OBJECT;
|
||||||
pub fn X509_STORE_CTX_get_chain(ctx: *mut ::X509_STORE_CTX) -> *mut stack_st_X509;
|
pub fn X509_STORE_CTX_get_chain(ctx: *mut ::X509_STORE_CTX) -> *mut stack_st_X509;
|
||||||
pub fn X509V3_EXT_nconf_nid(
|
pub fn X509V3_EXT_nconf_nid(
|
||||||
conf: *mut ::CONF,
|
conf: *mut ::CONF,
|
||||||
|
|
|
||||||
|
|
@ -962,6 +962,7 @@ extern "C" {
|
||||||
pub fn X509_NAME_entry_count(n: *mut ::X509_NAME) -> c_int;
|
pub fn X509_NAME_entry_count(n: *mut ::X509_NAME) -> c_int;
|
||||||
pub fn X509_NAME_get_entry(n: *mut ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY;
|
pub fn X509_NAME_get_entry(n: *mut ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY;
|
||||||
pub fn X509_NAME_ENTRY_get_data(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING;
|
pub fn X509_NAME_ENTRY_get_data(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING;
|
||||||
|
pub fn X509_NAME_ENTRY_get_object(ne: *mut ::X509_NAME_ENTRY) -> *mut ::ASN1_OBJECT;
|
||||||
pub fn X509_STORE_CTX_get_chain(ctx: *mut ::X509_STORE_CTX) -> *mut stack_st_X509;
|
pub fn X509_STORE_CTX_get_chain(ctx: *mut ::X509_STORE_CTX) -> *mut stack_st_X509;
|
||||||
pub fn X509V3_EXT_nconf_nid(
|
pub fn X509V3_EXT_nconf_nid(
|
||||||
conf: *mut ::CONF,
|
conf: *mut ::CONF,
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,7 @@ extern "C" {
|
||||||
pub fn X509_NAME_entry_count(n: *const ::X509_NAME) -> c_int;
|
pub fn X509_NAME_entry_count(n: *const ::X509_NAME) -> c_int;
|
||||||
pub fn X509_NAME_get_entry(n: *const ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY;
|
pub fn X509_NAME_get_entry(n: *const ::X509_NAME, loc: c_int) -> *mut ::X509_NAME_ENTRY;
|
||||||
pub fn X509_NAME_ENTRY_get_data(ne: *const ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING;
|
pub fn X509_NAME_ENTRY_get_data(ne: *const ::X509_NAME_ENTRY) -> *mut ::ASN1_STRING;
|
||||||
|
pub fn X509_NAME_ENTRY_get_object(ne: *const ::X509_NAME_ENTRY) -> *mut ::ASN1_OBJECT;
|
||||||
pub fn X509V3_EXT_nconf_nid(
|
pub fn X509V3_EXT_nconf_nid(
|
||||||
conf: *mut ::CONF,
|
conf: *mut ::CONF,
|
||||||
ctx: *mut ::X509V3_CTX,
|
ctx: *mut ::X509V3_CTX,
|
||||||
|
|
|
||||||
|
|
@ -895,6 +895,19 @@ impl X509NameEntryRef {
|
||||||
Asn1StringRef::from_ptr(data)
|
Asn1StringRef::from_ptr(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns the `Asn1Object` value of an `X509NameEntry`.
|
||||||
|
/// This is useful for finding out about the actual `Nid` when iterating over all `X509NameEntries`.
|
||||||
|
///
|
||||||
|
/// This corresponds to [`X509_NAME_ENTRY_get_object`].
|
||||||
|
///
|
||||||
|
/// [`X509_NAME_ENTRY_get_object`]: https://www.openssl.org/docs/man1.1.0/crypto/X509_NAME_ENTRY_get_object.html
|
||||||
|
pub fn object(&self) -> &Asn1ObjectRef {
|
||||||
|
unsafe {
|
||||||
|
let object = ffi::X509_NAME_ENTRY_get_object(self.as_ptr());
|
||||||
|
Asn1ObjectRef::from_ptr(object)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A builder used to construct an `X509Req`.
|
/// A builder used to construct an `X509Req`.
|
||||||
|
|
|
||||||
|
|
@ -87,12 +87,15 @@ fn test_nameref_iterator() {
|
||||||
let mut all_entries = subject.all_entries();
|
let mut all_entries = subject.all_entries();
|
||||||
|
|
||||||
let email = all_entries.next().unwrap();
|
let email = all_entries.next().unwrap();
|
||||||
|
assert_eq!(email.object().nid().as_raw(), Nid::PKCS9_EMAILADDRESS.as_raw());
|
||||||
assert_eq!(email.data().as_slice(), b"test@example.com");
|
assert_eq!(email.data().as_slice(), b"test@example.com");
|
||||||
|
|
||||||
let cn = all_entries.next().unwrap();
|
let cn = all_entries.next().unwrap();
|
||||||
|
assert_eq!(cn.object().nid().as_raw(), Nid::COMMONNAME.as_raw());
|
||||||
assert_eq!(cn.data().as_slice(), b"example.com");
|
assert_eq!(cn.data().as_slice(), b"example.com");
|
||||||
|
|
||||||
let friendly = all_entries.next().unwrap();
|
let friendly = all_entries.next().unwrap();
|
||||||
|
assert_eq!(friendly.object().nid().as_raw(), Nid::FRIENDLYNAME.as_raw());
|
||||||
assert_eq!(&**friendly.data().as_utf8().unwrap(), "Example");
|
assert_eq!(&**friendly.data().as_utf8().unwrap(), "Example");
|
||||||
|
|
||||||
if let Some(_) = all_entries.next() {
|
if let Some(_) = all_entries.next() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue