1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-09-22 15:11:41 +02:00
gnupg/sm
Werner Koch 7fa1d3cc82
gpgsm: Always use the chain model if the root-CA requests this.
* sm/call-dirmngr.c (gpgsm_dirmngr_isvalid): Do not use
option --force-default-responder.
* sm/certchain.c (is_cert_still_valid): Rename arg for clarity.
(gpgsm_validate_chain): Always switch to chain model.
--

The trustlist.txt may indicate that a root CA issues certificates
which shall be validated using the chain model.  This is for example
the case for qualified signatures.  Before this change we did this
only if the default shell model indicated that a certificate has
expired.  This optimization is technically okay but has one problem:
The chain model requires the use of OCSP but we switch to this only
when running the chain model validation.  To catch revoked
certificates using OCSP we need to always switch to the chain model
unless OCSP has been enabled anyway.

Note that the old --force-default-responder option is not anymore
used.

Test cases are certificates issued by

  # CN=TeleSec qualified Root CA 1
  # O=Deutsche Telekom AG
  # C=DE
  # 2.5.4.97=USt-IdNr. DE 123475223
  90:C6:13:6C:7D:EF:EF:E9:7C:C7:64:F9:D2:67:8E:AD:03:E5:52:96 \
    S cm qual relax

A sample revoked certificate is

