gnupg/sm
Werner Koch 8c167febc0
sm: Add special case for expired intermediate certificates.
* sm/gpgsm.h (struct server_control_s): Add field 'current_time'.
* sm/certchain.c (find_up_search_by_keyid): Detect a corner case.
Also simplify by using ref-ed cert objects in place of an anyfound
var.
--

See the code for a description of the problem. Tested using the certs
from the bug report and various command lines

  gpgsm --faked-system-time=XXXX --disable-crl-checks \
         -ea -v --debug x509  -r 0x95599828

with XXXX being 20190230T000000 -> target cert too young
with XXXX being 20190330T000000 -> okay
with XXXX being 20190830T000000 -> okay, using the long term cert
with XXXX being 20220330T000000 -> target cert expired

The --disabled-crl-checks option is required because in our a simple
test setting dirmngr does not know about the faked time.

GnuPG-bug-id: 4696
Signed-off-by: Werner Koch <wk@gnupg.org>
(cherry picked from commit d246f317c0)
2019-12-06 20:32:57 +01:00
..
ChangeLog-2011 Generate the ChangeLog from commit logs. 2011-12-01 11:09:02 +01:00
Makefile.am Remove -I option to common. 2017-03-07 20:25:54 +09:00
call-agent.c sm: Show the usage flags when generating a key from a card. 2019-08-21 13:59:17 +02:00
call-dirmngr.c sm: Fix dirmngr loadcrl for intermediate certs 2018-10-23 15:59:54 +02:00
certchain.c sm: Add special case for expired intermediate certificates. 2019-12-06 20:32:57 +01:00
certcheck.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
certdump.c sm: Fix a warning in an es_fopencooie function. 2019-05-12 20:41:32 +02:00
certlist.c sm: Avoid confusing diagnostic for the default key. 2019-05-27 15:48:41 +02:00
certreqgen-ui.c sm: Show the usage flags when generating a key from a card. 2019-08-21 13:59:17 +02:00
certreqgen.c gpgsm: default to 3072-bit keys. 2019-02-28 11:00:31 +01:00
decrypt.c sm: Support AES-256 key. 2019-08-12 10:42:34 +09:00
delete.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
encrypt.c gpg,sm: String changes for compliance diagnostics. 2017-07-28 17:46:43 +02:00
export.c sm: Fix minor memory leak in --export-p12. 2018-02-14 14:54:51 +01:00
fingerprint.c Remove -I option to common. 2017-03-07 20:25:54 +09:00
gpgsm-w32info.rc w32: Add icons and version information. 2013-05-07 21:35:48 +02:00
gpgsm.c sm: Allow decryption even if expired other keys are configured. 2019-03-26 13:35:18 +01:00
gpgsm.h sm: Add special case for expired intermediate certificates. 2019-12-06 20:32:57 +01:00
import.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
keydb.c sm, w32: Fix initial keybox creation 2017-11-14 12:26:29 +01:00
keydb.h gpg,sm: Add STATUS_ERROR keydb_search and keydb_add-resource. 2016-11-10 17:07:28 +01:00
keylist.c sm: Print Yubikey attestation extensions with --dump-cert. 2019-03-07 10:53:52 +01:00
minip12.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
minip12.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
misc.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
passphrase.c Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
passphrase.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
qualified.c Spelling fixes in docs and comments. 2017-04-28 10:06:33 +09:00
server.c Return better error code for some getinfo IPC commands. 2019-06-03 16:33:50 +02:00
sign.c sm: Avoid confusing diagnostic for the default key. 2019-05-27 15:48:41 +02:00
verify.c gpg,sm: String changes for compliance diagnostics. 2017-07-28 17:46:43 +02:00