Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
class method
OpenSSL::X509::Name.new
(::OpenSSL::X509::Name::distinguished_name name, ::OpenSSL::X509::Name::template template) -> ::OpenSSL::X509::Name
(::Array[::OpenSSL::X509::Name::distinguished_name] names) -> ::OpenSSL::X509::Name
(?::String der) -> ::OpenSSL::X509::Name
X509::Name.new => name
X509::Name.new(der) => name
X509::Name.new(distinguished_name) => name
X509::Name.new(distinguished_name, template) => name
ext/openssl/ossl_x509name.c
View on GitHub ↗
static VALUE
ossl_x509name_initialize(int argc, VALUE *argv, VALUE self)
{
VALUE arg, template, tmp = Qnil;
rb_scan_args(argc, argv, "02", &arg, &template);
ossl_want_uninitialized(self, &ossl_x509name_type);
if (argc == 0 || !NIL_P((tmp = rb_check_array_type(arg)))) {
X509_NAME *name = X509_NAME_new();
if (!name)
ossl_raise(eX509NameError, "X509_NAME_new");
RTYPEDDATA_DATA(self) = name;
if (argc > 0) {
if (NIL_P(template))
template = OBJECT_TYPE_TEMPLATE;
rb_block_call(tmp, rb_intern("each"), 0, 0, ossl_x509name_init_i,
rb_ary_new_from_args(2, self, template));
}
return self;
}
VALUE str = ossl_to_der_if_possible(arg);
StringValue(str);
const unsigned char *p = (unsigned char *)RSTRING_PTR(str);
X509_NAME *name = d2i_X509_NAME(NULL, &p, rb_len2long(RSTRING_LEN(str)));
if (!name)
ossl_raise(eX509NameError, "d2i_X509_NAME");
RTYPEDDATA_DATA(self) = name;
return self;
}
Creates a new Name.
A name may be created from a DER encoded string der, an Array representing a distinguished_name or a distinguished_name along with a template.
Example
name = OpenSSL::X509::Name.new [['CN', 'nobody'], ['DC', 'example']] name = OpenSSL::X509::Name.new name.to_der
See add_entry for a description of the distinguished_name Array’s contents