Exemple #1
0
      static X509_CRL *dup(const X509_CRL *crl)
      {
	if (crl)
	  {
	    return X509_CRL_dup(const_cast<X509_CRL *>(crl));
	  }
	else
	  return NULL;
      }
VALUE
ossl_x509crl_new(X509_CRL *crl)
{
    X509_CRL *tmp;
    VALUE obj;

    tmp = crl ? X509_CRL_dup(crl) : X509_CRL_new();
    if(!tmp) ossl_raise(eX509CRLError, NULL);
    WrapX509CRL(cX509CRL, obj, tmp);
        
    return obj;
}
std::vector<CertificateRevocationList *> Pkcs7SignedData::getCrls()
{
	std::vector<CertificateRevocationList *> ret;
	int i, num;
	X509_CRL *oneX509Crl;
	CertificateRevocationList *crl;
	num = sk_X509_CRL_num(this->pkcs7->d.sign->crl);
	for (i=0;i<num;i++)
	{
		oneX509Crl = sk_X509_CRL_value(this->pkcs7->d.sign->crl, i);
		crl = new CertificateRevocationList(X509_CRL_dup(oneX509Crl));
		ret.push_back(crl);
	}
	return ret;	
}
static VALUE
ossl_x509crl_copy(VALUE self, VALUE other)
{
    X509_CRL *a, *b, *crl;
	
    rb_check_frozen(self);
    if (self == other) return self;
    GetX509CRL(self, a);
    SafeGetX509CRL(other, b);
    if (!(crl = X509_CRL_dup(b))) {
	ossl_raise(eX509CRLError, NULL);
    }
    X509_CRL_free(a);
    DATA_PTR(self) = crl;

    return self;
}