CRLs will revoke existing certs

This commit is contained in:
chris2511 2003-12-12 16:01:29 +00:00
parent dd953112d7
commit e4f7bf60dd
5 changed files with 29 additions and 23 deletions

View File

@ -79,15 +79,15 @@ db_base::db_base(DbEnv *dbe, QString DBfile, QString DB, DbTxn *global_tid,
db_base::~db_base()
{
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
fprintf(stderr, "close 1:\n" );
CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
// fprintf(stderr, "close 1:\n" );
// CRYPTO_mem_leaks_fp(stderr);
data->close(0);
container.setAutoDelete(true);
container.clear();
fprintf(stderr, "close 2:\n" );
CRYPTO_mem_leaks_fp(stderr);
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF);
// fprintf(stderr, "close 2:\n" );
// CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF);
}
void *db_base::getData(void *key, int length, int *dsize)
@ -192,7 +192,7 @@ void db_base::putInt(QString key, int dat, DbTxn *tid)
void db_base::loadContainer()
{
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
// CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
DbTxn *tid = NULL;
Dbc *cursor = NULL;
@ -211,16 +211,16 @@ void db_base::loadContainer()
int size = d->get_size();
try {
fprintf(stderr, "loadContainer 1:\n" );
CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_leaks_fp(stderr);
pki = newPKI();
fprintf(stderr, "loadContainer 2:\n" );
CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_leaks_fp(stderr);
pki->setIntName(desc);
fprintf(stderr, "loadContainer 3:\n" );
CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_leaks_fp(stderr);
pki->fromData(p, size);
fprintf(stderr, "loadContainer 4:\n" );
CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_leaks_fp(stderr);
container.append(pki);
}
catch (errorEx &err) {
@ -234,10 +234,10 @@ void db_base::loadContainer()
delete (d);
cursor->close();
fprintf(stderr, "loadContainer 5:\n" );
CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_leaks_fp(stderr);
preprocess();
fprintf(stderr, "loadContainer 6:\n" );
CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_leaks_fp(stderr);
tid->commit(0);
}
catch (DbException &err) {
@ -245,8 +245,8 @@ void db_base::loadContainer()
throw errorEx(err.what());
}
fprintf(stderr, "loadContainer 7:\n" );
CRYPTO_mem_leaks_fp(stderr);
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF);
// CRYPTO_mem_leaks_fp(stderr);
// CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF);
}
void db_base::insertPKI(pki_base *pki)

View File

@ -74,16 +74,17 @@ void db_crl::preprocess()
}
}
//void db_crl::revokeCerts(db_x509 *crts, pki_crl *crl)
void db_crl::revokeCerts(pki_crl *crl)
{
int numc, i;
x509rev revok;
if (! certs) return;
x509rev revok;
pki_x509 *rev;
numc = crl->numRev();
a1int x;
for (i=0; i<numc; i++) {
revok = crl->getRev(i);
emit revokeCert(revok);
certs->getByIssSerial(crl->getIssuer(), revok.getSerial());
rev->setRevoked(revok.getDate());
}
}

View File

@ -69,9 +69,6 @@ class db_crl: public db_base
void preprocess();
void inToCont(pki_base *pki);
pki_base *insert(pki_base *item);
signals:
void revokeCert(const x509rev &revok);
};
#endif

View File

@ -272,6 +272,7 @@ void pki_x509::fromData(unsigned char *p, int size)
{
int version, sCert, sRev, sLastCrl;
unsigned char *p1 = p;
X509 *cert_sik = cert;
version = intFromData(&p1);
if (version >=1 || version <= 4) {
sCert = intFromData(&p1);
@ -316,7 +317,12 @@ void pki_x509::fromData(unsigned char *p, int size)
trust = 1;
efftrust = 1;
}
if (cert)
X509_free(cert_sik);
else
cert = cert_sik;
openssl_error();
}
@ -539,6 +545,8 @@ void pki_x509::setRevoked(const a1time &when)
{
isrevoked = true;
revoked = when;
setEffTrust(0);
setTrust(0);
openssl_error();
}

View File

@ -105,7 +105,7 @@ MainWindow::MainWindow(QWidget *parent, const char *name )
#ifdef MDEBUG
CRYPTO_malloc_debug_init();
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_OFF);
CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
fprintf(stderr, "malloc() debugging on.\n");
#endif