mirror of
git://source.winehq.org/git/wine.git
synced 2024-11-05 18:01:34 +00:00
crypt32: Fix CertAddCertificateContextToStore when called with CERT_STORE_ADD_USE_EXISTING.
This commit is contained in:
parent
b45367347a
commit
e5256d9840
2 changed files with 15 additions and 0 deletions
|
@ -2160,7 +2160,12 @@ BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore,
|
|||
break;
|
||||
case CERT_STORE_ADD_USE_EXISTING:
|
||||
if (existing)
|
||||
{
|
||||
CertContext_CopyProperties(existing, pCertContext);
|
||||
*ppStoreContext = CertDuplicateCertificateContext(existing);
|
||||
}
|
||||
else
|
||||
toAdd = CertDuplicateCertificateContext(pCertContext);
|
||||
break;
|
||||
default:
|
||||
FIXME("Unimplemented add disposition %d\n", dwAddDisposition);
|
||||
|
|
|
@ -134,6 +134,7 @@ static void testAddCert(void)
|
|||
HCERTSTORE store;
|
||||
HCERTSTORE collection;
|
||||
PCCERT_CONTEXT context;
|
||||
PCCERT_CONTEXT copyContext;
|
||||
BOOL ret;
|
||||
|
||||
store = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0,
|
||||
|
@ -274,6 +275,15 @@ static void testAddCert(void)
|
|||
CERT_STORE_ADD_REPLACE_EXISTING, NULL);
|
||||
ok(ret, "CertAddCertificateContextToStore failed: %08x\n",
|
||||
GetLastError());
|
||||
/* use the existing certificate and ask for a copy of the context*/
|
||||
copyContext = NULL;
|
||||
ret = CertAddCertificateContextToStore(collection, context,
|
||||
CERT_STORE_ADD_USE_EXISTING, ©Context);
|
||||
ok(ret, "CertAddCertificateContextToStore failed: %08x\n",
|
||||
GetLastError());
|
||||
ok(copyContext != NULL, "Expected on output a non NULL copyContext\n");
|
||||
if (copyContext)
|
||||
CertFreeCertificateContext(copyContext);
|
||||
/* but adding a new certificate isn't allowed. */
|
||||
ret = CertAddCertificateContextToStore(collection, context,
|
||||
CERT_STORE_ADD_ALWAYS, NULL);
|
||||
|
|
Loading…
Reference in a new issue