diff options
| -rw-r--r-- | src/lib/libcrypto/x509/x509_verify.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/lib/libcrypto/x509/x509_verify.c b/src/lib/libcrypto/x509/x509_verify.c index dd053ad812..9073dda31d 100644 --- a/src/lib/libcrypto/x509/x509_verify.c +++ b/src/lib/libcrypto/x509/x509_verify.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: x509_verify.c,v 1.40 2021/08/18 15:10:46 beck Exp $ */ | 1 | /* $OpenBSD: x509_verify.c,v 1.41 2021/08/18 15:32:38 beck Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2020-2021 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2020-2021 Bob Beck <beck@openbsd.org> |
| 4 | * | 4 | * |
| @@ -312,7 +312,7 @@ static int | |||
| 312 | x509_verify_ctx_validate_legacy_chain(struct x509_verify_ctx *ctx, | 312 | x509_verify_ctx_validate_legacy_chain(struct x509_verify_ctx *ctx, |
| 313 | struct x509_verify_chain *chain, size_t depth) | 313 | struct x509_verify_chain *chain, size_t depth) |
| 314 | { | 314 | { |
| 315 | int ret = 0; | 315 | int ret = 0, trust; |
| 316 | 316 | ||
| 317 | if (ctx->xsc == NULL) | 317 | if (ctx->xsc == NULL) |
| 318 | return 1; | 318 | return 1; |
| @@ -330,6 +330,10 @@ x509_verify_ctx_validate_legacy_chain(struct x509_verify_ctx *ctx, | |||
| 330 | ctx->xsc->error = X509_V_OK; | 330 | ctx->xsc->error = X509_V_OK; |
| 331 | ctx->xsc->error_depth = 0; | 331 | ctx->xsc->error_depth = 0; |
| 332 | 332 | ||
| 333 | trust = x509_vfy_check_trust(ctx->xsc); | ||
| 334 | if (trust == X509_TRUST_REJECTED) | ||
| 335 | goto err; | ||
| 336 | |||
| 333 | if (!x509_verify_ctx_set_xsc_chain(ctx, chain, 0, 1)) | 337 | if (!x509_verify_ctx_set_xsc_chain(ctx, chain, 0, 1)) |
| 334 | goto err; | 338 | goto err; |
| 335 | 339 | ||
| @@ -354,6 +358,10 @@ x509_verify_ctx_validate_legacy_chain(struct x509_verify_ctx *ctx, | |||
| 354 | if (!x509_vfy_check_policy(ctx->xsc)) | 358 | if (!x509_vfy_check_policy(ctx->xsc)) |
| 355 | goto err; | 359 | goto err; |
| 356 | 360 | ||
| 361 | if ((!(ctx->xsc->param->flags & X509_V_FLAG_PARTIAL_CHAIN)) && | ||
| 362 | trust != X509_TRUST_TRUSTED) | ||
| 363 | goto err; | ||
| 364 | |||
| 357 | ret = 1; | 365 | ret = 1; |
| 358 | 366 | ||
| 359 | err: | 367 | err: |
