12 #define NewSPKI(klass) \ 
   13     TypedData_Wrap_Struct((klass), &ossl_netscape_spki_type, 0) 
   14 #define SetSPKI(obj, spki) do { \ 
   16         ossl_raise(rb_eRuntimeError, "SPKI wasn't initialized!"); \ 
   18     RTYPEDDATA_DATA(obj) = (spki); \ 
   20 #define GetSPKI(obj, spki) do { \ 
   21     TypedData_Get_Struct((obj), NETSCAPE_SPKI, &ossl_netscape_spki_type, (spki)); \ 
   23         ossl_raise(rb_eRuntimeError, "SPKI wasn't initialized!"); \ 
   43 ossl_netscape_spki_free(
void *spki)
 
   45     NETSCAPE_SPKI_free(spki);
 
   49     "OpenSSL/NETSCAPE_SPKI",
 
   51         0, ossl_netscape_spki_free,
 
   57 ossl_spki_alloc(
VALUE klass)
 
   63     if (!(spki = NETSCAPE_SPKI_new())) {
 
   83     const unsigned char *p;
 
   89     if (!(spki = NETSCAPE_SPKI_b64_decode(
RSTRING_PTR(buffer), RSTRING_LENINT(buffer)))) {
 
  109 ossl_spki_to_der(
VALUE self)
 
  117     if ((
len = i2d_NETSCAPE_SPKI(spki, 
NULL)) <= 0)
 
  121     if (i2d_NETSCAPE_SPKI(spki, &p) <= 0)
 
  135 ossl_spki_to_pem(
VALUE self)
 
  142     if (!(data = NETSCAPE_SPKI_b64_encode(spki))) {
 
  158 ossl_spki_print(
VALUE self)
 
  164     if (!(out = BIO_new(BIO_s_mem()))) {
 
  167     if (!NETSCAPE_SPKI_print(out, spki)) {
 
  183 ossl_spki_get_public_key(
VALUE self)
 
  189     if (!(pkey = NETSCAPE_SPKI_get_pubkey(spki))) { 
 
  216     if (!NETSCAPE_SPKI_set_pubkey(spki, pkey))
 
  228 ossl_spki_get_challenge(
VALUE self)
 
  233     if (spki->spkac->challenge->length <= 0) {
 
  238     return rb_str_new((
const char *)spki->spkac->challenge->data,
 
  239                       spki->spkac->challenge->length);
 
  260                          RSTRING_LENINT(
str))) {
 
  290     if (!NETSCAPE_SPKI_sign(spki, pkey, md)) {
 
  316     switch (NETSCAPE_SPKI_verify(spki, pkey)) {