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))) {
size_t strlen(const char *)
#define WrapSPKI(klass, obj, spki)
EVP_PKEY * GetPrivPKeyPtr(VALUE obj)
#define ossl_str_adjust(str, p)
static VALUE ossl_spki_print(VALUE self)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
static VALUE ossl_spki_set_public_key(VALUE self, VALUE key)
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
static VALUE ossl_spki_get_challenge(VALUE self)
VALUE ossl_pkey_new(EVP_PKEY *pkey)
static VALUE ossl_spki_to_der(VALUE self)
static VALUE ossl_spki_get_public_key(VALUE self)
const EVP_MD * GetDigestPtr(VALUE obj)
unsigned char buf[MIME_BUF_SIZE]
void rb_define_alias(VALUE klass, const char *name1, const char *name2)
Defines an alias of a method.
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
VALUE rb_define_module_under(VALUE outer, const char *name)
static VALUE ossl_spki_set_challenge(VALUE self, VALUE str)
static VALUE ossl_spki_alloc(VALUE klass)
RUBY_EXTERN VALUE rb_cObject
static VALUE ossl_spki_sign(VALUE self, VALUE key, VALUE digest)
VALUE ossl_buf2str(char *buf, int len)
static VALUE ossl_spki_to_pem(VALUE self)
void ossl_raise(VALUE exc, const char *fmt,...)
EVP_PKEY * GetPKeyPtr(VALUE obj)
#define RSTRING_LENINT(str)
VALUE rb_str_new(const char *, long)
static VALUE ossl_spki_verify(VALUE self, VALUE key)
VALUE rb_define_module(const char *name)
static VALUE ossl_spki_initialize(int argc, VALUE *argv, VALUE self)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
#define GetSPKI(obj, spki)