From f1ec80d13ba7545ae3278248f776e45ccf2d1ccf Mon Sep 17 00:00:00 2001 From: Juan Lang Date: Tue, 14 Aug 2007 10:16:10 -0700 Subject: [PATCH] wintrust: Implement WTHelperGetProvCertFromChain. --- dlls/wintrust/wintrust.spec | 2 +- dlls/wintrust/wintrust_main.c | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/dlls/wintrust/wintrust.spec b/dlls/wintrust/wintrust.spec index 9242120ae15..b822cbe363f 100644 --- a/dlls/wintrust/wintrust.spec +++ b/dlls/wintrust/wintrust.spec @@ -80,7 +80,7 @@ @ stub WTHelperGetFileHandle @ stub WTHelperGetFileName @ stub WTHelperGetKnownUsages -@ stub WTHelperGetProvCertFromChain +@ stdcall WTHelperGetProvCertFromChain(ptr long) @ stub WTHelperGetProvPrivateDataFromChain @ stdcall WTHelperGetProvSignerFromChain(ptr long long long) @ stub WTHelperIsInRootStore diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c index 8e7859d8874..f93cb07b66d 100644 --- a/dlls/wintrust/wintrust_main.c +++ b/dlls/wintrust/wintrust_main.c @@ -124,6 +124,23 @@ CRYPT_PROVIDER_SGNR * WINAPI WTHelperGetProvSignerFromChain( return sgnr; } +/*********************************************************************** + * WTHelperGetProvCertFromChain (WINTRUST.@) + */ +CRYPT_PROVIDER_CERT * WINAPI WTHelperGetProvCertFromChain( + CRYPT_PROVIDER_SGNR *pSgnr, DWORD idxCert) +{ + CRYPT_PROVIDER_CERT *cert; + + TRACE("(%p %d)\n", pSgnr, idxCert); + + if (idxCert >= pSgnr->csCertChain || !pSgnr->pasCertChain) + return NULL; + cert = &pSgnr->pasCertChain[idxCert]; + TRACE("returning %p\n", cert); + return cert; +} + /*********************************************************************** * WTHelperProvDataFromStateData (WINTRUST.@) */