-----BEGIN CERTIFICATE-----
MIIDTzCCAvSgAwIBAgIQIXfquQjq32B03CdaflIbiDAMBggqhkjOPQQDAgUAMHEx
CzAJBgNVBAYTAkRFMRwwGgYDVQQKDBNEZXV0c2NoZSBUZWxla29tIEFHMSMwIQYD
VQQDDBpUZWxlU2VjIFBLUyBlSURBUyBRRVMgQ0EgMTEfMB0GA1UEYQwWVVN0LUlk
TnIuIERFIDEyMzQ3NTIyMzAeFw0yMDA2MjIxMDQ1NDJaFw0yMzA2MjUyMzU5MDBa
MDAxCzAJBgNVBAYTAkRFMRUwEwYDVQQDDAxLb2NoLCBXZXJuZXIxCjAIBgNVBAUT
ATMwWjAUBgcqhkjOPQIBBgkrJAMDAggBAQcDQgAEbkEXUuXTriWOwqQhjlh11oCc
6Z8lQdQDz3zY/OEh8fMJS7AKBNo8zkpPKDJ2olPph18b1goEbLiqHQsPRPahDaOC
AaowggGmMB8GA1UdIwQYMBaAFP/0iep1rMXT0iQ0+WUqBvLM6bqBMB0GA1UdDgQW
BBQEI3xsIUDnoOx+gLYbG63v5/f9kjAOBgNVHQ8BAf8EBAMCBkAwDAYDVR0TAQH/
BAIwADAgBgNVHREEGTAXgRV3ZXJuZXIua29jaEBnbnVwZy5jb20wPQYDVR0gBDYw
NDAyBgcEAIvsQAECMCcwJQYIKwYBBQUHAgEWGWh0dHA6Ly9wa3MudGVsZXNlYy5k
ZS9jcHMwgYQGCCsGAQUFBwEBBHgwdjBLBggrBgEFBQcwAoY/aHR0cDovL3RxcmNh
MS5wa2kudGVsZXNlYy5kZS9jcnQvVGVsZVNlY19QS1NfZUlEQVNfUUVTX0NBXzEu
Y3J0MCcGCCsGAQUFBzABhhtodHRwOi8vcGtzLnRlbGVzZWMuZGUvb2NzcHIwXgYI
KwYBBQUHAQMEUjBQMAgGBgQAjkYBATAIBgYEAI5GAQQwOgYGBACORgEFMDAwLhYo
aHR0cHM6Ly93d3cudGVsZXNlYy5kZS9zaWduYXR1cmthcnRlL2FnYhMCZW4wDAYI
KoZIzj0EAwIFAANHADBEAiAqgB8gyZyj05CRdHD5KJcpG68DzQECYnYP6ZPasUYK
AQIgI1GtRMJWvFTIKsZpgY+ty0pRb5/K09fbmvaSAKFpv/I=
-----END CERTIFICATE-----
2022-12-05 14:25:04 +01:00
..
call-agent.c agent: New flag "qual" for the trustlist.txt. 2022-02-27 12:26:38 +01:00
call-dirmngr.c gpgsm: Always use the chain model if the root-CA requests this. 2022-12-05 14:25:04 +01:00
certchain.c gpgsm: Always use the chain model if the root-CA requests this. 2022-12-05 14:25:04 +01:00
certcheck.c sm: Avoid memory leaks and double double-free 2021-05-20 13:51:47 +02:00
certdump.c sm: Add LotW support to the key listing 2021-09-09 13:30:22 +02:00
certlist.c gpgsm: Allow ECC encryption keys with just keyAgreement specified. 2022-10-25 11:57:23 +02:00
certreqgen-ui.c gpgsm: Replace all assert calls by log_assert. 2020-07-08 14:40:34 +02:00
certreqgen.c gpgsm: Replace all assert calls by log_assert. 2020-07-08 14:40:34 +02:00
ChangeLog-2011 Generate the ChangeLog from commit logs. 2011-12-01 11:09:02 +01:00
decrypt.c gpgsm: New option --require-compliance 2022-03-08 19:28:16 +01:00
delete.c sm: Implement delete key in keyboxd mode 2020-09-21 09:20:40 +02:00
encrypt.c gpgsm: New option --require-compliance 2022-03-08 19:28:16 +01:00
export.c sm: Ask for the password for password based decryption (pwri) 2021-05-17 15:42:27 +02:00
fingerprint.c gpgsm: Allow ECC encryption keys with just keyAgreement specified. 2022-10-25 11:57:23 +02:00
gpgsm-w32info.rc w32: Add icons and version information. 2013-05-07 21:35:48 +02:00
gpgsm.c gpgsm: Change default algo to AES-256. 2022-12-01 10:12:21 +01:00
gpgsm.h gpgsm: Always use the chain model if the root-CA requests this. 2022-12-05 14:25:04 +01:00
import.c sm: Fix use of value NONE in gnupg_isotime_t type. 2022-02-18 11:11:12 +09:00
keydb.c sm,w32: Fix Unicode problem on key box creation. 2021-07-29 11:51:25 +02:00
keydb.h sm: Implement initial support for keyboxd. 2020-09-10 13:05:17 +02:00
keylist.c gpgsm: Fix colon outout of ECC encryption certificates 2022-11-15 16:31:46 +01:00
Makefile.am build: Fix "ksba.h not found" problem 2021-09-08 15:18:38 +02:00
minip12.c sm: Fix reporting of bad passphrase error 2022-09-09 18:23:11 +02:00
minip12.h sm: Silence some output on --quiet 2021-02-24 08:40:06 +01:00
misc.c sm: Print diagnostic about CRL problems due to Tor mode. 2022-04-11 17:57:14 +02:00
passphrase.c gpg,common,scd,sm: Function prototype fixes for modern compiler. 2022-09-13 16:34:00 +09:00
passphrase.h Change all http://www.gnu.org in license notices to https:// 2016-11-05 12:02:19 +01:00
qualified.c Replace most of the remaining stdio calls by estream calls. 2020-10-20 12:15:56 +02:00
server.c Remove remaining support for WindowsCE 2022-06-03 10:08:21 +02:00
sign.c gpgsm: Also announce AES256-CBC in signatures. 2022-10-28 15:24:17 +02:00
t-minip12.c sm: Add support to export ECC private keys. 2020-04-27 19:54:39 +02:00
verify.c dirmngr: Silence ocsp debug output. 2022-11-25 09:26:30 +01:00