Bug 116815
| Summary: | racoon: certificate checking regresion | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Retired] Red Hat Raw Hide | Reporter: | Felipe Alfaro Solana <felipe_alfaro> | ||||||
| Component: | ipsec-tools | Assignee: | Bill Nottingham <notting> | ||||||
| Status: | CLOSED UPSTREAM | QA Contact: | |||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | medium | ||||||||
| Version: | 1.0 | CC: | rvokal | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2005-02-04 21:57:57 UTC | Type: | --- | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Attachments: |
|
||||||||
|
Description
Felipe Alfaro Solana
2004-02-25 14:23:32 UTC
Created attachment 98038 [details]
racoon configuration file
diff -ru ipsec-tools-0.2.2/src/racoon/crypto_openssl.c
ipsec-tools-0.2.4/src/racoon/crypto_openssl.c
--- ipsec-tools-0.2.2/src/racoon/crypto_openssl.c 2003-03-03
18:56:56.000000000 -0500
+++ ipsec-tools-0.2.4/src/racoon/crypto_openssl.c 2004-01-19
12:45:41.000000000 -0500
@@ -272,6 +279,10 @@
if (csc == NULL)
goto end;
X509_STORE_CTX_init(csc, cert_ctx, x509, NULL);
+#if OPENSSL_VERSION_NUMBER >= 0x00907000L
+ X509_STORE_CTX_set_flags (csc, X509_V_FLAG_CRL_CHECK);
+ X509_STORE_CTX_set_flags (csc, X509_V_FLAG_CRL_CHECK_ALL);
+#endif
error = X509_verify_cert(csc);
X509_STORE_CTX_cleanup(csc);
#else
I'm assuming if you back those bits out, it starts working?
Yep! You are totally right... I have created a backout patch from the one you've produced and the modified the spec file for ipsec-tools-0.2.4-1 to include it. The backout patch is attached next as ipsec-tools-0.2.4-x509.patch. What should I expect from this? Will this patch get included in next iterations of ipsec-tools or will this regression in behavior get fixed upstream? Created attachment 98067 [details]
Backout X.509 mandatory CRL checking
This patch will revert ipsec-tools-0.2.4 racoon X.509 CRL behavior as it was in
version 0.2.2.
It looks like the OpenSSL logic is as follows: When the X509_V_FLAG_CRL_CHECK flag is set X509_verify_cert will attempt to do CRL verification; it will use the lookup functions which Racoon supplies to find CRLs (pointing at the configured file/directory containing CAs&CRLs). If a CRL cannot be found for a particular cert, it will call the cb_check_cert() callback in Racoon, which can then choose to ignore that error if it wishes, and hence, not care if certs are used for which no CRLs have been configured. (There's a memory leak in eay_get_x509subjectaltname to boot, GENERAL_NAMES_free(gens) is missing). Instead of removing the _flags calls, does adding: case X509_V_ERR_UNABLE_TO_GET_CRL: at the beginning of the switch (ctx->error) in cb_check_cert also fix the problem? It would still leave noisy warning messages and unnecessary processing, really I'd expect CRL processing to be a separate config option in racoon. This is not something we're going to change outside of upstream; probably bringing it up on the upstream lists is best. |