Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
instance method
OpenSSL::X509::Name#to_a
() -> ::Array[[ ::String, ::String, ::Integer ]]
name.to_a => [[name, data, type], ...]
ext/openssl/ossl_x509name.c
View on GitHub ↗
static VALUE
ossl_x509name_to_a(VALUE self)
{
X509_NAME *name;
int entries;
VALUE ret;
GetX509Name(self, name);
entries = X509_NAME_entry_count(name);
ret = rb_ary_new_capa(entries);
for (int i = 0; i < entries; i++) {
const X509_NAME_ENTRY *entry = X509_NAME_get_entry(name, i);
if (!entry)
ossl_raise(eX509NameError, "X509_NAME_get_entry");
const ASN1_OBJECT *obj = X509_NAME_ENTRY_get_object(entry);
VALUE vname = ossl_asn1obj_to_string(obj);
const ASN1_STRING *data = X509_NAME_ENTRY_get_data(entry);
VALUE vdata = asn1str_to_str(data);
VALUE type = INT2NUM(ASN1_STRING_type(data));
rb_ary_push(ret, rb_ary_new_from_args(3, vname, vdata, type));
}
return ret;
}