13 #define WrapSPKI(klass, obj, spki) do { \
15 ossl_raise(rb_eRuntimeError, "SPKI wasn't initialized!"); \
17 (obj) = Data_Wrap_Struct((klass), 0, NETSCAPE_SPKI_free, (spki)); \
19 #define GetSPKI(obj, spki) do { \
20 Data_Get_Struct((obj), NETSCAPE_SPKI, (spki)); \
22 ossl_raise(rb_eRuntimeError, "SPKI wasn't initialized!"); \
46 if (!(spki = NETSCAPE_SPKI_new())) {
66 const unsigned char *p;
72 if (!(spki = NETSCAPE_SPKI_b64_decode(
RSTRING_PTR(buffer), -1))) {
100 if ((len = i2d_NETSCAPE_SPKI(spki,
NULL)) <= 0)
104 if (i2d_NETSCAPE_SPKI(spki, &p) <= 0)
125 if (!(data = NETSCAPE_SPKI_b64_encode(spki))) {
149 if (!(out = BIO_new(BIO_s_mem()))) {
152 if (!NETSCAPE_SPKI_print(out, spki)) {
156 BIO_get_mem_ptr(out, &buf);
177 if (!(pkey = NETSCAPE_SPKI_get_pubkey(spki))) {
201 if (!NETSCAPE_SPKI_set_pubkey(spki,
GetPKeyPtr(key))) {
220 if (spki->spkac->challenge->length <= 0) {
225 return rb_str_new((
const char *)spki->spkac->challenge->data,
226 spki->spkac->challenge->length);
246 if (!ASN1_STRING_set(spki->spkac->challenge,
RSTRING_PTR(str),
277 if (!NETSCAPE_SPKI_sign(spki, pkey, md)) {
300 switch (NETSCAPE_SPKI_verify(spki,
GetPKeyPtr(key))) {