mirror of
https://github.com/chris2511/xca.git
synced 2026-09-12 19:51:05 +05:00
CRLs will revoke existing certs
This commit is contained in:
parent
dd953112d7
commit
e4f7bf60dd
@ -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)
|
||||
|
||||
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user