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!"); \
43ossl_netscape_spki_free(
void *spki)
45 NETSCAPE_SPKI_free(spki);
49 "OpenSSL/NETSCAPE_SPKI",
51 0, ossl_netscape_spki_free,
63 if (!(spki = NETSCAPE_SPKI_new())) {
83 const unsigned char *p;
109ossl_spki_to_der(
VALUE self)
117 if ((
len = i2d_NETSCAPE_SPKI(spki,
NULL)) <= 0)
121 if (i2d_NETSCAPE_SPKI(spki, &p) <= 0)
135ossl_spki_to_pem(
VALUE self)
142 if (!(data = NETSCAPE_SPKI_b64_encode(spki))) {
158ossl_spki_print(
VALUE self)
164 if (!(out = BIO_new(BIO_s_mem()))) {
167 if (!NETSCAPE_SPKI_print(out, spki)) {
183ossl_spki_get_public_key(
VALUE self)
189 if (!(pkey = NETSCAPE_SPKI_get_pubkey(spki))) {
216 if (!NETSCAPE_SPKI_set_pubkey(spki, pkey))
228ossl_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);
290 if (!NETSCAPE_SPKI_sign(spki, pkey, md)) {
316 switch (NETSCAPE_SPKI_verify(spki, pkey)) {
char str[HTML_ESCAPE_MAX_LEN+1]
VALUE rb_define_class_under(VALUE, const char *, VALUE)
Defines a class under the namespace of outer.
VALUE rb_define_module(const char *)
VALUE rb_define_module_under(VALUE, const char *)
void rb_define_alias(VALUE, const char *, const char *)
Defines an alias of a method.
VALUE rb_cObject
Object class.
VALUE ossl_buf2str(char *buf, int len)
void ossl_raise(VALUE exc, const char *fmt,...)
void ossl_clear_error(void)
#define ossl_str_adjust(str, p)
VALUE ossl_membio2str(BIO *bio)
const EVP_MD * ossl_evp_get_digestbyname(VALUE obj)
void Init_ossl_ns_spki(void)
#define GetSPKI(obj, spki)
#define SetSPKI(obj, spki)
EVP_PKEY * GetPrivPKeyPtr(VALUE obj)
void ossl_pkey_check_public_key(const EVP_PKEY *pkey)
EVP_PKEY * GetPKeyPtr(VALUE obj)
VALUE ossl_pkey_new(EVP_PKEY *pkey)