If you:
1) import a CA certificate (I have used https://github.com/cryptostorm/leakblock/blob/master/superfish.com/rootcrt.crt)
At this point "Revocation" field in this certificate in the "Certificates" tab is empty.
2) import a private key (I have used https://github.com/cryptostorm/leakblock/blob/master/superfish.com/encrypted_key.txt)
At this point "Revocation" field in this certificate says "CRL expires: 2015-02-19" (current date at the time of the writing) and the background is red.
This is done despite not having any CRL imported, created or otherwise available.
This is because in lib/pki_x509.c we have:
831 case HD_cert_revokation:
832 if (isRevoked())
833 return QVariant(getRevoked().toSortable());
834 else if (canSign())
835 return QVariant(tr("CRL expires: %1").
836 arg(crlExpiry.toSortable()));
837 return QVariant();
and crlExpiry field gets initialized to "today" in the same file:
130 void pki_x509::init()
131 {
132 psigner = NULL;
133 trust = 0;
134 efftrust = 0;
135 revoked = a1time::now();
136 caSerial = 1;
137 caTemplate = "";
138 crlDays = 30;
139 crlExpiry = a1time::now();
140 class_name = "pki_x509";
Since isRevoked() is false and canSign() returns true because we have a private key, a bogus revocation information is shown.
The above code is taken from git commit 70b4f42f3677d25501295bcf4bde068cc4fb2366
Attached please find a simple (possibly incomplete) patch to fix the issue.
Last edit: saperski 2015-02-19
Patch looks reasonable.
Will be applied to the next version
Fixed by applaing the patch in XCA 1.2.0