Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
class method
OpenSSL::X509::Attribute.new
(::String der) -> ::OpenSSL::X509::Attribute
(::String oid, ::OpenSSL::ASN1::ASN1Data value) -> ::OpenSSL::X509::Attribute
Attribute.new(oid [, value]) => attr
ext/openssl/ossl_x509attr.c
View on GitHub ↗
static VALUE
ossl_x509attr_initialize(int argc, VALUE *argv, VALUE self)
{
VALUE oid, value;
X509_ATTRIBUTE *attr;
const unsigned char *p;
rb_scan_args(argc, argv, "11", &oid, &value);
ossl_want_uninitialized(self, &ossl_x509attr_type);
if (argc == 1) {
oid = ossl_to_der_if_possible(oid);
StringValue(oid);
p = (unsigned char *)RSTRING_PTR(oid);
attr = d2i_X509_ATTRIBUTE(NULL, &p, rb_len2long(RSTRING_LEN(oid)));
if (!attr)
ossl_raise(eX509AttrError, "d2i_X509_ATTRIBUTE");
RTYPEDDATA_DATA(self) = attr;
return self;
}
attr = X509_ATTRIBUTE_new();
if (!attr)
ossl_raise(eX509AttrError, "X509_ATTRIBUTE_new");
RTYPEDDATA_DATA(self) = attr;
rb_funcall(self, rb_intern("oid="), 1, oid);
rb_funcall(self, rb_intern("value="), 1, value);
return self;
}
No documentation available