Juan Lang : crypt32: Implement CertFindCertificateInStore for CERT_FIND_PUBLIC_KEY.

Alexandre Julliard julliard at winehq.org
Wed Jan 28 08:02:54 CST 2009


Module: wine
Branch: master
Commit: bf0406cf3a2f9450983e4b48537dfe9f12fdf707
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bf0406cf3a2f9450983e4b48537dfe9f12fdf707

Author: Juan Lang <juan.lang at gmail.com>
Date:   Tue Jan 27 09:00:40 2009 -0800

crypt32: Implement CertFindCertificateInStore for CERT_FIND_PUBLIC_KEY.

---

 dlls/crypt32/cert.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/dlls/crypt32/cert.c b/dlls/crypt32/cert.c
index 3d2b3de..5c2c786 100644
--- a/dlls/crypt32/cert.c
+++ b/dlls/crypt32/cert.c
@@ -966,6 +966,17 @@ static BOOL compare_cert_by_name(PCCERT_CONTEXT pCertContext, DWORD dwType,
     return ret;
 }
 
+static BOOL compare_cert_by_public_key(PCCERT_CONTEXT pCertContext,
+ DWORD dwType, DWORD dwFlags, const void *pvPara)
+{
+    CERT_PUBLIC_KEY_INFO *publicKey = (CERT_PUBLIC_KEY_INFO *)pvPara;
+    BOOL ret;
+
+    ret = CertComparePublicKeyInfo(pCertContext->dwCertEncodingType,
+     &pCertContext->pCertInfo->SubjectPublicKeyInfo, publicKey);
+    return ret;
+}
+
 static BOOL compare_cert_by_subject_cert(PCCERT_CONTEXT pCertContext,
  DWORD dwType, DWORD dwFlags, const void *pvPara)
 {
@@ -1201,6 +1212,9 @@ PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore,
     case CERT_COMPARE_NAME:
         compare = compare_cert_by_name;
         break;
+    case CERT_COMPARE_PUBLIC_KEY:
+        compare = compare_cert_by_public_key;
+        break;
     case CERT_COMPARE_SUBJECT_CERT:
         compare = compare_cert_by_subject_cert;
         break;




More information about the wine-cvs mailing list