68 DWORD *contentType,
const void **ppvContext)
76 if (
ret && contentType)
83 if (
ret && contentType)
90 if (
ret && contentType)
97 DWORD dwExpectedContentTypeFlags,
DWORD dwExpectedFormatTypeFlags,
98 DWORD *pdwMsgAndCertEncodingType,
DWORD *pdwContentType,
DWORD *pdwFormatType,
99 HCERTSTORE *phCertStore,
const void **ppvContext)
105 DWORD formatType = 0;
107 switch (dwObjectType)
133 pdwContentType, ppvContext);
158 dwExpectedContentTypeFlags, store, pdwContentType,
171 if (pdwMsgAndCertEncodingType)
174 *pdwFormatType = formatType;
179 if (
blob == &fileBlob)
186 const void *pvObject,
DWORD dwExpectedContentTypeFlags,
187 DWORD *pdwMsgAndCertEncodingType,
DWORD *pdwContentType,
188 HCERTSTORE *phCertStore,
const void **ppvContext)
197 switch (dwObjectType)
222 DWORD contentType, certStoreOffset;
231 if (!(dwExpectedContentTypeFlags &
243 if (!(dwExpectedContentTypeFlags &
255 if (!(dwExpectedContentTypeFlags &
268 if (pdwMsgAndCertEncodingType)
271 *pdwContentType = contentType;
283 if (contextInterface &&
context)
285 if (
blob == &fileBlob)
292 DWORD *pdwMsgAndCertEncodingType,
DWORD *pdwContentType,
309 if (pdwMsgAndCertEncodingType)
324 DWORD *pdwMsgAndCertEncodingType,
DWORD *pdwContentType,
336 if (pdwMsgAndCertEncodingType)
349 const void *pvObject,
DWORD *pdwMsgAndCertEncodingType,
DWORD *pdwContentType,
352 switch (dwObjectType)
356 pdwMsgAndCertEncodingType, pdwContentType, phCertStore, phMsg);
359 pdwMsgAndCertEncodingType, pdwContentType, phCertStore, phMsg);
361 FIXME(
"unimplemented for type %ld\n", dwObjectType);
409 if (pdwMsgAndCertEncodingType)
410 *pdwMsgAndCertEncodingType = encodingType;
461 if (pdwMsgAndCertEncodingType)
462 *pdwMsgAndCertEncodingType = encodingType;
473 DWORD dwExpectedContentTypeFlags,
DWORD dwExpectedFormatTypeFlags,
474 DWORD *pdwMsgAndCertEncodingType,
DWORD *pdwContentType,
DWORD *pdwFormatType,
482 DWORD formatType = 0;
484 TRACE(
"(%ld, %p, %08lx, %08lx, %p, %p, %p, %p, %p)\n", dwObjectType, pvObject,
485 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
486 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore,
489 switch (dwObjectType)
515 pdwContentType, &
msg);
520 pdwContentType, &
msg);
545 if (dwExpectedContentTypeFlags &
548 pdwMsgAndCertEncodingType, pdwContentType, &
msg);
550 if (!
ret && (dwExpectedContentTypeFlags &
553 pdwMsgAndCertEncodingType, pdwContentType, &
msg);
569 while (strLen && !
str[strLen - 1])
584 if (dwExpectedContentTypeFlags &
587 pdwMsgAndCertEncodingType, pdwContentType, &
msg);
589 if (!
ret && (dwExpectedContentTypeFlags &
592 pdwMsgAndCertEncodingType, pdwContentType, &
msg);
606 *pdwFormatType = formatType;
615 if (
blob == &fileBlob)
622 const void *pvObject,
DWORD dwExpectedContentTypeFlags,
623 DWORD *pdwMsgAndCertEncodingType,
DWORD *pdwContentType,
637 TRACE(
"cbData %lu, pbData %p.\n",
b->cbData,
b->pbData);
641 ERR(
"Failed getting temp file name.\n");
648 ERR(
"Could not create temp file.\n");
655 ERR(
"Could not write temp file.\n");
666 WARN(
"Unknown dwObjectType %lu.\n", dwObjectType);
678 memset(&sip, 0,
sizeof(sip));
687 memset(&subjectInfo, 0,
sizeof(subjectInfo));
688 subjectInfo.
cbSize =
sizeof(subjectInfo);
692 ret = sip.
pfGet(&subjectInfo, &encodingType, 0, &
blob.cbData,
699 ret = sip.
pfGet(&subjectInfo, &encodingType, 0,
707 pdwMsgAndCertEncodingType,
NULL,
NULL,
709 if (
ret && pdwContentType)
729 DWORD dwExpectedContentTypeFlags,
DWORD dwExpectedFormatTypeFlags,
730 DWORD *pdwMsgAndCertEncodingType,
DWORD *pdwContentType,
DWORD *pdwFormatType,
736 TRACE(
"(%ld, %p, %08lx, %08lx, %p, %p, %p, %p, %p)\n", dwObjectType, pvObject,
737 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
738 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore,
741 switch (dwObjectType)
762 if (phCertStore) *phCertStore =
NULL;
763 if (phMsg) *phMsg =
NULL;
771 DWORD dwExpectedContentTypeFlags,
DWORD dwExpectedFormatTypeFlags,
774 const void **ppvContext)
776 static const DWORD unimplementedTypes =
780 TRACE(
"(%08lx, %p, %08lx, %08lx, %08lx, %p, %p, %p, %p, %p, %p)\n",
781 dwObjectType, pvObject, dwExpectedContentTypeFlags,
782 dwExpectedFormatTypeFlags,
dwFlags, pdwMsgAndCertEncodingType,
783 pdwContentType, pdwFormatType, phCertStore, phMsg, ppvContext);
788 WARN(
"unsupported type %ld\n", dwObjectType);
794 WARN(
"missing required argument\n");
798 if (dwExpectedContentTypeFlags & unimplementedTypes)
799 WARN(
"unimplemented for types %08lx\n",
800 dwExpectedContentTypeFlags & unimplementedTypes);
817 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
818 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType, phCertStore,
825 pdwMsgAndCertEncodingType, pdwContentType, phCertStore, phMsg);
833 dwExpectedContentTypeFlags, pdwMsgAndCertEncodingType, pdwContentType,
834 phCertStore, ppvContext);
841 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
842 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType,
849 dwExpectedContentTypeFlags, pdwMsgAndCertEncodingType, pdwContentType,
856 dwExpectedContentTypeFlags, dwExpectedFormatTypeFlags,
857 pdwMsgAndCertEncodingType, pdwContentType, pdwFormatType,
867 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
868 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
875 bytesNeeded = (cbEncoded * 3) *
sizeof(
WCHAR);
877 bytesNeeded =
sizeof(
WCHAR);
880 *pcbFormat = bytesNeeded;
883 else if (*pcbFormat < bytesNeeded)
885 *pcbFormat = bytesNeeded;
894 *pcbFormat = bytesNeeded;
897 for (
i = 0;
i < cbEncoded;
i++)
899 if (
i < cbEncoded - 1)
912#define MAX_STRING_RESOURCE_LEN 128
930 for (
i = 0;
i < mapEntries;
i++)
941 *pcbFormat = bytesNeeded;
943 else if (*pcbFormat < bytesNeeded)
946 *pcbFormat = bytesNeeded;
955 *pcbFormat = bytesNeeded;
956 for (
i = 0;
i < mapEntries;
i++)
989 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
990 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
1009 if (!
bits->cbData ||
bits->cbData > 2)
1013 *pcbFormat = bytesNeeded;
1014 else if (*pcbFormat < bytesNeeded)
1016 *pcbFormat = bytesNeeded;
1024 *pcbFormat = bytesNeeded;
1041 stringsLoaded =
TRUE;
1045 bytesNeeded += bitStringLen;
1046 if (
bits->cbData == 2)
1050 bytesNeeded += bitStringLen;
1052 bytesNeeded += 3 *
sizeof(
WCHAR);
1055 bytesNeeded +=
size;
1057 *pcbFormat = bytesNeeded;
1058 else if (*pcbFormat < bytesNeeded)
1060 *pcbFormat = bytesNeeded;
1068 bitStringLen = bytesNeeded;
1072 str += bitStringLen /
sizeof(
WCHAR) - 1;
1073 if (
bits->cbData == 2)
1075 bitStringLen = bytesNeeded;
1078 str += bitStringLen /
sizeof(
WCHAR) - 1;
1102 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
1103 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
1141 stringsLoaded =
TRUE;
1149 bytesNeeded += sepLen;
1151 if (
info->fPathLenConstraint)
1157 *pcbFormat = bytesNeeded;
1158 else if (*pcbFormat < bytesNeeded)
1160 *pcbFormat = bytesNeeded;
1168 *pcbFormat = bytesNeeded;
1197 *pcbStr = bytesNeeded;
1200 else if (*pcbStr < bytesNeeded)
1202 *pcbStr = bytesNeeded;
1208 *pcbStr = bytesNeeded;
1240 WCHAR ipAddrBuf[32];
1247 switch (
entry->dwAltNameChoice)
1261 DWORD directoryNameLen;
1266 indentLevel + 1, &
entry->DirectoryName, strType,
NULL, 0);
1268 bytesNeeded += (directoryNameLen - 1) *
sizeof(
WCHAR);
1272 bytesNeeded +=
sizeof(
WCHAR);
1284 if (
entry->IPAddress.cbData == 8)
1291 entry->IPAddress.pbData[0],
1292 entry->IPAddress.pbData[1],
1293 entry->IPAddress.pbData[2],
1294 entry->IPAddress.pbData[3]);
1299 entry->IPAddress.pbData[4],
1300 entry->IPAddress.pbData[5],
1301 entry->IPAddress.pbData[6],
1302 entry->IPAddress.pbData[7]);
1309 entry->IPAddress.pbData[0],
1310 entry->IPAddress.pbData[1],
1311 entry->IPAddress.pbData[2],
1312 entry->IPAddress.pbData[3],
1313 entry->IPAddress.pbData[4],
1314 entry->IPAddress.pbData[5],
1315 entry->IPAddress.pbData[6],
1316 entry->IPAddress.pbData[7]);
1323 FIXME(
"unknown IP address format (%ld bytes)\n",
1324 entry->IPAddress.cbData);
1330 FIXME(
"unimplemented for %ld\n",
entry->dwAltNameChoice);
1337 *pcbStr = bytesNeeded;
1338 else if (*pcbStr < bytesNeeded)
1340 *pcbStr = bytesNeeded;
1348 *pcbStr = bytesNeeded;
1351 for (
i = 0;
i < indentLevel;
i++)
1359 switch (
entry->dwAltNameChoice)
1375 indentLevel + 1, &
entry->DirectoryName, strType,
str,
1376 bytesNeeded /
sizeof(
WCHAR));
1387 for (
i = 0;
i < indentLevel;
i++)
1432 if (i < name->cAltEntry - 1)
1433 bytesNeeded += sepLen;
1438 bytesNeeded +=
sizeof(
WCHAR);
1440 *pcbStr = bytesNeeded;
1441 else if (*pcbStr < bytesNeeded)
1443 *pcbStr = bytesNeeded;
1449 *pcbStr = bytesNeeded;
1457 if (i < name->cAltEntry - 1)
1472 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
1473 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
1493 DWORD bytesNeeded, sepLen;
1511 bytesNeeded += sepLen;
1515 *pcbStr = bytesNeeded;
1516 else if (*pcbStr < bytesNeeded)
1518 *pcbStr = bytesNeeded;
1524 *pcbStr = bytesNeeded;
1538 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
1539 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
1570 if (
info->KeyId.cbData)
1572 needSeparator =
TRUE;
1580 if (
info->AuthorityCertIssuer.cAltEntry)
1583 bytesNeeded += sepLen;
1584 needSeparator =
TRUE;
1593 if (
info->AuthorityCertSerialNumber.cbData)
1596 bytesNeeded += sepLen;
1608 *pcbFormat = bytesNeeded;
1609 else if (*pcbFormat < bytesNeeded)
1611 *pcbFormat = bytesNeeded;
1619 *pcbFormat = bytesNeeded;
1620 needSeparator =
FALSE;
1621 if (
info->KeyId.cbData)
1623 needSeparator =
TRUE;
1632 if (
info->AuthorityCertIssuer.cAltEntry)
1639 needSeparator =
TRUE;
1649 if (
info->AuthorityCertSerialNumber.cbData)
1678 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
1679 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
1697 if (!
info->cAccDescr)
1704 *pcbFormat = bytesNeeded;
1705 else if (*pcbFormat < bytesNeeded)
1707 *pcbFormat = bytesNeeded;
1713 *pcbFormat = bytesNeeded;
1714 lstrcpyW(pbFormat, infoNotAvailable);
1722 LPCWSTR headingSep, accessMethodSep, locationSep;
1723 WCHAR accessDescrNum[11];
1733 stringsLoaded =
TRUE;
1738 accessMethodSep =
crlf;
1745 locationSep =
equal;
1751 bytesNeeded +=
sizeof(
WCHAR);
1754 bytesNeeded +=
sizeof(
WCHAR);
1764 else if (!
strcmp(
info->rgAccDescr[
i].pszAccessMethod,
1769 bytesNeeded +=
sizeof(
WCHAR);
1770 bytesNeeded +=
sizeof(
WCHAR);
1771 bytesNeeded +=
strlen(
info->rgAccDescr[
i].pszAccessMethod)
1773 bytesNeeded +=
sizeof(
WCHAR);
1785 if (i < info->cAccDescr - 1)
1791 *pcbFormat = bytesNeeded;
1792 else if (*pcbFormat < bytesNeeded)
1794 *pcbFormat = bytesNeeded;
1801 DWORD altNameEntrySize;
1803 *pcbFormat = bytesNeeded;
1830 else if (!
strcmp(
info->rgAccDescr[
i].pszAccessMethod,
1843 for (oidPtr =
info->rgAccDescr[
i].pszAccessMethod;
1844 *oidPtr; oidPtr++,
str++)
1862 altNameEntrySize = bytesNeeded;
1864 &
info->rgAccDescr[
i].AccessLocation,
str,
1867 str += altNameEntrySize /
sizeof(
WCHAR) - 1;
1868 if (i < info->cAccDescr - 1)
1910 static const WCHAR sep[] =
L", ";
1912 unsigned int i, numReasons = 0;
1922 stringsLoaded =
TRUE;
1939 *pcbStr = bytesNeeded;
1940 else if (*pcbStr < bytesNeeded)
1942 *pcbStr = bytesNeeded;
1948 *pcbStr = bytesNeeded;
1975 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
1976 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
1991 static const WCHAR colon[] =
L":";
1996 WCHAR distPointNum[11];
2007 stringsLoaded =
TRUE;
2020 for (
i = 0;
ret &&
i <
info->cDistPoint;
i++)
2068 bytesNeeded +=
sizeof(
WCHAR);
2071 bytesNeeded +=
sizeof(
WCHAR);
2085 *pcbFormat = bytesNeeded;
2086 else if (*pcbFormat < bytesNeeded)
2088 *pcbFormat = bytesNeeded;
2094 *pcbFormat = bytesNeeded;
2095 lstrcpyW(pbFormat, infoNotAvailable);
2101 *pcbFormat = bytesNeeded;
2102 else if (*pcbFormat < bytesNeeded)
2104 *pcbFormat = bytesNeeded;
2112 *pcbFormat = bytesNeeded;
2113 for (
i = 0;
ret &&
i <
info->cDistPoint;
i++)
2134 DWORD altNameSize = bytesNeeded;
2164 str += altNameSize /
sizeof(
WCHAR) - 1;
2168 DWORD reasonSize = bytesNeeded;
2175 str += reasonSize /
sizeof(
WCHAR) - 1;
2179 DWORD crlIssuerSize = bytesNeeded;
2189 str += crlIssuerSize /
sizeof(
WCHAR) - 1;
2200 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
2201 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
2234 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
2243 bytesNeeded +=
sizeof(
WCHAR);
2244 bytesNeeded +=
sizeof(
WCHAR);
2245 bytesNeeded +=
strlen(
usage->rgpszUsageIdentifier[
i]) *
2247 bytesNeeded +=
sizeof(
WCHAR);
2248 if (i < usage->cUsageIdentifier - 1)
2249 bytesNeeded += sepLen;
2252 *pcbFormat = bytesNeeded;
2253 else if (*pcbFormat < bytesNeeded)
2255 *pcbFormat = bytesNeeded;
2263 *pcbFormat = bytesNeeded;
2264 for (
i = 0;
i <
usage->cUsageIdentifier;
i++)
2267 usage->rgpszUsageIdentifier[
i],
2283 for (oidPtr =
usage->rgpszUsageIdentifier[
i]; *oidPtr; oidPtr++)
2287 if (i < usage->cUsageIdentifier - 1)
2310 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
2311 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
2330 if (!
bits->cbData ||
bits->cbData > 1)
2334 *pcbFormat = bytesNeeded;
2335 else if (*pcbFormat < bytesNeeded)
2337 *pcbFormat = bytesNeeded;
2345 *pcbFormat = bytesNeeded;
2361 stringsLoaded =
TRUE;
2365 bytesNeeded += bitStringLen;
2366 bytesNeeded += 3 *
sizeof(
WCHAR);
2369 bytesNeeded +=
size;
2371 *pcbFormat = bytesNeeded;
2372 else if (*pcbFormat < bytesNeeded)
2374 *pcbFormat = bytesNeeded;
2382 bitStringLen = bytesNeeded;
2386 str += bitStringLen /
sizeof(
WCHAR) - 1;
2409 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
2410 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
2439 stringsLoaded =
TRUE;
2455 bytesNeeded += sepLen;
2465 *pcbFormat = bytesNeeded;
2466 else if (*pcbFormat < bytesNeeded)
2468 *pcbFormat = bytesNeeded;
2476 *pcbFormat = bytesNeeded;
2502 DWORD dwFormatType,
DWORD dwFormatStrType,
void *pFormatStruct,
2503 LPCSTR lpszStructType,
const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
2519 *pcbFormat =
value->Value.cbData;
2520 else if (*pcbFormat < value->
Value.cbData)
2522 *pcbFormat =
value->Value.cbData;
2530 *pcbFormat =
value->Value.cbData;
2552 switch (
LOWORD(lpszStructType))
2616 DWORD dwFormatStrType,
void *pFormatStruct,
LPCSTR lpszStructType,
2617 const BYTE *pbEncoded,
DWORD cbEncoded,
void *pbFormat,
DWORD *pcbFormat)
2623 TRACE(
"(%08lx, %ld, %08lx, %p, %s, %p, %ld, %p, %p)\n", dwCertEncodingType,
2624 dwFormatType, dwFormatStrType, pFormatStruct,
debugstr_a(lpszStructType),
2625 pbEncoded, cbEncoded, pbFormat, pcbFormat);
2628 dwFormatStrType, lpszStructType)))
2635 (
void **)&
format, &hFunc);
2641 ret =
format(dwCertEncodingType, dwFormatType, dwFormatStrType,
2642 pFormatStruct, lpszStructType, pbEncoded, cbEncoded, pbFormat,
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define IDS_FINANCIAL_CRITERIA_MEETS_CRITERIA
#define IDS_NETSCAPE_SIGN_CA
#define IDS_ALT_NAME_DNS_NAME
#define IDS_REASON_CESSATION_OF_OPERATION
#define IDS_CRL_DIST_POINT_ISSUER
#define IDS_ALT_NAME_RFC822_NAME
#define IDS_NETSCAPE_SSL_CA
#define IDS_NETSCAPE_SSL_SERVER
#define IDS_DATA_ENCIPHERMENT
#define IDS_ACCESS_LOCATION
#define IDS_REASON_AFFILIATION_CHANGED
#define IDS_REASON_CERTIFICATE_HOLD
#define IDS_PATH_LENGTH_NONE
#define IDS_ALT_NAME_DIRECTORY_NAME
#define IDS_NETSCAPE_SMIME
#define IDS_CRL_DIST_POINT_FULL_NAME
#define IDS_FINANCIAL_CRITERIA
#define IDS_CERT_SERIAL_NUMBER
#define IDS_ENCIPHER_ONLY
#define IDS_KEY_AGREEMENT
#define IDS_ACCESS_METHOD
#define IDS_SUBJECT_TYPE_END_CERT
#define IDS_FINANCIAL_CRITERIA_AVAILABLE
#define IDS_CRL_DIST_POINT
#define IDS_FINANCIAL_CRITERIA_NOT_AVAILABLE
#define IDS_REASON_CA_COMPROMISE
#define IDS_NETSCAPE_SSL_CLIENT
#define IDS_REASON_SUPERSEDED
#define IDS_NETSCAPE_SMIME_CA
#define IDS_CRL_DIST_POINT_REASON
#define IDS_ACCESS_METHOD_UNKNOWN
#define IDS_CRL_DIST_POINT_RDN_NAME
#define IDS_USAGE_UNKNOWN
#define IDS_DIGITAL_SIGNATURE
#define IDS_NETSCAPE_SIGN
#define IDS_INFO_NOT_AVAILABLE
#define IDS_NON_REPUDIATION
#define IDS_DECIPHER_ONLY
#define IDS_REASON_KEY_COMPROMISE
#define IDS_SUBJECT_TYPE_CA
#define IDS_CRL_DIST_POINT_NAME
#define IDS_ACCESS_METHOD_CA_ISSUERS
#define IDS_KEY_ENCIPHERMENT
#define IDS_ALT_NAME_MASK
#define IDS_ACCESS_METHOD_OCSP
#define IDS_OFFLINE_CRL_SIGN
#define IDS_ALT_NAME_IP_ADDRESS
BOOL WINAPI PFXIsPFXBlob(CRYPT_DATA_BLOB *pPFX)
BOOL WINAPI CryptDecodeObjectEx(DWORD dwCertEncodingType, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, DWORD dwFlags, PCRYPT_DECODE_PARA pDecodePara, void *pvStructInfo, DWORD *pcbStructInfo)
BOOL CRYPT_ReadSerializedStoreFromFile(HANDLE file, HCERTSTORE store)
const void * CRYPT_ReadSerializedElement(const BYTE *pbElement, DWORD cbElement, DWORD dwContextTypeFlags, DWORD *pdwContentType)
DWORD cert_name_to_str_with_indent(DWORD dwCertEncodingType, DWORD indent, const CERT_NAME_BLOB *pName, DWORD dwStrType, LPWSTR psz, DWORD csz)
const WINE_CONTEXT_INTERFACE * pCTLInterface
const WINE_CONTEXT_INTERFACE * pCertInterface
BOOL CRYPT_ReadSerializedStoreFromBlob(const CRYPT_DATA_BLOB *blob, HCERTSTORE store)
static context_t * context_from_ptr(const void *ptr)
const WINE_CONTEXT_INTERFACE * pCRLInterface
BOOL WINAPI CryptStringToBinaryW(LPCWSTR pszString, DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
BOOL WINAPI CryptStringToBinaryA(LPCSTR pszString, DWORD cchString, DWORD dwFlags, BYTE *pbBinary, DWORD *pcbBinary, DWORD *pdwSkip, DWORD *pdwFlags)
void Context_AddRef(context_t *context)
void Context_Release(context_t *context)
LPVOID WINAPI CryptMemAlloc(ULONG cbSize)
VOID WINAPI CryptMemFree(LPVOID pv)
HCRYPTMSG WINAPI CryptMsgOpenToDecode(DWORD dwMsgEncodingType, DWORD dwFlags, DWORD dwMsgType, HCRYPTPROV_LEGACY hCryptProv, PCERT_INFO pRecipientInfo, PCMSG_STREAM_INFO pStreamInfo)
BOOL WINAPI CryptMsgGetParam(HCRYPTMSG hCryptMsg, DWORD dwParamType, DWORD dwIndex, void *pvData, DWORD *pcbData)
BOOL WINAPI CryptMsgUpdate(HCRYPTMSG hCryptMsg, const BYTE *pbData, DWORD cbData, BOOL fFinal)
BOOL WINAPI CryptMsgClose(HCRYPTMSG hCryptMsg)
static BOOL CRYPT_FormatAltNameInfo(DWORD dwFormatStrType, DWORD indentLevel, const CERT_ALT_NAME_INFO *name, LPWSTR str, DWORD *pcbStr)
static BOOL CRYPT_QueryMessageObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
static WCHAR subjectTypeEndCert[MAX_STRING_RESOURCE_LEN]
static BOOL WINAPI CRYPT_FormatHexString(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static BOOL WINAPI CRYPT_FormatNetscapeCertType(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static WCHAR available[MAX_STRING_RESOURCE_LEN]
static const WCHAR colonSep[]
static BOOL CRYPT_QuerySerializedContextObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, const void **ppvContext)
static struct BitToString keyUsageByte0Map[]
static BOOL CRYPT_FormatBits(BYTE bits, const struct BitToString *map, DWORD mapEntries, void *pbFormat, DWORD *pcbFormat, BOOL *first)
static BOOL WINAPI CRYPT_FormatEnhancedKeyUsage(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static const WCHAR commaSpace[]
static BOOL CRYPT_QuerySerializedStoreObject(DWORD dwObjectType, const void *pvObject, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
static WCHAR rdnName[MAX_STRING_RESOURCE_LEN]
#define MAX_STRING_RESOURCE_LEN
static BOOL CRYPT_QueryUnsignedMessage(const CRYPT_DATA_BLOB *blob, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCRYPTMSG *phMsg)
static WCHAR aia[MAX_STRING_RESOURCE_LEN]
static WCHAR ocsp[MAX_STRING_RESOURCE_LEN]
static BOOL WINAPI CRYPT_FormatBasicConstraints2(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static WCHAR meetsCriteria[MAX_STRING_RESOURCE_LEN]
static BOOL CRYPT_FormatAltNameEntry(DWORD dwFormatStrType, DWORD indentLevel, const CERT_ALT_NAME_ENTRY *entry, LPWSTR str, DWORD *pcbStr)
static WCHAR caIssuers[MAX_STRING_RESOURCE_LEN]
static BOOL WINAPI CRYPT_FormatKeyUsage(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static struct BitToString netscapeCertTypeMap[]
static WCHAR crlDistPoint[MAX_STRING_RESOURCE_LEN]
static WCHAR financialCriteria[MAX_STRING_RESOURCE_LEN]
static BOOL WINAPI CRYPT_FormatAltName(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static BOOL CRYPT_FormatReason(DWORD dwFormatStrType, const CRYPT_BIT_BLOB *reasonFlags, LPWSTR str, DWORD *pcbStr)
static BOOL CRYPT_ReadBlobFromFile(LPCWSTR fileName, PCERT_BLOB blob)
static BOOL WINAPI CRYPT_FormatAuthorityKeyId2(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static WCHAR subjectTypeCA[MAX_STRING_RESOURCE_LEN]
static WCHAR superseded[MAX_STRING_RESOURCE_LEN]
static WCHAR keyCompromise[MAX_STRING_RESOURCE_LEN]
static const WCHAR colonCrlf[]
static CryptFormatObjectFunc CRYPT_GetBuiltinFormatFunction(DWORD encodingType, DWORD formatStrType, LPCSTR lpszStructType)
BOOL WINAPI CryptFormatObject(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static BOOL CRYPT_QuerySerializedStoreFromBlob(const CRYPT_DATA_BLOB *blob, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
static BOOL CRYPT_FormatKeyId(const CRYPT_DATA_BLOB *keyId, LPWSTR str, DWORD *pcbStr)
static WCHAR yes[MAX_STRING_RESOURCE_LEN]
static struct BitToString keyUsageByte1Map[]
static WCHAR fullName[MAX_STRING_RESOURCE_LEN]
static BOOL CRYPT_FormatCertSerialNumber(const CRYPT_DATA_BLOB *serialNum, LPWSTR str, DWORD *pcbStr)
static BOOL WINAPI CRYPT_FormatAuthorityInfoAccess(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static WCHAR unknown[MAX_STRING_RESOURCE_LEN]
static WCHAR subjectTypeHeader[MAX_STRING_RESOURCE_LEN]
static const WCHAR indent[]
static BOOL CRYPT_QuerySerializedStoreFromFile(LPCWSTR fileName, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
static WCHAR caCompromise[MAX_STRING_RESOURCE_LEN]
static BOOL WINAPI CRYPT_FormatUnicodeString(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static WCHAR accessLocation[MAX_STRING_RESOURCE_LEN]
static const WCHAR crlf[]
static BOOL CRYPT_QueryContextBlob(const CERT_BLOB *blob, DWORD dwExpectedContentTypeFlags, HCERTSTORE store, DWORD *contentType, const void **ppvContext)
static BOOL CRYPT_QuerySignedMessage(const CRYPT_DATA_BLOB *blob, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCRYPTMSG *phMsg)
static BOOL CRYPT_QueryContextObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, const void **ppvContext)
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 WCHAR pathLengthHeader[MAX_STRING_RESOURCE_LEN]
static WCHAR operationCeased[MAX_STRING_RESOURCE_LEN]
static WCHAR distPointName[MAX_STRING_RESOURCE_LEN]
BOOL(WINAPI * CryptFormatObjectFunc)(DWORD, DWORD, DWORD, void *, LPCSTR, const BYTE *, DWORD, void *, DWORD *)
static WCHAR issuer[MAX_STRING_RESOURCE_LEN]
static struct reason_map_entry reason_map[]
static WCHAR no[MAX_STRING_RESOURCE_LEN]
static BOOL CRYPT_QueryEmbeddedMessageObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
static WCHAR affiliationChanged[MAX_STRING_RESOURCE_LEN]
static BOOL WINAPI CRYPT_FormatCRLDistPoints(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static WCHAR notAvailable[MAX_STRING_RESOURCE_LEN]
static BOOL CRYPT_FormatCertIssuer(DWORD dwFormatStrType, const CERT_ALT_NAME_INFO *issuer, LPWSTR str, DWORD *pcbStr)
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
static BOOL WINAPI CRYPT_FormatSpcFinancialCriteria(DWORD dwCertEncodingType, DWORD dwFormatType, DWORD dwFormatStrType, void *pFormatStruct, LPCSTR lpszStructType, const BYTE *pbEncoded, DWORD cbEncoded, void *pbFormat, DWORD *pcbFormat)
static WCHAR certificateHold[MAX_STRING_RESOURCE_LEN]
static WCHAR accessMethod[MAX_STRING_RESOURCE_LEN]
static BOOL CRYPT_QueryPFXObject(DWORD dwObjectType, const void *pvObject, DWORD dwExpectedContentTypeFlags, DWORD dwExpectedFormatTypeFlags, DWORD *pdwMsgAndCertEncodingType, DWORD *pdwContentType, DWORD *pdwFormatType, HCERTSTORE *phCertStore, HCRYPTMSG *phMsg)
static BOOL CRYPT_FormatHexStringWithPrefix(const CRYPT_DATA_BLOB *blob, int id, LPWSTR str, DWORD *pcbStr)
HCRYPTOIDFUNCSET WINAPI CryptInitOIDFunctionSet(LPCSTR pszFuncName, DWORD dwFlags)
PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey, DWORD dwGroupId)
BOOL WINAPI CryptGetOIDFunctionAddress(HCRYPTOIDFUNCSET hFuncSet, DWORD dwEncodingType, LPCSTR pszOID, DWORD dwFlags, void **ppvFuncAddr, HCRYPTOIDFUNCADDR *phFuncAddr)
BOOL WINAPI CryptFreeOIDFunctionAddress(HCRYPTOIDFUNCADDR hFuncAddr, DWORD dwFlags)
BOOL WINAPI CryptSIPRetrieveSubjectGuid(LPCWSTR FileName, HANDLE hFileIn, GUID *pgSubject)
BOOL WINAPI CryptSIPLoad(const GUID *pgSubject, DWORD dwFlags, SIP_DISPATCH_INFO *pSipDispatch)
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
HCERTSTORE WINAPI CertDuplicateStore(HCERTSTORE hCertStore)
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
#define ReadFile(a, b, c, d, e)
#define INVALID_HANDLE_VALUE
#define FILE_ATTRIBUTE_NORMAL
DWORD WINAPI GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
DWORD WINAPI GetTempPathW(IN DWORD count, OUT LPWSTR path)
_ACRTIMP size_t __cdecl strlen(const char *)
_ACRTIMP int __cdecl strcmp(const char *, const char *)
UINT WINAPI GetTempFileNameW(IN LPCWSTR lpPathName, IN LPCWSTR lpPrefixString, IN UINT uUnique, OUT LPWSTR lpTempFileName)
GLuint GLuint GLsizei GLenum type
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
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
HLOCAL NTAPI LocalFree(HLOCAL hMem)
#define FILE_FLAG_DELETE_ON_CLOSE
#define ERROR_FILE_NOT_FOUND
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define offsetof(TYPE, MEMBER)
WCHAR str[MAX_STRING_RESOURCE_LEN]
pCryptSIPGetSignedDataMsg pfGet
CERT_ALT_NAME_INFO FullName
DWORD dwDistPointNameChoice
CRYPT_BIT_BLOB ReasonFlags
CERT_ALT_NAME_INFO CRLIssuer
CRL_DIST_POINT_NAME DistPointName
BOOL fFinancialInfoAvailable
AddEncodedContextToStoreFunc addEncodedToStore
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
#define X509_UNICODE_ANY_STRING
#define X509_AUTHORITY_KEY_ID2
#define CERT_ENCODING_TYPE_MASK
#define CERT_KEY_ENCIPHERMENT_KEY_USAGE
#define CRYPT_FORMAT_STR_MULTI_LINE
#define CERT_QUERY_CONTENT_SERIALIZED_CERT
#define NETSCAPE_SSL_CA_CERT_TYPE
#define CERT_QUERY_CONTENT_FLAG_CTL
#define CERT_NON_REPUDIATION_KEY_USAGE
#define CERT_ALT_NAME_URL
#define CERT_QUERY_OBJECT_FILE
#define NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE
#define CERT_X500_NAME_STR
#define szOID_CRL_DIST_POINTS
#define CERT_QUERY_FORMAT_BINARY
#define szOID_BASIC_CONSTRAINTS2
#define CERT_QUERY_CONTENT_FLAG_CRL
#define CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED
#define CERT_QUERY_CONTENT_FLAG_CERT
#define CERT_ALT_NAME_DIRECTORY_NAME
#define CERT_QUERY_CONTENT_CRL
#define NETSCAPE_SIGN_CERT_TYPE
#define szOID_NETSCAPE_COMMENT
#define CERT_ALT_NAME_IP_ADDRESS
#define CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED
#define X509_AUTHORITY_INFO_ACCESS
#define CERT_STORE_CREATE_NEW_FLAG
#define CRL_REASON_CESSATION_OF_OPERATION_FLAG
#define NETSCAPE_SIGN_CA_CERT_TYPE
#define CRL_REASON_KEY_COMPROMISE_FLAG
#define CERT_QUERY_CONTENT_SERIALIZED_STORE
#define CERT_QUERY_OBJECT_BLOB
#define szOID_ISSUER_ALT_NAME2
#define CRYPT_OID_FORMAT_OBJECT_FUNC
#define CERT_ALT_NAME_RFC822_NAME
#define CRYPT_STRING_BASE64_ANY
#define CRYPT_ENHKEY_USAGE_OID_GROUP_ID
#define CERT_CRL_SIGN_KEY_USAGE
#define CERT_QUERY_CONTENT_FLAG_CERT_PAIR
#define CERT_QUERY_FORMAT_FLAG_BINARY
#define CERT_QUERY_CONTENT_CTL
#define CERT_DIGITAL_SIGNATURE_KEY_USAGE
#define CERT_QUERY_CONTENT_SERIALIZED_CTL
#define szOID_NETSCAPE_CA_REVOCATION_URL
#define CERT_QUERY_CONTENT_PFX
#define CRL_DIST_POINT_NO_NAME
#define X509_ASN_ENCODING
#define CERT_QUERY_FORMAT_BASE64_ENCODED
#define CERT_STORE_ALL_CONTEXT_FLAG
#define CRYPT_DECODE_ALLOC_FLAG
#define CERT_STORE_PROV_MEMORY
#define szOID_NETSCAPE_CERT_RENEWAL_URL
#define CRL_DIST_POINT_FULL_NAME
#define CRL_REASON_CERTIFICATE_HOLD_FLAG
#define CERT_ENCIPHER_ONLY_KEY_USAGE
#define CERT_NAME_STR_CRLF_FLAG
#define szOID_NETSCAPE_BASE_URL
#define CERT_STORE_PROV_MSG
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT
#define szOID_NETSCAPE_CA_POLICY_URL
#define NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE
#define CERT_OFFLINE_CRL_SIGN_KEY_USAGE
#define CERT_STORE_CERTIFICATE_CONTEXT
#define szOID_NETSCAPE_REVOCATION_URL
#define szOID_NETSCAPE_CERT_TYPE
#define CERT_DECIPHER_ONLY_KEY_USAGE
#define NETSCAPE_SMIME_CERT_TYPE
#define szOID_SUBJECT_ALT_NAME
#define CERT_QUERY_CONTENT_SERIALIZED_CRL
#define CERT_ALT_NAME_DNS_NAME
#define CERT_STORE_CTL_CONTEXT
#define szOID_ENHANCED_KEY_USAGE
#define szOID_SUBJECT_ALT_NAME2
#define CERT_QUERY_CONTENT_PKCS7_SIGNED
#define CRL_REASON_CA_COMPROMISE_FLAG
#define X509_BASIC_CONSTRAINTS2
#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED
#define CERT_STORE_ADD_ALWAYS
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE
#define szOID_AUTHORITY_INFO_ACCESS
#define CRYPT_OID_INFO_OID_KEY
#define szOID_NETSCAPE_SSL_SERVER_NAME
#define CERT_KEY_AGREEMENT_KEY_USAGE
#define X509_ALTERNATE_NAME
#define szOID_AUTHORITY_KEY_IDENTIFIER2
#define PKCS_7_ASN_ENCODING
#define NETSCAPE_SMIME_CA_CERT_TYPE
#define CERT_NAME_STR_REVERSE_FLAG
#define CRYPT_FORMAT_STR_NO_HEX
#define CERT_QUERY_CONTENT_FLAG_PKCS10
#define CERT_KEY_CERT_SIGN_KEY_USAGE
#define CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED
#define CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED
#define CERT_QUERY_CONTENT_FLAG_PFX
#define CERT_DATA_ENCIPHERMENT_KEY_USAGE
#define CRL_REASON_AFFILIATION_CHANGED_FLAG
#define CERT_QUERY_CONTENT_CERT
#define CERT_STORE_CRL_CONTEXT
#define X509_CRL_DIST_POINTS
#define CRL_REASON_SUPERSEDED_FLAG
#define X509_ENHANCED_KEY_USAGE
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL
#define szOID_ISSUER_ALT_NAME
#define szOID_PKIX_CA_ISSUERS
#define CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL
#define ERROR_INVALID_DATA
#define SPC_FINANCIAL_CRITERIA_OBJID
#define SPC_FINANCIAL_CRITERIA_STRUCT