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())) {
59 const unsigned char *
p;
65 if (!(spki = NETSCAPE_SPKI_b64_decode(
RSTRING_PTR(buffer), -1))) {
87 if ((len = i2d_NETSCAPE_SPKI(spki,
NULL)) <= 0)
91 if (i2d_NETSCAPE_SPKI(spki, &p) <= 0)
106 if (!(data = NETSCAPE_SPKI_b64_encode(spki))) {
123 if (!(out = BIO_new(BIO_s_mem()))) {
126 if (!NETSCAPE_SPKI_print(out, spki)) {
130 BIO_get_mem_ptr(out, &buf);
144 if (!(pkey = NETSCAPE_SPKI_get_pubkey(spki))) {
157 if (!NETSCAPE_SPKI_set_pubkey(spki,
GetPKeyPtr(key))) {
170 if (spki->spkac->challenge->length <= 0) {
175 return rb_str_new((
const char *)spki->spkac->challenge->data,
176 spki->spkac->challenge->length);
186 if (!ASN1_STRING_set(spki->spkac->challenge,
RSTRING_PTR(str),
204 if (!NETSCAPE_SPKI_sign(spki, pkey, md)) {
220 switch (NETSCAPE_SPKI_verify(spki,
GetPKeyPtr(key))) {
#define RSTRING_LEN(string)
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)
static VALUE ossl_spki_set_public_key(VALUE self, VALUE key)
#define RSTRING_PTR(string)
VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
Defines a class under the namespace of outer.
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
static VALUE ossl_spki_get_challenge(VALUE self)
VALUE ossl_pkey_new(EVP_PKEY *pkey)
static VALUE ossl_spki_to_der(VALUE self)
RUBY_EXTERN VALUE rb_cObject
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,...)
register unsigned int len
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)
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)
static VALUE ossl_spki_verify(VALUE self, VALUE key)
#define RSTRING_LENINT(str)
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)
VALUE rb_str_new(const char *, long)