Module: wine Branch: master Commit: eeec9bf349e620fdc5d8653229bbe700c2300db7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=eeec9bf349e620fdc5d8653229...
Author: Juan Lang juan.lang@gmail.com Date: Thu Oct 16 16:56:56 2008 -0700
crypt32: Correct another chain status discrepancy with Windows.
---
dlls/crypt32/chain.c | 5 ++++- dlls/crypt32/tests/chain.c | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/crypt32/chain.c b/dlls/crypt32/chain.c index 9365a22..1c113c1 100644 --- a/dlls/crypt32/chain.c +++ b/dlls/crypt32/chain.c @@ -754,10 +754,13 @@ static void CRYPT_CheckSimpleChain(PCertificateChainEngine engine, if (CRYPT_IsSimpleChainCyclic(chain)) { /* If the chain is cyclic, then the path length constraints - * are violated, because the chain is infinitely long. + * are violated, because the chain is infinitely long. MS + * misleadingly also sets the not supported name constraint bit, + * whether or not name constraints were present. */ pathLengthConstraintViolated = TRUE; chain->TrustStatus.dwErrorStatus |= + CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT | CERT_TRUST_INVALID_BASIC_CONSTRAINTS; } /* FIXME: check valid usages */ diff --git a/dlls/crypt32/tests/chain.c b/dlls/crypt32/tests/chain.c index 5752eff..772da0f 100644 --- a/dlls/crypt32/tests/chain.c +++ b/dlls/crypt32/tests/chain.c @@ -1530,7 +1530,7 @@ static ChainCheck chainCheck[] = { { CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT | CERT_TRUST_INVALID_BASIC_CONSTRAINTS | CERT_TRUST_IS_CYCLIC, 0 }, 1, simpleStatus9 }, - TODO_ERROR | TODO_INFO }, + TODO_INFO }, { { sizeof(chain10) / sizeof(chain10[0]), chain10 }, { { 0, CERT_TRUST_HAS_PREFERRED_ISSUER }, { CERT_TRUST_IS_UNTRUSTED_ROOT, 0 }, 1, simpleStatus10 }, 0 },