Juan Lang : crypt32: Simplify certificate creation.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jun 20 05:23:13 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 661aecc761e119d0e7a58511408367662045247c
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=661aecc761e119d0e7a58511408367662045247c

Author: Juan Lang <juan_lang at yahoo.com>
Date:   Mon Jun 19 14:10:29 2006 -0700

crypt32: Simplify certificate creation.

Decoding already handles signed and unsigned certs, so don't duplicate
that in CertCreateCertificateContext.

---

 dlls/crypt32/cert.c |   24 +++---------------------
 1 files changed, 3 insertions(+), 21 deletions(-)

diff --git a/dlls/crypt32/cert.c b/dlls/crypt32/cert.c
index 3893bdb..2bcc4f7 100644
--- a/dlls/crypt32/cert.c
+++ b/dlls/crypt32/cert.c
@@ -73,33 +73,15 @@ PCCERT_CONTEXT WINAPI CertCreateCertific
 {
     PCERT_CONTEXT cert = NULL;
     BOOL ret;
-    PCERT_SIGNED_CONTENT_INFO signedCert = NULL;
     PCERT_INFO certInfo = NULL;
     DWORD size = 0;
 
     TRACE("(%08lx, %p, %ld)\n", dwCertEncodingType, pbCertEncoded,
      cbCertEncoded);
 
-    /* First try to decode it as a signed cert. */
-    ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT, pbCertEncoded,
-     cbCertEncoded, CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&signedCert, &size);
-    if (ret)
-    {
-        size = 0;
-        ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT_TO_BE_SIGNED,
-         signedCert->ToBeSigned.pbData, signedCert->ToBeSigned.cbData,
-         CRYPT_DECODE_ALLOC_FLAG, NULL, (BYTE *)&certInfo, &size);
-        LocalFree(signedCert);
-    }
-    /* Failing that, try it as an unsigned cert */
-    if (!ret)
-    {
-        size = 0;
-        ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT_TO_BE_SIGNED,
-         pbCertEncoded, cbCertEncoded,
-         CRYPT_DECODE_ALLOC_FLAG | CRYPT_DECODE_NOCOPY_FLAG, NULL,
-         (BYTE *)&certInfo, &size);
-    }
+    ret = CryptDecodeObjectEx(dwCertEncodingType, X509_CERT_TO_BE_SIGNED,
+     pbCertEncoded, cbCertEncoded, CRYPT_DECODE_ALLOC_FLAG, NULL,
+     (BYTE *)&certInfo, &size);
     if (ret)
     {
         BYTE *data = NULL;




More information about the wine-cvs mailing list