Commit 52073b76 authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Partial path fix.

When verifying a partial path always check to see if the EE certificate
is explicitly trusted: the path could contain other untrusted certificates.
parent a6e7d1c0
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -787,11 +787,9 @@ static int check_trust(X509_STORE_CTX *ctx)
	 */
	if (ctx->param->flags & X509_V_FLAG_PARTIAL_CHAIN)
		{
		X509 *mx;
		if (ctx->last_untrusted < sk_X509_num(ctx->chain))
			return X509_TRUST_TRUSTED;
		if (sk_X509_num(ctx->chain) == 1)
			{
			X509 *mx;
		x = sk_X509_value(ctx->chain, 0);
		mx = lookup_cert_match(ctx, x);
		if (mx)
@@ -802,7 +800,6 @@ static int check_trust(X509_STORE_CTX *ctx)
			return X509_TRUST_TRUSTED;
			}
		}
		}

	/* If no trusted certs in chain at all return untrusted and
	 * allow standard (no issuer cert) etc errors to be indicated.