69#define MAX_STRING_LEN 512
112 if (
len > *allocatedLen)
130 if (
len > *allocatedLen)
156 if (
len > *allocatedLen)
177 static const WCHAR keyName[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'M',
178 'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'C',
'r',
'y',
'p',
't',
'o',
'g',
'r',
'a',
179 'p',
'h',
'y',
'\\',
'U',
'I',
'\\',
'C',
'e',
'r',
't',
'm',
'g',
'r',
'\\',
'P',
'u',
180 'r',
'p',
'o',
's',
'e',0 };
235 ptr = comma ? comma + 1 :
NULL,
259 (
usage->cUsageIdentifier + 1) *
sizeof(
char *));
260 if (
usage->rgpszUsageIdentifier)
261 usage->rgpszUsageIdentifier[
usage->cUsageIdentifier++] = oid;
279 ptr = comma ? comma + 1 :
NULL,
300 LPSTR disabledUsagesStr;
316 for (
i = 0; !disabled &&
323 (
LPSTR)(*ptr)->pszOID);
329 free(disabledUsages);
331 free(disabledUsagesStr);
336 return advancedUsage;
346 DWORD allocatedLen = 0;
392 char **oids =
malloc(cbOIDs);
403 for (
i = 0; !show &&
i < numOIDs;
i++)
409 for (
i = 0; !show &&
i < numOIDs;
i++)
442 'A',
'd',
'd',
'r',
'e',
's',
's',
'B',
'o',
'o',
'k',0 };
446 'T',
'r',
'u',
's',
't',
'e',
'd',
'P',
'u',
'b',
'l',
'i',
's',
'h',
'e',
'r',0 };
447static const WCHAR disallowed[] = {
'D',
'i',
's',
'a',
'l',
'l',
'o',
'w',
'e',
'd',0 };
500 data->nStores = cStores;
501 data->stores = storeList;
502 for (
i = 0;
i < cStores;
i++)
554 for (
i = 0;
i < tabs;
i++)
652 static const WCHAR keyName[] = {
'S',
'o',
'f',
't',
'w',
'a',
'r',
'e',
'\\',
'M',
653 'i',
'c',
'r',
'o',
's',
'o',
'f',
't',
'\\',
'C',
'r',
'y',
'p',
't',
'o',
'g',
'r',
'a',
654 'p',
'h',
'y',
'\\',
'U',
'I',
'\\',
'C',
'e',
'r',
't',
'm',
'g',
'r',
'\\',
'P',
'u',
655 'r',
'p',
'o',
's',
'e',0 };
665 for (
i = 0;
i < purposes;
i++)
719 LPSTR disabledUsages;
744 ptr = comma ? comma + 1 :
NULL,
754 free(disabledUsages);
827 memset(&viewInfo, 0,
sizeof(viewInfo));
828 viewInfo.
dwSize =
sizeof(viewInfo);
872 if (
usage->cUsageIdentifier)
878 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
882 usage->rgpszUsageIdentifier[
i],
889 if (i < usage->cUsageIdentifier - 1)
899 usage->rgpszUsageIdentifier[
i],
915 if (i < usage->cUsageIdentifier - 1)
971 warningID =
data->stores[tabIndex].removePluralWarning;
973 warningID =
data->stores[tabIndex].removeWarning;
975 pTitle =
data->title;
1007 if (selectionCount == 1)
1029 else if (selectionCount > 1)
1041 info.dwSubjectChoice =
1043 info.hCertStore = store;
1071 item.pszText = buf1;
1072 item.iItem = index1;
1073 item.iSubItem = col;
1075 item.pszText = buf2;
1076 item.iItem = index2;
1096 &
cert2->pCertInfo->NotAfter);
1122 if (
data->imageList)
1172 if (numSelected == 1)
1298 TRACE(
"(%p)\n", pCryptUICertMgr);
1302 WARN(
"unexpected size %ld\n", pCryptUICertMgr->
dwSize);
1330#define CRYPTUI_ENABLE_SHOW_PHYSICAL_STORE 0x00000001
1388 if (storeInfo->
name)
1605 WARN(
"unexpected size %ld\n",
info->dwSize);
1611 return selectInfo.
store;
1627 WARN(
"unexpected size %ld\n",
info->dwSize);
1661 TRACE(
"(%p, %p)\n", pCertViewInfo, pfPropertiesChanged);
1663 memcpy(&viewInfo, pCertViewInfo,
sizeof(viewInfo));
1684 FIXME(
"ignoring additional prop sheet pages\n");
1706 TRACE(
"(%p, %p, %ld, %p)\n",
string,
buf,
cb, pcb);
1724 editstream.dwCookie = (
DWORD_PTR)&
string;
1725 editstream.dwError = 0;
1794 LPOLECACHE oleCache =
NULL;
1795 FORMATETC formatEtc;
1812 hr = IOleObject_GetUserClassID(
object, &
clsid);
1815 hr = IOleObject_QueryInterface(
object, &
IID_IOleCache, (
void**)&oleCache);
1819 formatEtc.ptd =
NULL;
1820 formatEtc.dwAspect = DVASPECT_CONTENT;
1821 formatEtc.lindex = -1;
1822 formatEtc.tymed = TYMED_GDI;
1823 hr = IOleCache_Cache(oleCache, &formatEtc, 0, &conn);
1827 (
void**)&dataObject);
1830 hr = IRichEditOle_GetClientSite(richEditOle, &clientSite);
1837 stgm.tymed = TYMED_GDI;
1839 stgm.pUnkForRelease =
NULL;
1840 hr = IDataObject_SetData(dataObject, &formatEtc, &stgm,
TRUE);
1844 reObject.
cbStruct =
sizeof(reObject);
1845 reObject.
cp = REO_CP_SELECTION;
1851 reObject.
dvaspect = DVASPECT_CONTENT;
1855 IRichEditOle_InsertObject(richEditOle, &reObject);
1859 IOleClientSite_Release(clientSite);
1861 IDataObject_Release(dataObject);
1863 IOleCache_Release(oleCache);
1865 IOleObject_Release(
object);
1867 IRichEditOle_Release(richEditOle);
1870#define MY_INDENT 200
1878 parFmt.
cbSize =
sizeof(parFmt);
1959 while (indexLow <= indexHigh)
1961 int cmp,
i = (indexLow + indexHigh) / 2;
1978 parFmt.
cbSize =
sizeof(parFmt);
2004 linebreak -
ptr, &parFmt);
2005 ptr = linebreak + 1;
2008 else if (multiline && *
ptr)
2015 }
while (linebreak);
2043 BOOL *anyUsageAdded)
2049 if (!*anyUsageAdded)
2053 parFmt.
cbSize =
sizeof(parFmt);
2059 *anyUsageAdded =
TRUE;
2061 memset(&charFmt, 0,
sizeof(charFmt));
2062 charFmt.
cbSize =
sizeof(charFmt);
2067 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension)))
2085 pszPolicyQualifierId);
2095 BOOL *anyUsageAdded)
2113 if (!*anyUsageAdded)
2117 parFmt.
cbSize =
sizeof(parFmt);
2123 *anyUsageAdded =
TRUE;
2125 memset(&charFmt, 0,
sizeof(charFmt));
2126 charFmt.
cbSize =
sizeof(charFmt);
2131 if (!
usage->cUsageIdentifier)
2134 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
2136 usage->rgpszUsageIdentifier[
i]);
2163 includeCertUsages =
TRUE;
2166 includeAppUsages =
TRUE;
2172 includeAppUsages = includeCertUsages =
TRUE;
2173 if (includeAppUsages)
2175 if (includeCertUsages)
2182 parFmt.
cbSize =
sizeof(parFmt);
2202 pszPolicyQualifierId, policyOid))
2217 &qualifierValue, &
size))
2224 &qualifierValue->
Value, qualifierStr,
size);
2227 return qualifierStr;
2239 &qualifierValue, &
size))
2279 if (cps || userNotice)
2283 if (issuerStatement)
2285 issuerStatement->
cps =
cps;
2315 else if (!
root->fTrustedRoot)
2320 memset(&charFmt, 0,
sizeof(charFmt));
2321 charFmt.
cbSize =
sizeof(charFmt);
2326 parFmt.
cbSize =
sizeof(parFmt);
2342 else if (!
root->fTrustedRoot)
2359 DWORD nameFlags,
int heading)
2366 memset(&charFmt, 0,
sizeof(charFmt));
2367 charFmt.
cbSize =
sizeof(charFmt);
2371 parFmt.
cbSize =
sizeof(parFmt);
2404 memset(&charFmt, 0,
sizeof(charFmt));
2405 charFmt.
cbSize =
sizeof(charFmt);
2409 parFmt.
cbSize =
sizeof(parFmt);
2451 if (issuerStatement->
cps)
2471 HLNF_OPENINNEWWINDOW, 0);
2472 IBindCtx_Release(bctx);
2492 TRACE(
"(%p, %08x, %08Ix, %08Ix)\n",
hwnd,
msg, wp, lp);
2515 if (issuerStatement)
2519 else if (issuerStatement->
cps)
2526 IBindCtx_Release(bctx);
2547 if (issuerStatement)
2551 free(issuerStatement);
2575 static const WCHAR fmt[] = {
'V',
'%',
'd',0 };
2589 static const WCHAR fmt[] = {
'%',
'0',
'2',
'x',
' ',0 };
2602 cert->pCertInfo->SerialNumber.cbData);
2679 cert->pCertInfo->SubjectPublicKeyInfo.Algorithm.pszObjId, 0);
2698 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData * 8;
2705 &
cert->pCertInfo->SubjectPublicKeyInfo);
2717 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.pbData,
2718 cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData);
2825 if (
cert->pCertInfo->SubjectPublicKeyInfo.PublicKey.cbData)
2848 if (
ext->Value.cbData)
2875 static const WCHAR fmt[] = {
'%',
'0',
'2',
'x',
' ',0 };
2885 if (
j ==
ext->Value.cbData &&
j % 8)
2887 static const WCHAR pad[] = {
' ',
' ',
' ' };
2943 for (
i = 0;
i <=
len;
i++)
2944 oidW[
i] =
ext->pszObjId[
i];
2958 for (
i = 0;
i <
cert->pCertInfo->cExtension;
i++)
2967 for (
i = 0;
i <
cert->pCertInfo->cExtension;
i++)
2968 if (
cert->pCertInfo->rgExtension[
i].fCritical)
2970 &
cert->pCertInfo->rgExtension[
i]);
2989 ext.Value.pbData = pb;
2990 ext.Value.cbData =
cb;
3127 char *oidCopy =
strdup(oid);
3134 info->pszOID = oidCopy;
3141 item.pszText = oidCopy;
3153 if (oid[0] !=
'0' && oid[0] !=
'1' && oid[0] !=
'2')
3155 else if (oid[1] !=
'.')
3170 else if (*(
ptr + 1) ==
'.')
3177 else if (!(*(
ptr + 1)))
3193#define MAX_PURPOSE 255
3409 else if (
usage->cUsageIdentifier)
3424 else if (
usage->cUsageIdentifier)
3438 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
3492#define WM_REFRESH_VIEW WM_USER + 0
3501#define MAX_FRIENDLY_NAME 40
3502#define MAX_DESCRIPTION 255
3535 for (
i = 0;
i < purposes;
i++)
3547 (
usage.cUsageIdentifier + 1) *
sizeof(
char *));
3548 if (
usage.rgpszUsageIdentifier)
3549 usage.rgpszUsageIdentifier[
usage.cUsageIdentifier++] =
3558 if (
data->pfPropertiesChanged)
3567 TRACE(
"(%p, %08x, %08Ix, %08Ix)\n",
hwnd,
msg, wp, lp);
3674 for (
i = 0;
i < cItem;
i++)
3723 hdr.dwSize =
sizeof(
hdr);
3737 for (
i = 0;
i <
data->cFields;
i++)
3763 TRACE(
"(%p, %08x, %08Ix, %08Ix)\n",
hwnd,
msg, wp, lp);
3793 data->pCertViewInfo->pCertContext,
3833 info.pCertContext =
data->pCertViewInfo->pCertContext;
3918 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
3919 data->pCertViewInfo->idxCounterSigner);
3926 return index << 1 | 1;
3933 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
3934 data->pCertViewInfo->idxCounterSigner);
3981 data->pCertViewInfo->idxSigner,
data->pCertViewInfo->fCounterSigner,
3982 data->pCertViewInfo->idxCounterSigner);
4011 tvis.
item.iImage = 2;
4015 tvis.
item.iImage = 0;
4017 tvis.
item.iImage = 1;
4018 tvis.
item.iSelectedImage = tvis.
item.iImage;
4038 else if (
cert->dwRevokedReason)
4087 data->pCertViewInfo->idxSigner,
4088 data->pCertViewInfo->fCounterSigner,
4089 data->pCertViewInfo->idxCounterSigner);
4090 memset(&viewInfo, 0,
sizeof(viewInfo));
4091 viewInfo.
dwSize =
sizeof(viewInfo);
4119 TRACE(
"(%p, %08x, %08Ix, %08Ix)\n",
hwnd,
msg, wp, lp);
4145 data->pCertViewInfo->idxSigner,
4146 data->pCertViewInfo->fCounterSigner,
4147 data->pCertViewInfo->idxCounterSigner);
4216 if (
data->imageList)
4222 data->selectedCert = 0xffffffff;
4270 static const WCHAR riched[] = {
'r',
'i',
'c',
'h',
'e',
'd',
'2',
'0',0 };
4289 hdr.dwSize =
sizeof(
hdr);
4300 &pages[
hdr.nPages]))
4333 hdr.nPages = nPages;
4392 memset(&wvt, 0,
sizeof(wvt));
4449 TRACE(
"(%ld, %p, %p, %s, %08lx, %p)\n", dwContextType, pvContext,
hwnd,
4452 switch (dwContextType)
4458 memset(&viewInfo, 0,
sizeof(viewInfo));
4459 viewInfo.
dwSize =
sizeof(viewInfo);
4467 FIXME(
"unimplemented for context type %ld\n", dwContextType);
4481 BOOL isCA = defaultIfNotSpecified;
4483 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension);
4494 if (
info->SubjectType.cbData == 1)
4502 cert->pCertInfo->cExtension,
cert->pCertInfo->rgExtension);
4544 WARN(
"unable to open certificate store\n");
4570 WARN(
"unable to open certificate store\n");
4593 static const WCHAR trust[] = {
'T',
'r',
'u',
's',
't',0 };
4598 WARN(
"unable to open certificate store\n");
4741 }
while (
ret && ctl);
4749 DWORD *pContentType)
4752 DWORD contentType = 0, expectedContentTypeFlags;
4758 expectedContentTypeFlags =
4763 expectedContentTypeFlags |=
4767 expectedContentTypeFlags |=
4771 expectedContentTypeFlags |=
4776 expectedContentTypeFlags =
4791 *pContentType = contentType;
4898 int len, totalLen = 2;
4946 &
data->contentType);
4955 data->importSrc.dwSubjectChoice =
4972 LPWSTR msgBuf, fullError;
4974 if (
data->pwszWizardTitle)
4975 pTitle =
data->pwszWizardTitle;
5119 if (!
data->hDestCertStore)
5158 !
data->hDestCertStore)
5194 selectInfo.
dwSize =
sizeof(selectInfo);
5209 data->hDestCertStore = store;
5242 switch (
data->contentType)
5371 data->pwszWizardTitle, &
data->importSrc,
data->hDestCertStore)))
5376 if (
data->pwszWizardTitle)
5377 pTitle =
data->pwszWizardTitle;
5425 memset(pages, 0,
sizeof(pages));
5427 pages[nPages].
dwSize =
sizeof(pages[0]);
5431 pages[nPages].
dwFlags = PSP_HIDEHEADER;
5438 pages[nPages].
dwSize =
sizeof(pages[0]);
5442 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
5444 pages[nPages].pszHeaderSubTitle =
5468 pages[nPages].
dwSize =
sizeof(pages[0]);
5472 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
5474 pages[nPages].pszHeaderSubTitle =
5479 pages[nPages].
dwSize =
sizeof(pages[0]);
5483 pages[nPages].
dwFlags = PSP_HIDEHEADER;
5488 hdr.dwSize =
sizeof(
hdr);
5498 hdr.nPages = nPages;
5502 if (
data.fileName !=
data.importSrc.pwszFileName)
5504 if (
data.freeSource &&
5508 return data.success;
5628 info->pwszProvName,
info->dwProvType, 0);
5633 for (
i = 0;
i <
info->cProvParam;
i++)
5635 info->rgProvParam[
i].pbData,
info->rgProvParam[
i].dwFlags);
5647 DWORD permissions,
size =
sizeof(permissions);
5677 data->exportInfo.pCertContext)))
5716 data->contextInfo.dwExportFormat =
5718 data->contextInfo.fExportPrivateKeys =
FALSE;
5722 data->contextInfo.dwExportFormat =
5724 data->contextInfo.fExportPrivateKeys =
TRUE;
5754 int defaultFormatID;
5756 switch (
data->contextInfo.dwExportFormat)
5823 data->contextInfo.dwExportFormat =
5826 data->contextInfo.dwExportFormat =
5830 data->contextInfo.dwExportFormat =
5833 data->contextInfo.fExportChain =
5838 data->contextInfo.dwExportFormat =
5841 data->contextInfo.fExportChain =
TRUE;
5843 data->contextInfo.fStrongEncryption =
TRUE;
5846 skipPasswordPage =
FALSE;
5898 if (
data->pwszWizardTitle)
5899 pTitle =
data->pwszWizardTitle;
5948 if (!passwordLen && !passwordConfirmLen)
5949 data->contextInfo.pwszPassword =
NULL;
5950 else if (passwordLen != passwordConfirmLen)
5967 passwordConfirmLen + 1, (
LPARAM)passwordConfirm);
5983 free(passwordConfirm);
5997 static const WCHAR cer[] = {
'.',
'c',
'e',
'r',0 };
5998 static const WCHAR crl[] = {
'.',
'c',
'r',
'l',0 };
5999 static const WCHAR ctl[] = {
'.',
'c',
't',
'l',0 };
6000 static const WCHAR p7b[] = {
'.',
'p',
'7',
'b',0 };
6001 static const WCHAR pfx[] = {
'.',
'p',
'f',
'x',0 };
6002 static const WCHAR sst[] = {
'.',
's',
's',
't',0 };
6005 BOOL appendExtension;
6007 switch (
data->contextInfo.dwExportFormat)
6016 switch (
data->exportInfo.dwSubjectChoice)
6033 appendExtension =
wcsicmp(dot, extension) != 0;
6035 appendExtension =
TRUE;
6036 if (appendExtension)
6058 if (
data->pwszWizardTitle)
6059 pTitle =
data->pwszWizardTitle;
6087 LPWSTR msgBuf, fullError;
6089 if (
data->pwszWizardTitle)
6090 pTitle =
data->pwszWizardTitle;
6130 int baseLen, allLen, totalLen = 2, baseID;
6134 switch (exportFormat)
6149 switch (subjectChoice)
6170 totalLen += baseLen +
lstrlenW(filterStr) + 2;
6208 if (
data->exportInfo.pwszExportFileName)
6210 (
LPARAM)
data->exportInfo.pwszExportFileName);
6221 if (
data->contextInfo.dwExportFormat !=
6239 if (
data->pwszWizardTitle)
6240 pTitle =
data->pwszWizardTitle;
6293 data->contextInfo.dwExportFormat,
6294 data->exportInfo.dwSubjectChoice);
6330 switch (
data->exportInfo.dwSubjectChoice)
6366 switch (
data->exportInfo.dwSubjectChoice)
6378 switch (
data->contextInfo.dwExportFormat)
6469 for (
j = 0;
ret &&
j <
chain->rgpChain[
i]->cElement;
6472 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6544 memset(&chainPara, 0,
sizeof(chainPara));
6545 chainPara.
cbSize =
sizeof(chainPara);
6554 for (
j = 0;
ret &&
j <
chain->rgpChain[
i]->cElement;
6557 if (
i == 0 &&
j == 0)
6559 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6563 chain->rgpChain[
i]->rgpElement[
j]->pCertContext,
6591 freeKeyProvInfo =
TRUE;
6632 if (freeKeyProvInfo)
6751 &
data->contextInfo,
data->keyProvInfo,
data->deleteKeys)))
6761 if (
data->pwszWizardTitle)
6762 pTitle =
data->pwszWizardTitle;
6786 BOOL hasPrivateKey, showFormatPage =
TRUE;
6794 if (pExportInfo->
dwSize >
sizeof(
data.exportInfo))
6795 data.exportInfo.dwSize =
sizeof(
data.exportInfo);
6796 data.contextInfo.dwSize =
sizeof(
data.contextInfo);
6799 data.contextInfo.fStrongEncryption =
FALSE;
6800 data.contextInfo.fExportPrivateKeys =
FALSE;
6801 data.contextInfo.pwszPassword =
NULL;
6807 sizeof(
data.contextInfo)));
6814 memset(pages, 0,
sizeof(pages));
6816 pages[nPages].
dwSize =
sizeof(pages[0]);
6820 pages[nPages].
dwFlags = PSP_HIDEHEADER;
6829 showFormatPage =
FALSE;
6833 showFormatPage =
FALSE;
6834 data.contextInfo.dwExportFormat =
6838 showFormatPage =
FALSE;
6843 if (hasPrivateKey && showFormatPage)
6845 pages[nPages].
dwSize =
sizeof(pages[0]);
6849 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6850 pages[nPages].pszHeaderTitle =
6852 pages[nPages].pszHeaderSubTitle =
6859 pages[nPages].
dwSize =
sizeof(pages[0]);
6863 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6864 pages[nPages].pszHeaderTitle =
6866 pages[nPages].pszHeaderSubTitle =
6871 if (hasPrivateKey && showFormatPage)
6873 pages[nPages].
dwSize =
sizeof(pages[0]);
6877 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6878 pages[nPages].pszHeaderTitle =
6880 pages[nPages].pszHeaderSubTitle =
6886 pages[nPages].
dwSize =
sizeof(pages[0]);
6890 pages[nPages].
dwFlags = PSP_USEHEADERTITLE | PSP_USEHEADERSUBTITLE;
6892 pages[nPages].pszHeaderSubTitle =
6897 pages[nPages].
dwSize =
sizeof(pages[0]);
6901 pages[nPages].
dwFlags = PSP_HIDEHEADER;
6906 hdr.dwSize =
sizeof(
hdr);
6916 hdr.nPages = nPages;
6921 if (
data.freePassword)
6932 return data.success;
6965 FIXME(
"%p: stub\n", pcvsi);
7030 item.stateMask = -1;
7035 if (
len > *allocatedLen)
7040 *allocatedLen =
len;
7055 if (
len > *allocatedLen)
7060 *allocatedLen =
len;
7094 if (
len > *allocatedLen)
7099 *allocatedLen =
len;
7104 item.pszText = none;
7130 static int show_fixme;
7132 FIXME(
"showing location is not implemented\n");
7146 DWORD allocatedLen = 0;
7203 memset(&viewInfo, 0,
sizeof(viewInfo));
7204 viewInfo.
dwSize =
sizeof(viewInfo);
7250 data->dateColumn = 4 -
7256 if (
data->imageList)
7283 while (i < pcsc->cDisplayStores)
7398 FIXME(
"ignoring CRYPTUI_SELECTCERT_MULTISELECT\n");
7410 for (
i = 0;
i <
num;
i++)
7413 free((
void *)pages[
i].pszTemplate);
7415 free((
void *)pages[
i].pszIcon);
7417 free((
void *)pages[
i].pszTitle);
7419 free((
void *)pages[
i].pszHeaderTitle);
7420 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7422 free((
void *)pages[
i].pszHeaderSubTitle);
7436 for (
i = 0;
i <
num;
i++)
7445 psp[
i].pfnCallback =
NULL;
7447 psp[
i].pszHeaderTitle =
NULL;
7448 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7450 psp[
i].pszHeaderSubTitle =
NULL;
7452 for (
i = 0;
i <
num;
i++)
7467 FIXME(
"ignoring pfnCallback\n");
7470 if (!(psp[
i].pszHeaderTitle =
strdupAtoW( pages[
i].pszHeaderTitle )))
goto error;
7472 if ((pages[
i].
dwFlags & PSP_USEHEADERSUBTITLE) &&
7475 if (!(psp[
i].pszHeaderSubTitle =
strdupAtoW( pages[
i].pszHeaderSubTitle )))
goto error;
7534 memset(&sc, 0,
sizeof(sc));
static DWORD const fdwReason
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
WCHAR szTitle[MAX_LOADSTRING]
BOOL NTAPI DllMain(_In_ HINSTANCE hDll, _In_ ULONG dwReason, _In_opt_ PVOID pReserved)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
#define RegCloseKey(hKey)
BOOL WINAPI CertAddStoreToCollection(HCERTSTORE hCollectionStore, HCERTSTORE hSiblingStore, DWORD dwUpdateFlags, DWORD dwPriority)
BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
static HWND LPCWSTR pwszWizardTitle
static HWND LPCWSTR PCCRYPTUI_WIZ_IMPORT_SRC_INFO HCERTSTORE hDestCertStore
static HWND LPCWSTR PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc
const CRYPTUI_VIEWCERTIFICATE_STRUCTW * PCCRYPTUI_VIEWCERTIFICATE_STRUCTW
#define CRYPTUI_WIZ_EXPORT_CRL_CONTEXT
#define CRYPTUI_WIZ_EXPORT_CERT_STORE
#define CRYPTUI_WIZ_EXPORT_FORMAT_PFX
#define CRYPTUI_SELECT_ISSUEDTO_COLUMN
#define CRYPTUI_SELECT_ISSUEDBY_COLUMN
#define CRYPTUI_WIZ_EXPORT_CERT_CONTEXT
#define CRYPTUI_WIZ_IMPORT_ALLOW_CRL
#define CRYPTUI_WIZ_EXPORT_FORMAT_SERIALIZED_CERT_STORE
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT
#define CRYPTUI_WIZ_EXPORT_FORMAT_BASE64
#define CRYPTUI_DISABLE_EXPORT
BOOL(WINAPI * PFNCCERTDISPLAYPROC)(PCCERT_CONTEXT pCertContext, HWND hWndSelCertDlg, void *pvCallbackData)
#define CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY
#define CRYPTUI_WIZ_EXPORT_FORMAT_DER
#define CRYPTUI_HIDE_DETAILPAGE
#define CRYPTUI_WIZ_NO_UI
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT
#define CRYPTUI_SELECT_FRIENDLYNAME_COLUMN
#define CRYPTUI_SELECTCERT_MULTISELECT
#define CRYPTUI_SELECT_EXPIRATION_COLUMN
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE
#define CRYPTUI_WIZ_IMPORT_ALLOW_CTL
#define CRYPTUI_ENABLE_EDITPROPERTIES
#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
#define CRYPTUI_HIDE_HIERARCHYPAGE
#define CRYPTUI_SELECT_LOCATION_COLUMN
#define CRYPTUI_CERT_MGR_PUBLISHER_TAB
BOOL(WINAPI * PFNCFILTERPROC)(PCCERT_CONTEXT pCertContext, BOOL *pfInitialSelectedCert, void *pvCallbackData)
#define CRYPTUI_CERT_MGR_SINGLE_TAB_FLAG
#define CRYPTUI_DISABLE_ADDTOSTORE
#define CRYPTUI_ENABLE_REVOCATION_CHECK_END_CERT
#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN
#define CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT
#define CRYPTUI_WIZ_EXPORT_CTL_CONTEXT
#define CRYPTUI_WIZ_IMPORT_SUBJECT_FILE
#define CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7
#define CRYPTUI_WIZ_IMPORT_ALLOW_CERT
#define CRYPTUI_SELECT_INTENDEDUSE_COLUMN
#define CRYPTUI_DISABLE_ISSUERSTATEMENT
const struct _CRYPTUI_CERT_MGR_STRUCT * PCCRYPTUI_CERT_MGR_STRUCT
#define CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE
#define IDS_IMPORT_DEST_DETERMINED
#define IDS_PURPOSE_KEY_RECOVERY
#define IDS_PURPOSE_OEM_WHQL
#define IDS_IMPORT_CONTENT_CERT
#define IDC_EXPORT_PASSWORD_CONFIRM
#define IDC_IMPORT_AUTO_STORE
#define IDS_WARN_REMOVE_PLURAL_CA
#define IDC_EXPORT_BROWSE_FILE
#define IDS_WARN_REMOVE_ROOT
#define IDS_IMPORT_FILTER_CERT
#define IDS_EXPORT_PASSWORD_MISMATCH
#define IDS_FRIENDLY_NAME_NONE
#define IDS_ISSUER_HEADING
#define IDS_PURPOSE_QUALIFIED_SUBORDINATION
#define IDS_PURPOSE_CTL_USAGE_SIGNING
#define IDS_EXPORT_FILTER_CMS
#define IDS_EXPIRATION_COLUMN
#define IDC_CERTIFICATE_USAGES
#define IDS_CERT_INFO_PURPOSES
#define IDC_EXPORT_PRIVATE_KEY_YES
#define IDS_CERTIFICATE_BAD_TIMENEST
#define IDS_ALLOWED_PURPOSE_ALL
#define IDC_EXPORT_FORMAT_CMS
#define IDS_IMPORT_WIZARD
#define IDD_ADD_CERT_PURPOSE
#define IDS_PURPOSE_TIMESTAMP_SIGNING
#define IDS_INTENDED_USE_COLUMN
#define IDS_IMPORT_FILTER_ALL
#define IDS_IMPORT_FILTER_CMS
#define IDC_EXPORT_FILENAME
#define IDD_EXPORT_PRIVATE_KEY
#define IDS_SUBJECT_HEADING
#define IDC_IMPORT_SPECIFY_STORE
#define IDS_IMPORT_FILTER_PFX
#define IDS_WARN_REMOVE_PLURAL_ADDRESSBOOK
#define IDS_CERT_INFO_PARTIAL_CHAIN
#define IDS_IMPORT_EMPTY_FILE
#define IDS_IMPORT_CONTENT_CMS
#define IDS_PURPOSE_EFS_RECOVERY
#define IDS_EXPORT_FORMAT_TITLE
#define IDS_WARN_REMOVE_PLURAL_TRUSTEDPUBLISHER
#define IDS_WARN_REMOVE_TRUSTEDPUBLISHER
#define IDS_EXPORT_PRIVATE_KEY_NON_EXPORTABLE
#define IDS_CERTIFICATE_REVOKED
#define IDC_EXPORT_PFX_DELETE_PRIVATE_KEY
#define IDS_EXPORT_FORMAT_SUBTITLE
#define IDS_EXPORT_PRIVATE_KEY_UNAVAILABLE
#define IDS_IMPORT_CONTENT
#define IDC_SHOW_PHYSICAL_STORES
#define IDS_IMPORT_SELECT_STORE
#define IDS_FIELD_SERIAL_NUMBER
#define IDS_FIELD_SUBJECT
#define IDC_EXPORT_SETTINGS
#define IDC_CERTIFICATESTATUSTEXT
#define IDS_PURPOSE_ROOT_LIST_SIGNER
#define IDC_IMPORT_SETTINGS
#define IDS_CERT_INFO_BAD_SIG
#define IDC_CERTIFICATE_ICON
#define IDS_PURPOSE_IPSEC
#define IDS_FIELD_VALID_FROM
#define IDS_EXPORT_FAILED
#define IDS_IMPORT_FILTER_CTL
#define IDS_CERT_INFO_UNTRUSTED_ROOT
#define IDS_CERT_INFO_BAD_PURPOSES
#define IDS_IMPORT_FILE_TITLE
#define IDS_PURPOSE_KEY_RECOVERY_AGENT
#define IDS_PROP_DESCRIPTION
#define IDC_EXPORT_PRIVATE_KEY_UNAVAILABLE
#define IDC_EXPORT_PFX_INCLUDE_CHAIN
#define IDS_IMPORT_FILE_SUBTITLE
#define IDS_EXPORT_FILE_EXISTS
#define IDS_FRIENDLY_NAME_COLUMN
#define IDS_WARN_REMOVE_CA
#define IDS_EXPORT_FILTER_BASE64_CERT
#define IDS_EXPORT_FILTER_CTL
#define IDS_EXPORT_WIZARD
#define IDC_SELECT_VIEW_CERT
#define IDS_PURPOSE_LICENSES
#define IDD_CERT_MGR_ADVANCED
#define IDS_IMPORT_FILTER_SERIALIZED_STORE
#define IDD_EXPORT_PASSWORD
#define IDC_CERTIFICATE_STATUS
#define IDS_PURPOSE_LICENSE_SERVER
#define IDS_IMPORT_CONTENT_STORE
#define IDS_WARN_REMOVE_ADDRESSBOOK
#define IDS_WARN_REMOVE_PLURAL_DEFAULT
#define IDS_IMPORT_CONTENT_PFX
#define IDS_FIELDS_PROPERTIES
#define IDS_IMPORT_CONTENT_CRL
#define IDD_EXPORT_FINISH
#define IDD_IMPORT_WELCOME
#define IDS_PURPOSE_CA_EXCHANGE
#define IDC_CERTIFICATE_NAMES
#define IDS_CERTIFICATEINFORMATION
#define IDC_ENABLE_SELECTED_PURPOSES
#define IDS_IMPORT_FILTER_CRL
#define IDD_EXPORT_WELCOME
#define IDS_EXPORT_INCLUDE_CHAIN
#define IDS_PURPOSE_EMAIL_PROTECTION
#define IDC_CERTIFICATE_INFO
#define IDS_FIELD_PUBLIC_KEY
#define IDS_EXPORT_PASSWORD_SUBTITLE
#define IDC_EXPORT_FORMAT_DER
#define IDS_IMPORT_STORE_SUBTITLE
#define IDS_PURPOSE_SERVER_AUTH
#define IDS_EXPORT_FILE_SUBTITLE
#define IDC_ENABLE_ALL_PURPOSES
#define IDS_LOCATION_COLUMN
#define IDC_ISSUERSTATEMENT
#define IDS_WARN_REMOVE_PLURAL_ROOT
#define IDS_CERTIFICATE_BAD_TIME
#define IDS_EXPORT_FORMAT
#define IDS_EXPORT_FILTER_SERIALIZED_CERT_STORE
#define IDS_EXPORT_FILTER_PFX
#define IDB_CERT_WATERMARK
#define IDS_IMPORT_FAILED
#define IDC_FRIENDLY_NAME
#define IDC_VIEWCERTIFICATE
#define IDC_DETAIL_SELECT
#define IDS_SELECT_STORE_TITLE
#define IDS_SELECT_CERT_TITLE
#define IDS_EXPORT_FILTER_CERT
#define IDS_CERT_INFO_UNTRUSTED_CA
#define IDS_FIELD_VERSION
#define IDS_IMPORT_STORE_TITLE
#define IDS_CERTIFICATE_PURPOSE_EXISTS
#define IDS_FIELD_PUBLIC_KEY_FORMAT
#define IDS_PURPOSE_EMBEDDED_NT
#define IDS_WARN_REMOVE_MY
#define IDS_ALLOWED_PURPOSE_NONE
#define IDS_PURPOSE_DS_EMAIL_REPLICATION
#define IDS_EXPORT_PRIVATE_KEY_SUBTITLE
#define IDS_IMPORT_STORE_SELECTION
#define IDC_IMPORT_BROWSE_STORE
#define IDS_PROP_FRIENDLY_NAME
#define IDS_IMPORT_BAD_FORMAT
#define IDS_PROP_ENHKEY_USAGE
#define IDC_EXPORT_PRIVATE_KEY_NO
#define IDC_EXPORT_PFX_STRONG_ENCRYPTION
#define IDC_EXPORT_PASSWORD
#define IDS_EXPORT_FILTER_CRL
#define IDS_SUBJECT_COLUMN
#define IDS_PURPOSE_SMARTCARD_LOGON
#define IDS_PURPOSE_ENROLLMENT_AGENT
#define IDS_CERTIFICATE_VALID
#define IDD_EXPORT_FORMAT
#define IDS_EXPORT_PASSWORD_TITLE
#define IDC_EXPORT_FORMAT_BASE64
#define IDS_IMPORT_CONTENT_CTL
#define IDS_IMPORT_SUCCEEDED
#define IDC_EXPORT_CMS_INCLUDE_CHAIN
#define IDS_WIZARD_TITLE_FONT
#define IDC_IMPORT_FILENAME
#define IDS_EXPORT_SUCCEEDED
#define IDC_MGR_PURPOSE_SELECTION
#define IDS_IMPORT_TYPE_MISMATCH
#define IDS_PURPOSE_DOCUMENT_SIGNING
#define IDS_CERTIFICATE_BAD_SIGNATURE
#define IDS_PURPOSE_LIFETIME_SIGNING
#define IDS_IMPORT_DEST_AUTOMATIC
#define IDS_FIELDS_EXTENSIONS
#define IDC_EXPORT_FORMAT_PFX
#define IDS_FIELDS_CRITICAL_EXTENSIONS
#define IDC_EDITPROPERTIES
#define IDS_PURPOSE_ADVANCED
#define IDS_CERTIFICATE_PURPOSE_ERROR
#define IDD_CERT_PROPERTIES_GENERAL
#define IDS_WARN_REMOVE_DEFAULT
#define IDS_ISSUER_COLUMN
#define IDS_EXPORT_PRIVATE_KEY_TITLE
#define IDS_FIELD_VALID_TO
#define IDS_PURPOSE_CODE_SIGNING
#define IDS_PURPOSE_CLIENT_AUTH
#define IDC_IMPORT_BROWSE_FILE
#define IDS_EXPORT_FILE_TITLE
#define IDD_IMPORT_FINISH
#define IDS_IMPORT_OPEN_FAILED
#define IDS_CERTIFICATE_PROPERTIES
#define IDC_DISABLE_ALL_PURPOSES
#define IDS_WARN_REMOVE_PLURAL_MY
#define IDC_SELECT_DISPLAY_STRING
LONG WINAPI RegCreateKeyExW(_In_ HKEY hKey, _In_ LPCWSTR lpSubKey, _In_ DWORD Reserved, _In_opt_ LPWSTR lpClass, _In_ DWORD dwOptions, _In_ REGSAM samDesired, _In_opt_ LPSECURITY_ATTRIBUTES lpSecurityAttributes, _Out_ PHKEY phkResult, _Out_opt_ LPDWORD lpdwDisposition)
LONG WINAPI RegSetValueExA(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE *lpData, DWORD cbData)
LONG WINAPI RegDeleteValueA(HKEY hKey, LPCSTR lpValueName)
LONG WINAPI RegQueryValueExA(_In_ HKEY hkeyorg, _In_ LPCSTR name, _In_ LPDWORD reserved, _Out_opt_ LPDWORD type, _Out_opt_ LPBYTE data, _Inout_opt_ LPDWORD count)
BOOL WINAPI CryptSetProvParam(HCRYPTPROV hProv, DWORD dwParam, const BYTE *pbData, DWORD dwFlags)
BOOL WINAPI CryptDestroyKey(HCRYPTKEY hKey)
BOOL WINAPI CryptReleaseContext(HCRYPTPROV hProv, DWORD dwFlags)
BOOL WINAPI CryptGetUserKey(HCRYPTPROV hProv, DWORD dwKeySpec, HCRYPTKEY *phUserKey)
BOOL WINAPI CryptGetKeyParam(HCRYPTKEY hKey, DWORD dwParam, BYTE *pbData, DWORD *pdwDataLen, DWORD dwFlags)
BOOL WINAPI CryptAcquireContextW(HCRYPTPROV *phProv, LPCWSTR pszContainer, LPCWSTR pszProvider, DWORD dwProvType, DWORD dwFlags)
COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST himl, COLORREF clrBk)
BOOL WINAPI ImageList_Destroy(HIMAGELIST himl)
INT WINAPI ImageList_AddMasked(HIMAGELIST himl, HBITMAP hBitmap, COLORREF clrMask)
HIMAGELIST WINAPI ImageList_Create(INT cx, INT cy, UINT flags, INT cInitial, INT cGrow)
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
BOOL WINAPI GetOpenFileNameW(OPENFILENAMEW *ofn)
BOOL WINAPI GetSaveFileNameW(LPOPENFILENAMEW ofn)
BOOL WINAPI CryptBinaryToStringA(const BYTE *pbBinary, DWORD cbBinary, DWORD dwFlags, LPSTR pszString, DWORD *pcchString)
DWORD WINAPI CertGetPublicKeyLength(DWORD dwCertEncodingType, PCERT_PUBLIC_KEY_INFO pPublicKey)
BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pCertContext, DWORD dwAddDisposition, PCCERT_CONTEXT *ppStoreContext)
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
BOOL WINAPI CertSetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, PCERT_ENHKEY_USAGE pUsage)
PCERT_EXTENSION WINAPI CertFindExtension(LPCSTR pszObjId, DWORD cExtensions, CERT_EXTENSION rgExtensions[])
BOOL WINAPI CertSetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, DWORD dwFlags, const void *pvData)
BOOL WINAPI CertGetCertificateContextProperty(PCCERT_CONTEXT pCertContext, DWORD dwPropId, void *pvData, DWORD *pcbData)
PCCERT_CONTEXT WINAPI CertDuplicateCertificateContext(PCCERT_CONTEXT pCertContext)
BOOL WINAPI CertGetValidUsages(DWORD cCerts, PCCERT_CONTEXT *rghCerts, int *cNumOIDs, LPSTR *rghOIDs, DWORD *pcbOIDs)
BOOL WINAPI CertGetEnhancedKeyUsage(PCCERT_CONTEXT pCertContext, DWORD dwFlags, PCERT_ENHKEY_USAGE pUsage, DWORD *pcbUsage)
BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
VOID WINAPI CertFreeCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
void WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
BOOL WINAPI CertCreateCertificateChainEngine(PCERT_CHAIN_ENGINE_CONFIG pConfig, HCERTCHAINENGINE *phChainEngine)
BOOL WINAPI CertFreeCRLContext(PCCRL_CONTEXT pCrlContext)
BOOL WINAPI CertFreeCTLContext(PCCTL_CONTEXT pCTLContext)
PCCTL_CONTEXT WINAPI CertEnumCTLsInStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pPrev)
BOOL WINAPI CertAddCTLContextToStore(HCERTSTORE hCertStore, PCCTL_CONTEXT pCtlContext, DWORD dwAddDisposition, PCCTL_CONTEXT *ppStoreContext)
BOOL WINAPI PFXExportCertStore(HCERTSTORE hStore, CRYPT_DATA_BLOB *pPFX, LPCWSTR szPassword, DWORD dwFlags)
static const WCHAR commaSpace[]
BOOL WINAPI CryptFormatObject(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
BOOL WINAPI CryptQueryObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD dwFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg, const void **ppvContext)
static struct list oidInfo
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
LPCWSTR WINAPI CryptFindLocalizedName(LPCWSTR pwszCryptName)
BOOL WINAPI CertAddCRLContextToStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pCrlContext, DWORD dwAddDisposition, PCCRL_CONTEXT *ppStoreContext)
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
BOOL WINAPI CertEnumSystemStore(DWORD dwFlags, void *pvSystemStoreLocationPara, void *pvArg, PFN_CERT_ENUM_SYSTEM_STORE pfnEnum)
PCCRL_CONTEXT WINAPI CertEnumCRLsInStore(HCERTSTORE hCertStore, PCCRL_CONTEXT pPrev)
PCCERT_CONTEXT WINAPI CertEnumCertificatesInStore(HCERTSTORE hCertStore, PCCERT_CONTEXT pPrev)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
BOOL WINAPI CertGetStoreProperty(HCERTSTORE hCertStore, DWORD dwPropId, void *pvData, DWORD *pcbData)
BOOL WINAPI CertDeleteCertificateFromStore(PCCERT_CONTEXT pCertContext)
HCERTSTORE WINAPI CertOpenSystemStoreW(HCRYPTPROV_LEGACY hProv, LPCWSTR szSubSystemProtocol)
DWORD WINAPI CertNameToStrW(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPWSTR psz, DWORD csz)
DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags, void *pvTypePara, LPWSTR pszNameString, DWORD cchNameString)
DWORD WINAPI CertRDNValueToStrW(DWORD dwValueType, PCERT_RDN_VALUE_BLOB pValue, LPWSTR psz, DWORD csz)
static CRYPT_OBJID_BLOB * find_policy_qualifier(CERT_POLICIES_INFO *policies, LPCSTR policyOid)
BOOL WINAPI CryptUIDlgViewCertificateW(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged)
#define MAX_FRIENDLY_NAME
static void add_purpose(HWND hwnd, LPCSTR oid)
static void add_string_resource_with_paraformat_to_control(HWND hwnd, int id, const PARAFORMAT2 *fmt)
static void init_general_page(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, PROPSHEETPAGEW *page)
static INT_PTR CALLBACK import_file_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void export_format_enable_controls(HWND hwnd, const struct ExportWizData *data)
static const struct @344 import_filters[]
static void show_dialog_for_selected_cert(HWND hwnd)
static HCERTSTORE selected_item_to_store(HWND tree, HTREEITEM hItem)
static int CALLBACK cert_prop_sheet_proc(HWND hwnd, UINT msg, LPARAM lp)
static const WCHAR export_filter_pfx[]
static WCHAR * get_cert_display_name(PCCERT_CONTEXT cert)
static WCHAR * field_format_detailed_issuer(PCCERT_CONTEXT cert, void *param)
BOOL WINAPI CryptUIDlgViewCertificateA(PCCRYPTUI_VIEWCERTIFICATE_STRUCTA pCertViewInfo, BOOL *pfPropertiesChanged)
static WCHAR * get_user_notice_from_qualifier(const CRYPT_OBJID_BLOB *qualifier)
static void select_purposes(HWND hwnd, PurposeSelection selection)
static void import_warn_type_mismatch(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle)
static void set_general_info(HWND hwnd, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static void add_field_value_data(struct detail_data *data, create_detailed_value_func create, void *param)
static BOOL export_validate_filename(HWND hwnd, struct ExportWizData *data, LPCWSTR fileName)
static void add_local_oid_text_to_control(HWND text, LPCSTR oid)
static void select_cert_update_view_button(HWND hwnd)
static void create_show_list(HWND hwnd, struct detail_data *data)
void(* add_fields_func)(HWND hwnd, struct detail_data *data)
static WCHAR * make_export_file_filter(DWORD exportFormat, DWORD subjectChoice)
static void set_certificate_status_for_end_cert(HWND hwnd, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static INT_PTR CALLBACK select_store_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void show_import_details(HWND lv, struct ImportWizData *data)
BOOL WINAPI WTHelperGetKnownUsages(DWORD action, PCCRYPT_OID_INFO **usages)
static WCHAR * field_format_subject(PCCERT_CONTEXT cert)
WCHAR *(* prop_to_value_func)(void *pb, DWORD cb)
static BOOL export_info_has_private_key(PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo)
static void cert_mgr_clear_cert_selection(HWND hwnd)
static PCCERT_CONTEXT cert_mgr_index_to_cert(HWND hwnd, int index)
static BOOL display_cert_usages(HWND text, PCCERT_CONTEXT cert, BOOL *anyUsageAdded)
static const WCHAR filter_crl[]
static void redraw_states(HWND list, BOOL enabled)
static void add_cert_string_to_control(HWND hwnd, PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags)
static PCCERT_CONTEXT select_cert_get_selected(HWND hwnd, int selection)
static const WCHAR filter_cms[]
WCHAR *(* create_detailed_value_func)(PCCERT_CONTEXT cert, void *param)
static LPWSTR export_append_extension(const struct ExportWizData *data, LPWSTR fileName)
static void add_critical_extensions(HWND hwnd, struct detail_data *data)
static void init_columns(HWND lv, DWORD flags)
static BOOL export_is_key_exportable(HCRYPTPROV hProv, DWORD keySpec)
BOOL WINAPI CryptUIWizImport(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc, HCERTSTORE hDestCertStore)
static INT_PTR CALLBACK cert_mgr_advanced_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static int cert_mgr_sort_by_text(HWND lv, int col, int index1, int index2)
struct _CRYPTUI_ENUM_SYSTEM_STORE_ARGS * PCRYPTUI_ENUM_SYSTEM_STORE_ARGS
static BOOL do_import(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc, HCERTSTORE hDestCertStore)
static const struct CertMgrStoreInfo defaultStoreList[]
static WCHAR * field_format_extension_hex_with_ascii(const CERT_EXTENSION *ext)
BOOL WINAPI CryptUIWizExport(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, void *pvoid)
static HCERTSTORE open_store_from_file(DWORD dwFlags, LPCWSTR fileName, DWORD *pContentType)
static BOOL is_oid_in_list(HWND hwnd, LPCSTR oid)
static PCRYPT_KEY_PROV_INFO export_get_private_key_info(PCCERT_CONTEXT cert)
static void toggle_usage(HWND hwnd, int iItem)
static void create_cert_details_list(HWND hwnd, struct detail_data *data)
static void free_detail_fields(struct detail_data *data)
struct _CRYPTUI_SELECTSTORE_INFO_W * PCRYPTUI_SELECTSTORE_INFO_W
static BOOL save_cert_as_cms(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, BOOL includeChain)
static WCHAR * field_format_public_key(PCCERT_CONTEXT cert)
static void initialize_purpose_selection(HWND hwnd)
static INT_PTR CALLBACK hierarchy_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static int CALLBACK cert_mgr_sort_by_issuer(LPARAM lp1, LPARAM lp2, LPARAM lp)
static BOOL is_valid_oid(LPCSTR oid)
static WCHAR * field_format_to_date(PCCERT_CONTEXT cert)
static INT_PTR CALLBACK export_finish_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void set_issuer_statement(HWND hwnd, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static UINT CALLBACK hierarchy_callback(HWND hwnd, UINT msg, PROPSHEETPAGEW *page)
static INT_PTR CALLBACK user_notice_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static UINT CALLBACK detail_callback(HWND hwnd, UINT msg, PROPSHEETPAGEW *page)
static const WCHAR filter_serialized_store[]
static void add_all_fields(HWND hwnd, struct detail_data *data)
static struct OIDToString oidMap[]
static INT_PTR CALLBACK export_private_key_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
HCERTSTORE WINAPI CryptUIDlgSelectStoreW(PCRYPTUI_SELECTSTORE_INFO_W info)
struct _CRYPTUI_ENUM_DATA * PCRYPTUI_ENUM_DATA
static const struct v1_field v1_fields[]
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateA(PCCRYPTUI_SELECTCERTIFICATE_STRUCTA pcsc)
static BOOL init_detail_page(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged, PROPSHEETPAGEW *page)
static BOOL show_import_ui(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc, HCERTSTORE hDestCertStore)
static void set_fields_selection(HWND hwnd, struct detail_data *data, int sel)
@ PurposeFilterShowAdvanced
static void show_export_details(HWND lv, const struct ExportWizData *data)
struct _CRYPTUI_SELECTSTORE_INFO_A * PCRYPTUI_SELECTSTORE_INFO_A
static BOOL import_crl(PCCRL_CONTEXT crl, HCERTSTORE hDestCertStore)
static INT_PTR CALLBACK general_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void add_cert_to_view(HWND lv, PCCERT_CONTEXT cert, DWORD *allocatedLen, LPWSTR *str)
static void set_cert_validity_period(HWND hwnd, PCCERT_CONTEXT cert)
static void set_cert_string_property(PCCERT_CONTEXT cert, DWORD prop, LPWSTR str)
static LPSTR get_cert_mgr_usages(void)
static const WCHAR disallowed[]
static int CALLBACK cert_mgr_sort_by_friendly_name(LPARAM lp1, LPARAM lp2, LPARAM lp)
static void set_cert_name_string(HWND hwnd, PCCERT_CONTEXT cert, DWORD nameFlags, int heading)
static BOOL import_cert(PCCERT_CONTEXT cert, HCERTSTORE hDestCertStore)
static void set_cert_info(HWND hwnd, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static void display_app_usages(HWND text, PCCERT_CONTEXT cert, BOOL *anyUsageAdded)
static const WCHAR addressBook[]
static void add_known_usages_to_list(HWND lv, CheckBitmapIndex state)
static BOOL show_export_ui(DWORD dwFlags, HWND hwndParent, LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, const void *pvoid)
static INT_PTR CALLBACK select_cert_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static const struct CertMgrStoreInfo publisherStoreList[]
static WCHAR * format_hex_string(void *pb, DWORD cb)
static HCERTSTORE choose_store_for_cert(PCCERT_CONTEXT cert)
static BOOL save_serialized_store(HANDLE file, HCERTSTORE store)
BOOL WINAPI CryptUIWizDigitalSign(DWORD flags, HWND parent, LPCWSTR title, PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO info, PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *context)
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateW(PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc)
static const WCHAR trustedPublisher[]
static WCHAR * field_format_from_date(PCCERT_CONTEXT cert)
static const WCHAR export_filter_ctl[]
static void set_certificate_status(HWND hwnd, const CRYPT_PROVIDER_CERT *cert)
static const WCHAR export_filter_cert[]
static void add_string_id_and_value_to_list(HWND hwnd, struct detail_data *data, int id, LPWSTR value, create_detailed_value_func create, void *param)
static BOOL save_pfx(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO pContextInfo, PCRYPT_KEY_PROV_INFO keyProvInfo, BOOL deleteKeys)
static void show_store_certs(HWND hwnd, HCERTSTORE store)
static void show_cert_chain(HWND hwnd, struct hierarchy_data *data)
static BOOL import_validate_filename(HWND hwnd, struct ImportWizData *data, LPCWSTR fileName)
HCERTSTORE WINAPI CryptUIDlgSelectStoreA(PCRYPTUI_SELECTSTORE_INFO_A info)
static BOOL import_ctl(PCCTL_CONTEXT ctl, HCERTSTORE hDestCertStore)
static void close_stores(HWND tab)
static const struct selection_list_item listItems[]
static void show_cert_hierarchy(HWND hwnd, struct hierarchy_data *data)
static void add_icon_to_control(HWND hwnd, int id)
static HCERTSTORE cert_mgr_current_store(HWND hwnd)
static void cert_mgr_do_export(HWND hwnd)
static INT_PTR CALLBACK export_file_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void add_date_string_to_control(HWND hwnd, const FILETIME *fileTime)
static void add_cert_extension_detail(HWND hwnd, struct detail_data *data, PCERT_EXTENSION ext)
static void add_field_and_value_to_list(HWND hwnd, struct detail_data *data, LPWSTR field, LPWSTR value, create_detailed_value_func create, void *param)
static void cert_mgr_do_remove(HWND hwnd)
static void show_selected_cert(HWND hwnd, int index)
static void add_string_resource_to_control(HWND hwnd, int id)
static const WCHAR export_filter_sst[]
static WCHAR * format_enhanced_key_usage_value(void *pb, DWORD cb)
static const WCHAR filter_cert[]
static CERT_ENHKEY_USAGE * add_oid_to_usage(CERT_ENHKEY_USAGE *usage, LPSTR oid)
static void add_v1_fields(HWND hwnd, struct detail_data *data)
static void add_store_certs(HWND lv, HCERTSTORE store, DWORD flags, PFNCFILTERPROC filter, void *callback_data)
static BOOL check_context_type(DWORD dwFlags, DWORD type)
static BOOL save_der(HANDLE file, const BYTE *pb, DWORD cb)
static void set_policy_text(HWND text, PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo)
static const WCHAR filter_pfx[]
static void add_text_with_paraformat_to_control(HWND hwnd, LPCWSTR text, LONG len, const PARAFORMAT2 *fmt)
static int CALLBACK select_cert_sort_by_text(LPARAM lp1, LPARAM lp2, LPARAM lp)
struct _CRYPTUI_ENUM_SYSTEM_STORE_ARGS CRYPTUI_ENUM_SYSTEM_STORE_ARGS
static UINT CALLBACK general_callback_proc(HWND hwnd, UINT msg, PROPSHEETPAGEW *page)
static void import_warning(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, int warningID)
static const WCHAR empty[]
static void add_known_usage(HWND lv, PCCRYPT_OID_INFO info, CheckBitmapIndex state)
static BOOL is_ca_cert(PCCERT_CONTEXT cert, BOOL defaultIfNotSpecified)
static BOOL WINAPI enum_store_callback(const void *pvSystemStore, DWORD dwFlags, PCERT_SYSTEM_STORE_INFO pStoreInfo, void *pvReserved, void *pvArg)
static void export_password_mismatch(HWND hwnd, const struct ExportWizData *data)
static void cert_mgr_show_cert_usages(HWND hwnd, int index)
static BOOL CALLBACK refresh_propsheet_pages(HWND hwnd, LPARAM lParam)
static int CALLBACK cert_mgr_sort_by_date(LPARAM lp1, LPARAM lp2, LPARAM lp)
static BOOL show_cert_dialog(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, CRYPT_PROVIDER_CERT *provCert, BOOL *pfPropertiesChanged)
static INT_PTR CALLBACK detail_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static WCHAR * field_format_serial_number(PCCERT_CONTEXT cert)
static void show_cert_stores(HWND hwnd, DWORD dwFlags, struct CertMgrData *data)
BOOL WINAPI CryptUIDlgViewContext(DWORD dwContextType, LPVOID pvContext, HWND hwnd, LPCWSTR pwszTitle, DWORD dwFlags, LPVOID pvReserved)
PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateFromStore(HCERTSTORE hCertStore, HWND hwnd, LPCWSTR pwszTitle, LPCWSTR pwszDisplayString, DWORD dwDontUseColumn, DWORD dwFlags, void *pvReserved)
static void select_cert_view(HWND hwnd, PCCERT_CONTEXT cert, struct SelectCertData *data)
static void show_user_notice(HWND hwnd, struct IssuerStatement *issuerStatement)
static INT_PTR CALLBACK cert_properties_general_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
WCHAR *(* field_format_func)(PCCERT_CONTEXT cert)
static WCHAR * make_import_file_filter(DWORD dwFlags)
static void free_prop_sheet_pages(PROPSHEETPAGEW *pages, DWORD num)
static LPARAM index_to_lparam(struct hierarchy_data *data, DWORD index)
static void add_oid_text_to_control(HWND hwnd, char *oid)
static DWORD lparam_to_index(struct hierarchy_data *data, LPARAM lp)
struct _CRYPTUI_SELECTSTORE_INFO_A CRYPTUI_SELECTSTORE_INFO_A
static WCHAR * field_format_detailed_public_key(PCCERT_CONTEXT cert, void *param)
#define CRYPTUI_ENABLE_SHOW_PHYSICAL_STORE
static void add_properties(HWND hwnd, struct detail_data *data)
static const struct prop_id_to_string_id prop_id_map[]
static UINT CALLBACK cert_properties_general_callback(HWND hwnd, UINT msg, PROPSHEETPAGEW *page)
static void save_cert_mgr_usages(HWND hwnd)
static BOOL do_export(HANDLE file, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO pContextInfo, PCRYPT_KEY_PROV_INFO keyProvInfo, BOOL deleteKeys)
static void enumerate_stores(HWND hwnd, CRYPTUI_ENUM_DATA *pEnumData)
static void add_cert_to_list(HWND lv, PCCERT_CONTEXT cert, DWORD flags, DWORD *allocatedLen, LPWSTR *str)
static INT_PTR CALLBACK import_welcome_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static void set_general_cert_properties(HWND hwnd, struct edit_cert_data *data)
static void show_cert_usages(HWND hwnd, struct edit_cert_data *data)
static WCHAR * field_format_detailed_extension(PCCERT_CONTEXT cert, void *param)
BOOL WINAPI CryptUIDlgCertMgr(PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr)
static WCHAR * get_cps_str_from_qualifier(const CRYPT_OBJID_BLOB *qualifier)
static void refresh_store_certs(HWND hwnd)
static void add_all_extensions(HWND hwnd, struct detail_data *data)
static void show_edit_cert_properties_dialog(HWND parent, struct detail_data *data)
struct _CRYPTUI_SELECTSTORE_INFO_W CRYPTUI_SELECTSTORE_INFO_W
static LPWSTR get_cert_name_string(PCCERT_CONTEXT pCertContext, DWORD dwType, DWORD dwFlags)
static WCHAR * strdupAtoW(const char *str)
static const WCHAR filter_ctl[]
static WCHAR * get_cert_property_as_string(PCCERT_CONTEXT cert, DWORD prop)
static void create_listview_columns(HWND hwnd)
static CERT_ENHKEY_USAGE * convert_usages_str_to_usage(LPSTR usageStr)
static PROPSHEETPAGEW * prop_sheet_pages_AtoW(LPCPROPSHEETPAGEA pages, DWORD num)
static WCHAR * field_format_detailed_subject(PCCERT_CONTEXT cert, void *param)
static void free_store_info(HWND tree)
static void apply_general_changes(HWND hwnd)
static INT_PTR CALLBACK import_store_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static const WCHAR filter_all[]
static WCHAR * field_format_issuer(PCCERT_CONTEXT cert)
static void add_unformatted_text_to_control(HWND hwnd, LPCWSTR text, LONG len)
struct _CRYPTUI_ENUM_DATA CRYPTUI_ENUM_DATA
@ CheckBitmapIndexChecked
@ CheckBitmapIndexUnchecked
@ CheckBitmapIndexDisabledUnchecked
@ CheckBitmapIndexDisabledChecked
static BOOL save_base64(HANDLE file, const BYTE *pb, DWORD cb)
static DWORD CALLBACK read_text_callback(DWORD_PTR dwCookie, LPBYTE buf, LONG cb, LONG *pcb)
static void add_cert_columns(HWND hwnd)
static BOOL export_acquire_private_key(const CRYPT_KEY_PROV_INFO *info, HCRYPTPROV *phProv)
static BOOL import_store(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, HCERTSTORE source, HCERTSTORE dest)
BOOL WINAPI CryptUIDlgViewSignerInfoA(CRYPTUI_VIEWSIGNERINFO_STRUCTA *pcvsi)
static INT_PTR CALLBACK export_password_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static struct hierarchy_data * get_hierarchy_data_from_tree_item(HWND tree, HTREEITEM hItem)
static WCHAR * crypt_format_extension(const CERT_EXTENSION *ext, DWORD formatStrType)
static void add_v1_field(HWND hwnd, struct detail_data *data, const struct v1_field *field)
static INT_PTR CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static struct OIDToString * findSupportedOID(LPCSTR oid)
static int CALLBACK cert_mgr_sort_by_subject(LPARAM lp1, LPARAM lp2, LPARAM lp)
static INT_PTR CALLBACK export_welcome_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static WCHAR * field_format_version(PCCERT_CONTEXT cert)
static void get_cert_usages(PCCERT_CONTEXT cert, LPWSTR *str)
static INT_PTR CALLBACK add_purpose_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static INT_PTR CALLBACK export_format_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
static const WCHAR export_filter_cms[]
static const WCHAR export_filter_crl[]
static WCHAR * format_long_date(const FILETIME *fileTime)
static WCHAR * field_format_detailed_cert_name(PCERT_NAME_BLOB name)
static void free_certs(HWND lv)
static CERT_ENHKEY_USAGE * create_advanced_filter(void)
static HCERTSTORE cert_mgr_index_to_store(HWND tab, int index)
static BOOL init_hierarchy_page(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, PROPSHEETPAGEW *page)
static BOOL save_store_as_cms(HANDLE file, HCERTSTORE store)
static INT_PTR CALLBACK import_finish_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
BOOL(WINAPI * PFN_SELECTED_STORE_CB)(HCERTSTORE store, HWND hwnd, void *pvArg)
static void refresh_details_view(HWND hwnd)
static BOOL import_file(DWORD dwFlags, HWND hwnd, LPCWSTR szTitle, LPCWSTR fileName, HCERTSTORE dest)
static LONG_PTR find_oid_in_list(HWND lv, LPCSTR oid)
static BOOL check_store_context_type(DWORD dwFlags, HCERTSTORE store)
#define ERROR_INVALID_PARAMETER
#define DLL_PROCESS_ATTACH
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
#define MultiByteToWideChar
static const WCHAR *const ext[]
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
BOOL WINAPI FileTimeToSystemTime(IN CONST FILETIME *lpFileTime, OUT LPSYSTEMTIME lpSystemTime)
LONG WINAPI CompareFileTime(IN CONST FILETIME *lpFileTime1, IN CONST FILETIME *lpFileTime2)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
INT WINAPI GetLocaleInfoW(LCID lcid, LCTYPE lctype, LPWSTR buffer, INT len)
#define IS_INTRESOURCE(x)
_ACRTIMP size_t __cdecl wcslen(const wchar_t *)
_ACRTIMP char *__cdecl strchr(const char *, int)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
static char * strdup(const char *buf)
static wchar_t * wcsdup(const wchar_t *str)
static wchar_t * wmemchr(const wchar_t *s, wchar_t c, size_t n)
HRESULT WINAPI OleCreateDefaultHandler(REFCLSID clsid, LPUNKNOWN pUnkOuter, REFIID riid, LPVOID *ppvObj)
INT WSAAPI select(IN INT s, IN OUT LPFD_SET readfds, IN OUT LPFD_SET writefds, IN OUT LPFD_SET exceptfds, IN CONST struct timeval *timeout)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLint GLint GLsizei GLsizei height
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLenum GLsizei GLuint GLint * bytesWritten
GLenum GLuint GLenum GLsizei const GLchar * buf
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
GLsizeiptr const GLvoid GLenum usage
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
HLOCAL NTAPI LocalFree(HLOCAL hMem)
static const SecPkgInfoW infoW
static IN DWORD IN LPVOID lpvReserved
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
static const BYTE cert2[]
static const BYTE cert1[]
static LPCWSTR LPVOID pvReserved
static const struct access_res create[16]
#define cmp(status, error)
static APTTYPEQUALIFIER * qualifier
static PCCRYPT_OID_INFO ** usages
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define LOCALE_SYSTEM_DEFAULT
HRESULT WINAPI CreateBindCtx(DWORD reserved, IBindCtx **bind_context)
const GUID IID_IDataObject
const GUID IID_IOleObject
#define PSM_SETWIZBUTTONS
struct _PROPSHEETPAGEW PROPSHEETPAGEW
#define PSH_PROPSHEETPAGE
#define LVM_DELETEALLITEMS
struct _TREEITEM * HTREEITEM
#define LVS_EX_FULLROWSELECT
#define LVM_INSERTCOLUMNW
#define INDEXTOSTATEIMAGEMASK(i)
#define LVM_GETSELECTEDCOUNT
#define LVIS_STATEIMAGEMASK
#define TVIF_SELECTEDIMAGE
#define LVM_SETEXTENDEDLISTVIEWSTYLE
static unsigned __int64 next
#define EM_GETOLEINTERFACE
BOOL WINAPI CertSaveStore(HCERTSTORE hCertStore, DWORD dwMsgAndCertEncodingType, DWORD dwSaveAs, DWORD dwSaveTo, void *pvSaveToPara, DWORD dwFlags)
#define WINTRUST_ACTION_GENERIC_CERT_VERIFY
const struct CertMgrStoreInfo * stores
CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO contextInfo
PCRYPT_KEY_PROV_INFO keyProvInfo
CRYPTUI_WIZ_EXPORT_INFO exportInfo
HCERTSTORE hDestCertStore
CRYPTUI_WIZ_IMPORT_SRC_INFO importSrc
PFNCCERTDISPLAYPROC displayProc
LPCPROPSHEETPAGEW rgPropSheetPages
PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc
PCRYPTUI_SELECTSTORE_INFO_W info
union StoreInfo::@346 DUMMYUNIONNAME
enum StoreInfo::@345 type
CERT_TRUST_STATUS TrustStatus
CERT_TRUST_STATUS TrustStatus
PCERT_EXTENSION rgExtension
CERT_RDN_VALUE_BLOB Value
CERT_POLICY_INFO * rgPolicyInfo
CERT_POLICY_QUALIFIER_INFO * rgPolicyQualifier
PCRYPTUI_ENUM_SYSTEM_STORE_ARGS rgEnumArgs
void * pvSystemStoreLocationPara
HCERTSTORE * rghDisplayStores
LPCPROPSHEETPAGEW rgPropSheetPages
PFNCFILTERPROC pFilterCallback
PFNCCERTDISPLAYPROC pDisplayCallback
CRYPTUI_ENUM_DATA * pEnumData
PFN_SELECTED_STORE_CB pfnSelectedStoreCallback
CRYPTUI_ENUM_DATA * pEnumData
PFN_SELECTED_STORE_CB pfnSelectedStoreCallback
PCCTL_CONTEXT pCTLContext
LPCWSTR pwszExportFileName
PCCERT_CONTEXT pCertContext
PCCRL_CONTEXT pCRLContext
PCERT_CHAIN_ELEMENT pChainElement
PCCERT_CHAIN_CONTEXT pChainContext
CRYPT_PROVIDER_CERT * pasCertChain
LPSTR * rgpszUsageIdentifier
struct WINTRUST_CERT_INFO_ * pCert
DWORD fdwRevocationChecks
BOOL * pfPropertiesChanged
struct field_value_data * fields
PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo
BOOL * pfPropertiesChanged
create_detailed_value_func create
PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo
prop_to_value_func prop_to_value
CRYPT_PROVIDER_DATA const * pCryptProviderData
LPCPROPSHEETPAGEW rgPropSheetPages
PCCERT_CONTEXT pCertContext
create_detailed_value_func create_detailed_value
HRESULT WINAPI HlinkSimpleNavigateToString(LPCWSTR szTarget, LPCWSTR szLocation, LPCWSTR szTargetFrameName, IUnknown *pUnk, IBindCtx *pbc, IBindStatusCallback *pbsc, DWORD grfHLNF, DWORD dwReserved)
static struct wctab tab[]
DWORD WINAPI GetLastError(void)
#define FORMAT_MESSAGE_FROM_STRING
#define FORMAT_MESSAGE_FROM_SYSTEM
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
#define FORMAT_MESSAGE_ARGUMENT_ARRAY
#define szOID_PKIX_KP_IPSEC_END_SYSTEM
#define szOID_KP_DOCUMENT_SIGNING
#define CERT_NAME_STR_NO_QUOTING_FLAG
#define CERT_ENHKEY_USAGE_PROP_ID
#define szOID_EFS_RECOVERY
#define CRYPT_FORMAT_STR_MULTI_LINE
#define CERT_QUERY_CONTENT_SERIALIZED_CERT
#define szOID_KP_KEY_RECOVERY_AGENT
#define CERT_QUERY_CONTENT_FLAG_CTL
#define CERT_STORE_SAVE_AS_STORE
#define CERT_NAME_SIMPLE_DISPLAY_TYPE
#define CERT_STORE_PROV_COLLECTION
#define szOID_PKIX_POLICY_QUALIFIER_CPS
struct _CRYPT_OID_INFO CRYPT_OID_INFO
#define CERT_STORE_LOCALIZED_NAME_PROP_ID
#define CERT_QUERY_OBJECT_FILE
#define CERT_X500_NAME_STR
#define szOID_BASIC_CONSTRAINTS2
#define CERT_QUERY_CONTENT_FLAG_CRL
#define CERT_STORE_SAVE_AS_PKCS7
#define CERT_QUERY_CONTENT_FLAG_CERT
#define CERT_KEY_PROV_INFO_PROP_ID
#define CERT_QUERY_CONTENT_CRL
#define szOID_ENROLLMENT_AGENT
#define CERT_DESCRIPTION_PROP_ID
#define CERT_STORE_CREATE_NEW_FLAG
#define CERT_QUERY_CONTENT_SERIALIZED_STORE
#define szOID_KP_LIFETIME_SIGNING
#define CRYPT_STRING_BASE64
struct _CRYPT_OID_INFO * PCRYPT_OID_INFO
#define szOID_PKIX_KP_CLIENT_AUTH
#define CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG
#define CRYPT_ENHKEY_USAGE_OID_GROUP_ID
#define CERT_QUERY_CONTENT_CTL
#define szOID_PKIX_KP_CODE_SIGNING
#define CERT_QUERY_CONTENT_SERIALIZED_CTL
#define CRYPT_DELETEKEYSET
#define szOID_PKIX_KP_IPSEC_USER
#define szOID_PKIX_KP_TIMESTAMP_SIGNING
#define szOID_PKIX_KP_IPSEC_TUNNEL
#define szOID_OEM_WHQL_CRYPTO
#define X509_ASN_ENCODING
#define szOID_ANY_CERT_POLICY
#define szOID_BASIC_CONSTRAINTS
#define CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG
#define CRYPT_DECODE_ALLOC_FLAG
#define CERT_STORE_PROV_MEMORY
#define CERT_NAME_STR_CRLF_FLAG
#define szOID_KP_CTL_USAGE_SIGNING
#define CERT_FRIENDLY_NAME_PROP_ID
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT
#define X509_CERT_POLICIES
#define CERT_STORE_CERTIFICATE_CONTEXT
#define CERT_CA_SUBJECT_FLAG
#define szOID_KP_QUALIFIED_SUBORDINATION
#define szOID_KP_KEY_RECOVERY
#define szOID_CERT_POLICIES
#define CERT_QUERY_CONTENT_SERIALIZED_CRL
const CERT_CONTEXT * PCCERT_CONTEXT
#define szOID_PKIX_KP_SERVER_AUTH
#define EXPORT_PRIVATE_KEYS
#define CERT_QUERY_CONTENT_PKCS7_SIGNED
#define CERT_HASH_PROP_ID
#define szOID_PKIX_KP_EMAIL_PROTECTION
#define szOID_KP_SMARTCARD_LOGON
#define CERT_NAME_ISSUER_FLAG
#define szOID_WHQL_CRYPTO
#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED
#define CERT_STORE_ADD_ALWAYS
#define CERT_QUERY_FORMAT_FLAG_ALL
#define CERT_STORE_PROV_SYSTEM_W
const CRYPT_OID_INFO * PCCRYPT_OID_INFO
#define szOID_PKIX_POLICY_QUALIFIER_USERNOTICE
#define szOID_EMBEDDED_NT_CRYPTO
#define REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE
#define CERT_TRUST_IS_PARTIAL_CHAIN
#define CRYPT_OID_INFO_OID_KEY
#define CERT_SYSTEM_STORE_CURRENT_USER
#define PKCS_7_ASN_ENCODING
#define szOID_KP_CA_EXCHANGE
#define CERT_STORE_SAVE_TO_FILE
#define CRYPT_FORMAT_STR_NO_HEX
#define szOID_ANY_APPLICATION_POLICY
#define CERT_QUERY_CONTENT_FLAG_PFX
#define szOID_APPLICATION_CERT_POLICIES
#define szOID_DS_EMAIL_REPLICATION
#define CERT_QUERY_CONTENT_CERT
struct _CERT_BASIC_CONSTRAINTS2_INFO CERT_BASIC_CONSTRAINTS2_INFO
#define X509_ENHANCED_KEY_USAGE
#define X509_PKIX_POLICY_QUALIFIER_USERNOTICE
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL
#define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES
#define szOID_ROOT_LIST_SIGNER
#define szOID_LICENSE_SERVER
#define TRUST_E_CERT_SIGNATURE
int WINAPI GetDeviceCaps(_In_opt_ HDC, _In_ int)
#define OUT_DEFAULT_PRECIS
HFONT WINAPI CreateFontW(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_opt_ LPCWSTR)
#define CLIP_DEFAULT_PRECIS
#define LOCALE_SSHORTDATE
#define HKEY_CURRENT_USER
#define WTD_REVOCATION_CHECK_CHAIN
#define WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
#define WTD_STATEACTION_CLOSE
#define WTD_STATEACTION_VERIFY
#define CERT_CONFIDENCE_TIME
#define CERT_CONFIDENCE_TIMENEST
#define WTD_REVOCATION_CHECK_END_CERT
#define CERT_CONFIDENCE_SIG
CRYPT_PROVIDER_CERT *WINAPI WTHelperGetProvCertFromChain(CRYPT_PROVIDER_SGNR *pSgnr, DWORD idxCert)
CRYPT_PROVIDER_SGNR *WINAPI WTHelperGetProvSignerFromChain(CRYPT_PROVIDER_DATA *pProvData, DWORD idxSigner, BOOL fCounterSigner, DWORD idxCounterSigner)
CRYPT_PROVIDER_DATA *WINAPI WTHelperProvDataFromStateData(HANDLE hStateData)
LONG WINAPI WinVerifyTrust(HWND hwnd, GUID *ActionID, LPVOID ActionData)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define GetWindowLongPtrW
#define LR_LOADTRANSPARENT
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define DialogBoxW(i, t, p, f)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CB_FINDSTRINGEXACT
BOOL WINAPI EnumChildWindows(_In_opt_ HWND, _In_ WNDENUMPROC, _In_ LPARAM)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
HWND WINAPI SetFocus(_In_opt_ HWND)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HDC WINAPI GetDC(_In_opt_ HWND)
#define MB_ICONEXCLAMATION
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI ShowScrollBar(_In_ HWND, _In_ int, _In_ BOOL)
#define MAKEINTRESOURCEW(i)
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
DWORD WINAPI GetClassLongW(_In_ HWND, _In_ int)
#define SetWindowLongPtrW
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)