Method: OpenSSL::X509::Attribute#initialize

Defined in:
ossl_x509attr.c

#new(oid[, value]) ⇒ Object


101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'ossl_x509attr.c', line 101

static VALUE
ossl_x509attr_initialize(int argc, VALUE *argv, VALUE self)
{
    VALUE oid, value;
    X509_ATTRIBUTE *attr, *x;
    const unsigned char *p;

    GetX509Attr(self, attr);
    if(rb_scan_args(argc, argv, "11", &oid, &value) == 1){
  oid = ossl_to_der_if_possible(oid);
  StringValue(oid);
  p = (unsigned char *)RSTRING_PTR(oid);
  x = d2i_X509_ATTRIBUTE(&attr, &p, RSTRING_LEN(oid));
  DATA_PTR(self) = attr;
  if(!x){
      ossl_raise(eX509AttrError, NULL);
  }
  return self;
    }
    rb_funcall(self, rb_intern("oid="), 1, oid);
    rb_funcall(self, rb_intern("value="), 1, value);

    return self;
}