Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →
class method
OpenSSL::Netscape::SPKI.new
(?::String request) -> ::OpenSSL::Netscape::SPKI
SPKI.new([request]) => spki
ext/openssl/ossl_ns_spki.c
View on GitHub ↗
static VALUE
ossl_spki_initialize(int argc, VALUE *argv, VALUE self)
{
NETSCAPE_SPKI *spki;
VALUE buffer;
const unsigned char *p;
rb_scan_args(argc, argv, "01", &buffer);
ossl_want_uninitialized(self, &ossl_netscape_spki_type);
if (argc == 0) {
spki = NETSCAPE_SPKI_new();
if (!spki)
ossl_raise(eSPKIError, "NETSCAPE_SPKI_new");
RTYPEDDATA_DATA(self) = spki;
return self;
}
StringValue(buffer);
if (!(spki = NETSCAPE_SPKI_b64_decode(RSTRING_PTR(buffer), RSTRING_LENINT(buffer)))) {
ossl_clear_error();
p = (unsigned char *)RSTRING_PTR(buffer);
spki = d2i_NETSCAPE_SPKI(NULL, &p, rb_len2long(RSTRING_LEN(buffer)));
if (!spki)
ossl_raise(eSPKIError, "d2i_NETSCAPE_SPKI");
}
RTYPEDDATA_DATA(self) = spki;
return self;
}
Parameters
-
request - optional raw request, either in PEM or DER format.