12 #define NewX509CRL(klass) \ 
   13     TypedData_Wrap_Struct((klass), &ossl_x509crl_type, 0) 
   14 #define SetX509CRL(obj, crl) do { \ 
   16         ossl_raise(rb_eRuntimeError, "CRL wasn't initialized!"); \ 
   18     RTYPEDDATA_DATA(obj) = (crl); \ 
   20 #define GetX509CRL(obj, crl) do { \ 
   21     TypedData_Get_Struct((obj), X509_CRL, &ossl_x509crl_type, (crl)); \ 
   23         ossl_raise(rb_eRuntimeError, "CRL wasn't initialized!"); \ 
   34 ossl_x509crl_free(
void *
ptr)
 
   67     tmp = crl ? X509_CRL_dup(crl) : X509_CRL_new();
 
   78 ossl_x509crl_alloc(
VALUE klass)
 
   84     if (!(crl = X509_CRL_new())) {
 
  105     crl = d2i_X509_CRL_bio(in, 
NULL);
 
  115     X509_CRL_free(crl_orig);
 
  123     X509_CRL *a, *b, *crl;
 
  126     if (
self == other) 
return self;
 
  129     if (!(crl = X509_CRL_dup(b))) {
 
  139 ossl_x509crl_get_version(
VALUE self)
 
  145     ver = X509_CRL_get_version(crl);
 
  151 ossl_x509crl_set_version(
VALUE self, 
VALUE version)
 
  156     if ((ver = 
NUM2LONG(version)) < 0) {
 
  160     if (!X509_CRL_set_version(crl, ver)) {
 
  168 ossl_x509crl_get_signature_algorithm(
VALUE self)
 
  171     const X509_ALGOR *alg;
 
  175     if (!(out = BIO_new(BIO_s_mem()))) {
 
  179     if (!i2a_ASN1_OBJECT(out, alg->algorithm)) {
 
  188 ossl_x509crl_get_issuer(
VALUE self)
 
  198 ossl_x509crl_set_issuer(
VALUE self, 
VALUE issuer)
 
  211 ossl_x509crl_get_last_update(
VALUE self)
 
  214     const ASN1_TIME *time;
 
  225 ossl_x509crl_set_last_update(
VALUE self, 
VALUE time)
 
  233         ASN1_TIME_free(asn1time);
 
  236     ASN1_TIME_free(asn1time);
 
  242 ossl_x509crl_get_next_update(
VALUE self)
 
  245     const ASN1_TIME *time;
 
  256 ossl_x509crl_set_next_update(
VALUE self, 
VALUE time)
 
  264         ASN1_TIME_free(asn1time);
 
  267     ASN1_TIME_free(asn1time);
 
  273 ossl_x509crl_get_revoked(
VALUE self)
 
  281     num = sk_X509_REVOKED_num(X509_CRL_get_REVOKED(crl));
 
  287     for(i=0; i<num; i++) {
 
  289         rev = sk_X509_REVOKED_value(X509_CRL_get_REVOKED(crl), i);
 
  298 ossl_x509crl_set_revoked(
VALUE self, 
VALUE ary)
 
  311     if ((sk = X509_CRL_get_REVOKED(crl))) {
 
  312         while ((rev = sk_X509_REVOKED_pop(sk)))
 
  313             X509_REVOKED_free(rev);
 
  317         if (!X509_CRL_add0_revoked(crl, rev)) { 
 
  318             X509_REVOKED_free(rev);
 
  328 ossl_x509crl_add_revoked(
VALUE self, 
VALUE revoked)
 
  335     if (!X509_CRL_add0_revoked(crl, rev)) { 
 
  336         X509_REVOKED_free(rev);
 
  354     if (!X509_CRL_sign(crl, pkey, md)) {
 
  370     switch (X509_CRL_verify(crl, pkey)) {
 
  382 ossl_x509crl_to_der(
VALUE self)
 
  388     if (!(out = BIO_new(BIO_s_mem()))) {
 
  391     if (!i2d_X509_CRL_bio(out, crl)) {
 
  400 ossl_x509crl_to_pem(
VALUE self)
 
  406     if (!(out = BIO_new(BIO_s_mem()))) {
 
  409     if (!PEM_write_bio_X509_CRL(out, crl)) {
 
  418 ossl_x509crl_to_text(
VALUE self)
 
  424     if (!(out = BIO_new(BIO_s_mem()))) {
 
  427     if (!X509_CRL_print(out, crl)) {
 
  439 ossl_x509crl_get_extensions(
VALUE self)
 
  447     count = X509_CRL_get_ext_count(crl);
 
  453     for (i=0; i<
count; i++) {
 
  454         ext = X509_CRL_get_ext(crl, i); 
 
  465 ossl_x509crl_set_extensions(
VALUE self, 
VALUE ary)
 
  477     while ((ext = X509_CRL_delete_ext(crl, 0)))
 
  478         X509_EXTENSION_free(ext);
 
  481         if (!X509_CRL_add_ext(crl, ext, -1)) {
 
  490 ossl_x509crl_add_extension(
VALUE self, 
VALUE extension)
 
  497     if (!X509_CRL_add_ext(crl, ext, -1)) {