Module: wine Branch: master Commit: 4727212e012de9a60dd320d84f1a8edf5aaa23f7 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4727212e012de9a60dd320d84f...
Author: Juan Lang juan.lang@gmail.com Date: Wed Nov 18 16:27:49 2009 -0800
crypt32: Add support for CRL_FIND_ISSUED_BY_SIGNATURE_FLAG to CertFindCRLInStore.
---
dlls/crypt32/crl.c | 5 +++++ dlls/crypt32/tests/crl.c | 1 - 2 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/dlls/crypt32/crl.c b/dlls/crypt32/crl.c index f71e6a8..4f69a9d 100644 --- a/dlls/crypt32/crl.c +++ b/dlls/crypt32/crl.c @@ -116,6 +116,11 @@ static BOOL compare_crl_issued_by(PCCRL_CONTEXT pCrlContext, DWORD dwType,
ret = CertCompareCertificateName(issuer->dwCertEncodingType, &issuer->pCertInfo->Issuer, &pCrlContext->pCrlInfo->Issuer); + if (ret && (dwFlags & CRL_FIND_ISSUED_BY_SIGNATURE_FLAG)) + ret = CryptVerifyCertificateSignatureEx(0, + issuer->dwCertEncodingType, + CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL, (void *)pCrlContext, + CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT, (void *)issuer, 0, NULL); } else ret = TRUE; diff --git a/dlls/crypt32/tests/crl.c b/dlls/crypt32/tests/crl.c index 2d361a5..0eaf43a 100644 --- a/dlls/crypt32/tests/crl.c +++ b/dlls/crypt32/tests/crl.c @@ -382,7 +382,6 @@ static void testFindCRL(void) /* Try various find flags */ context = pCertFindCRLInStore(store, 0, CRL_FIND_ISSUED_BY_SIGNATURE_FLAG, CRL_FIND_ISSUED_BY, cert, NULL); - todo_wine ok(!context, "unexpected context\n"); /* The CRL doesn't have an AKI extension, so it matches any cert */ context = pCertFindCRLInStore(store, 0, CRL_FIND_ISSUED_BY_AKI_FLAG,