Commit febb06ce authored by Alexandre Julliard's avatar Alexandre Julliard

crypt32: Use nameless union/structs.

parent 420a7d06
......@@ -20,7 +20,6 @@
#include <assert.h>
#include <stdarg.h>
#define NONAMELESSUNION
#include "ntstatus.h"
#define WIN32_NO_STATUS
#include "windef.h"
......@@ -1403,9 +1402,9 @@ DWORD WINAPI CertGetPublicKeyLength(DWORD dwCertEncodingType,
{
HCRYPTKEY key;
TRACE("public key algid %#x (%s)\n", info->u.Algid, debugstr_a(pPublicKey->Algorithm.pszObjId));
TRACE("public key algid %#x (%s)\n", info->Algid, debugstr_a(pPublicKey->Algorithm.pszObjId));
ret = CryptImportPublicKeyInfo(I_CryptGetDefaultCryptProv(info->u.Algid), dwCertEncodingType, pPublicKey, &key);
ret = CryptImportPublicKeyInfo(I_CryptGetDefaultCryptProv(info->Algid), dwCertEncodingType, pPublicKey, &key);
if (ret)
{
size = sizeof(len);
......@@ -1538,14 +1537,14 @@ static BOOL compare_cert_by_cert_id(PCCERT_CONTEXT pCertContext, DWORD dwType,
{
case CERT_ID_ISSUER_SERIAL_NUMBER:
ret = CertCompareCertificateName(pCertContext->dwCertEncodingType,
&pCertContext->pCertInfo->Issuer, &id->u.IssuerSerialNumber.Issuer);
&pCertContext->pCertInfo->Issuer, &id->IssuerSerialNumber.Issuer);
if (ret)
ret = CertCompareIntegerBlob(&pCertContext->pCertInfo->SerialNumber,
&id->u.IssuerSerialNumber.SerialNumber);
&id->IssuerSerialNumber.SerialNumber);
break;
case CERT_ID_SHA1_HASH:
ret = compare_cert_by_sha1_hash(pCertContext, dwType, dwFlags,
&id->u.HashId);
&id->HashId);
break;
case CERT_ID_KEY_IDENTIFIER:
{
......@@ -1553,7 +1552,7 @@ static BOOL compare_cert_by_cert_id(PCCERT_CONTEXT pCertContext, DWORD dwType,
ret = CertGetCertificateContextProperty(pCertContext,
CERT_KEY_IDENTIFIER_PROP_ID, NULL, &size);
if (ret && size == id->u.KeyId.cbData)
if (ret && size == id->KeyId.cbData)
{
LPBYTE buf = CryptMemAlloc(size);
......@@ -1561,7 +1560,7 @@ static BOOL compare_cert_by_cert_id(PCCERT_CONTEXT pCertContext, DWORD dwType,
{
CertGetCertificateContextProperty(pCertContext,
CERT_KEY_IDENTIFIER_PROP_ID, buf, &size);
ret = !memcmp(buf, id->u.KeyId.pbData, size);
ret = !memcmp(buf, id->KeyId.pbData, size);
CryptMemFree(buf);
}
else
......@@ -1663,15 +1662,15 @@ static PCCERT_CONTEXT find_cert_by_issuer(HCERTSTORE store, DWORD dwType,
if (info->CertIssuer.cbData && info->CertSerialNumber.cbData)
{
id.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
memcpy(&id.u.IssuerSerialNumber.Issuer, &info->CertIssuer,
memcpy(&id.IssuerSerialNumber.Issuer, &info->CertIssuer,
sizeof(CERT_NAME_BLOB));
memcpy(&id.u.IssuerSerialNumber.SerialNumber,
memcpy(&id.IssuerSerialNumber.SerialNumber,
&info->CertSerialNumber, sizeof(CRYPT_INTEGER_BLOB));
}
else if (info->KeyId.cbData)
{
id.dwIdChoice = CERT_ID_KEY_IDENTIFIER;
memcpy(&id.u.KeyId, &info->KeyId, sizeof(CRYPT_HASH_BLOB));
memcpy(&id.KeyId, &info->KeyId, sizeof(CRYPT_HASH_BLOB));
}
else
ret = FALSE;
......@@ -1709,9 +1708,9 @@ static PCCERT_CONTEXT find_cert_by_issuer(HCERTSTORE store, DWORD dwType,
if (directoryName)
{
id.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
memcpy(&id.u.IssuerSerialNumber.Issuer,
&directoryName->u.DirectoryName, sizeof(CERT_NAME_BLOB));
memcpy(&id.u.IssuerSerialNumber.SerialNumber,
memcpy(&id.IssuerSerialNumber.Issuer,
&directoryName->DirectoryName, sizeof(CERT_NAME_BLOB));
memcpy(&id.IssuerSerialNumber.SerialNumber,
&info->AuthorityCertSerialNumber,
sizeof(CRYPT_INTEGER_BLOB));
}
......@@ -1724,7 +1723,7 @@ static PCCERT_CONTEXT find_cert_by_issuer(HCERTSTORE store, DWORD dwType,
else if (info->KeyId.cbData)
{
id.dwIdChoice = CERT_ID_KEY_IDENTIFIER;
memcpy(&id.u.KeyId, &info->KeyId, sizeof(CRYPT_HASH_BLOB));
memcpy(&id.KeyId, &info->KeyId, sizeof(CRYPT_HASH_BLOB));
}
else
ret = FALSE;
......@@ -1863,7 +1862,7 @@ PCCERT_CONTEXT WINAPI CertFindCertificateInStore(HCERTSTORE hCertStore,
break;
case CERT_COMPARE_KEY_IDENTIFIER:
cert_id.dwIdChoice = CERT_ID_KEY_IDENTIFIER;
cert_id.u.KeyId = *(const CRYPT_HASH_BLOB *)pvPara;
cert_id.KeyId = *(const CRYPT_HASH_BLOB *)pvPara;
pvPara = &cert_id;
/* fall through */
case CERT_COMPARE_CERT_ID:
......@@ -2406,7 +2405,7 @@ BOOL WINAPI CryptHashToBeSigned(HCRYPTPROV_LEGACY hCryptProv,
}
else
{
ret = CryptCreateHash(hCryptProv, oidInfo->u.Algid, 0, 0, &hHash);
ret = CryptCreateHash(hCryptProv, oidInfo->Algid, 0, 0, &hHash);
if (ret)
{
ret = CryptHashData(hHash, info->ToBeSigned.pbData,
......@@ -2446,7 +2445,7 @@ BOOL WINAPI CryptSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv,
{
if (!hCryptProv)
hCryptProv = I_CryptGetDefaultCryptProv(0);
ret = CryptCreateHash(hCryptProv, info->u.Algid, 0, 0, &hHash);
ret = CryptCreateHash(hCryptProv, info->Algid, 0, 0, &hHash);
if (ret)
{
ret = CryptHashData(hHash, pbEncodedToBeSigned,
......@@ -2466,7 +2465,7 @@ BOOL WINAPI CryptSignCertificate(HCRYPTPROV_OR_NCRYPT_KEY_HANDLE hCryptProv,
}
else
{
ret = CryptCreateHash(hCryptProv, info->u.Algid, 0, 0, &hHash);
ret = CryptCreateHash(hCryptProv, info->Algid, 0, 0, &hHash);
if (ret)
{
ret = CryptHashData(hHash, pbEncodedToBeSigned,
......@@ -2562,7 +2561,7 @@ static BOOL CRYPT_VerifySignature(HCRYPTPROV_LEGACY hCryptProv, DWORD dwCertEnco
HCRYPTKEY key;
ALG_ID pubKeyID, hashID;
hashID = info->u.Algid;
hashID = info->Algid;
if (info->ExtraInfo.cbData >= sizeof(ALG_ID))
pubKeyID = *(ALG_ID *)info->ExtraInfo.pbData;
else
......@@ -2896,7 +2895,7 @@ static BOOL CRYPT_VerifyCertSignatureFromPublicKeyInfo(HCRYPTPROV_LEGACY hCryptP
return FALSE;
}
if (info->u.Algid == CALG_OID_INFO_CNG_ONLY)
if (info->Algid == CALG_OID_INFO_CNG_ONLY)
return CNG_VerifySignature(hCryptProv, dwCertEncodingType, pubKeyInfo, signedCert, info);
else
return CRYPT_VerifySignature(hCryptProv, dwCertEncodingType, pubKeyInfo, signedCert, info);
......
......@@ -19,7 +19,7 @@
#include <stdarg.h>
#include <wchar.h>
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
......@@ -292,7 +292,7 @@ DWORD CRYPT_IsCertificateSelfSigned(const CERT_CONTEXT *cert)
&info->AuthorityCertIssuer.rgAltEntry[i];
if (directoryName)
{
if (CertCompareCertificateName(cert->dwCertEncodingType, &directoryName->u.DirectoryName, &cert->pCertInfo->Issuer)
if (CertCompareCertificateName(cert->dwCertEncodingType, &directoryName->DirectoryName, &cert->pCertInfo->Issuer)
&& CertCompareIntegerBlob(&info->AuthorityCertSerialNumber, &cert->pCertInfo->SerialNumber))
status = CERT_TRUST_HAS_NAME_MATCH_ISSUER;
}
......@@ -891,24 +891,24 @@ static BOOL alt_name_matches(const CERT_ALT_NAME_ENTRY *name,
switch (constraint->dwAltNameChoice)
{
case CERT_ALT_NAME_RFC822_NAME:
match = rfc822_name_matches(constraint->u.pwszURL,
name->u.pwszURL, trustErrorStatus);
match = rfc822_name_matches(constraint->pwszURL,
name->pwszURL, trustErrorStatus);
break;
case CERT_ALT_NAME_DNS_NAME:
match = dns_name_matches(constraint->u.pwszURL,
name->u.pwszURL, trustErrorStatus);
match = dns_name_matches(constraint->pwszURL,
name->pwszURL, trustErrorStatus);
break;
case CERT_ALT_NAME_URL:
match = url_matches(constraint->u.pwszURL,
name->u.pwszURL, trustErrorStatus);
match = url_matches(constraint->pwszURL,
name->pwszURL, trustErrorStatus);
break;
case CERT_ALT_NAME_IP_ADDRESS:
match = ip_address_matches(&constraint->u.IPAddress,
&name->u.IPAddress, trustErrorStatus);
match = ip_address_matches(&constraint->IPAddress,
&name->IPAddress, trustErrorStatus);
break;
case CERT_ALT_NAME_DIRECTORY_NAME:
match = directory_name_matches(&constraint->u.DirectoryName,
&name->u.DirectoryName);
match = directory_name_matches(&constraint->DirectoryName,
&name->DirectoryName);
break;
default:
ERR("name choice %ld unsupported in this context\n",
......@@ -1022,7 +1022,7 @@ static BOOL rfc822_attr_matches_excluded_name(const CERT_RDN_ATTR *attr,
&nameConstraints->rgExcludedSubtree[i].Base;
if (constraint->dwAltNameChoice == CERT_ALT_NAME_RFC822_NAME)
match = rfc822_name_matches(constraint->u.pwszRfc822Name,
match = rfc822_name_matches(constraint->pwszRfc822Name,
(LPCWSTR)attr->Value.pbData, trustErrorStatus);
}
return match;
......@@ -1043,7 +1043,7 @@ static BOOL rfc822_attr_matches_permitted_name(const CERT_RDN_ATTR *attr,
if (constraint->dwAltNameChoice == CERT_ALT_NAME_RFC822_NAME)
{
*present = TRUE;
match = rfc822_name_matches(constraint->u.pwszRfc822Name,
match = rfc822_name_matches(constraint->pwszRfc822Name,
(LPCWSTR)attr->Value.pbData, trustErrorStatus);
}
}
......@@ -1152,7 +1152,7 @@ static void compare_subject_with_constraints(const CERT_NAME_BLOB *subjectName,
&nameConstraints->rgExcludedSubtree[i].Base;
if (constraint->dwAltNameChoice == CERT_ALT_NAME_DIRECTORY_NAME &&
directory_name_matches(&constraint->u.DirectoryName, subjectName))
directory_name_matches(&constraint->DirectoryName, subjectName))
{
TRACE_(chain)("subject name is excluded\n");
*trustErrorStatus |=
......@@ -1177,7 +1177,7 @@ static void compare_subject_with_constraints(const CERT_NAME_BLOB *subjectName,
if (constraint->dwAltNameChoice == CERT_ALT_NAME_DIRECTORY_NAME)
{
hasDirectoryConstraint = TRUE;
match = directory_name_matches(&constraint->u.DirectoryName,
match = directory_name_matches(&constraint->DirectoryName,
subjectName);
}
}
......@@ -1427,31 +1427,31 @@ static void dump_alt_name_entry(const CERT_ALT_NAME_ENTRY *entry)
{
case CERT_ALT_NAME_OTHER_NAME:
TRACE_(chain)("CERT_ALT_NAME_OTHER_NAME, oid = %s\n",
debugstr_a(entry->u.pOtherName->pszObjId));
debugstr_a(entry->pOtherName->pszObjId));
break;
case CERT_ALT_NAME_RFC822_NAME:
TRACE_(chain)("CERT_ALT_NAME_RFC822_NAME: %s\n",
debugstr_w(entry->u.pwszRfc822Name));
debugstr_w(entry->pwszRfc822Name));
break;
case CERT_ALT_NAME_DNS_NAME:
TRACE_(chain)("CERT_ALT_NAME_DNS_NAME: %s\n",
debugstr_w(entry->u.pwszDNSName));
debugstr_w(entry->pwszDNSName));
break;
case CERT_ALT_NAME_DIRECTORY_NAME:
str = name_value_to_str(&entry->u.DirectoryName);
str = name_value_to_str(&entry->DirectoryName);
TRACE_(chain)("CERT_ALT_NAME_DIRECTORY_NAME: %s\n", debugstr_w(str));
CryptMemFree(str);
break;
case CERT_ALT_NAME_URL:
TRACE_(chain)("CERT_ALT_NAME_URL: %s\n", debugstr_w(entry->u.pwszURL));
TRACE_(chain)("CERT_ALT_NAME_URL: %s\n", debugstr_w(entry->pwszURL));
break;
case CERT_ALT_NAME_IP_ADDRESS:
TRACE_(chain)("CERT_ALT_NAME_IP_ADDRESS: %ld bytes\n",
entry->u.IPAddress.cbData);
entry->IPAddress.cbData);
break;
case CERT_ALT_NAME_REGISTERED_ID:
TRACE_(chain)("CERT_ALT_NAME_REGISTERED_ID: %s\n",
debugstr_a(entry->u.pszRegisteredID));
debugstr_a(entry->pszRegisteredID));
break;
default:
TRACE_(chain)("dwAltNameChoice = %ld\n", entry->dwAltNameChoice);
......@@ -2075,9 +2075,9 @@ static PCCERT_CONTEXT CRYPT_GetIssuer(const CertificateChainEngine *engine,
if (info->CertIssuer.cbData && info->CertSerialNumber.cbData)
{
id.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
memcpy(&id.u.IssuerSerialNumber.Issuer, &info->CertIssuer,
memcpy(&id.IssuerSerialNumber.Issuer, &info->CertIssuer,
sizeof(CERT_NAME_BLOB));
memcpy(&id.u.IssuerSerialNumber.SerialNumber,
memcpy(&id.IssuerSerialNumber.SerialNumber,
&info->CertSerialNumber, sizeof(CRYPT_INTEGER_BLOB));
issuer = CRYPT_FindIssuer(engine, subject, store, CERT_FIND_CERT_ID, &id, flags, prevIssuer);
......@@ -2091,7 +2091,7 @@ static PCCERT_CONTEXT CRYPT_GetIssuer(const CertificateChainEngine *engine,
{
id.dwIdChoice = CERT_ID_KEY_IDENTIFIER;
memcpy(&id.u.KeyId, &info->KeyId, sizeof(CRYPT_HASH_BLOB));
memcpy(&id.KeyId, &info->KeyId, sizeof(CRYPT_HASH_BLOB));
issuer = CRYPT_FindIssuer(engine, subject, store, CERT_FIND_CERT_ID, &id, flags, prevIssuer);
if (issuer)
{
......@@ -2131,9 +2131,9 @@ static PCCERT_CONTEXT CRYPT_GetIssuer(const CertificateChainEngine *engine,
if (directoryName)
{
id.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
memcpy(&id.u.IssuerSerialNumber.Issuer,
&directoryName->u.DirectoryName, sizeof(CERT_NAME_BLOB));
memcpy(&id.u.IssuerSerialNumber.SerialNumber,
memcpy(&id.IssuerSerialNumber.Issuer,
&directoryName->DirectoryName, sizeof(CERT_NAME_BLOB));
memcpy(&id.IssuerSerialNumber.SerialNumber,
&info->AuthorityCertSerialNumber,
sizeof(CRYPT_INTEGER_BLOB));
......@@ -2150,7 +2150,7 @@ static PCCERT_CONTEXT CRYPT_GetIssuer(const CertificateChainEngine *engine,
else if (info->KeyId.cbData)
{
id.dwIdChoice = CERT_ID_KEY_IDENTIFIER;
memcpy(&id.u.KeyId, &info->KeyId, sizeof(CRYPT_HASH_BLOB));
memcpy(&id.KeyId, &info->KeyId, sizeof(CRYPT_HASH_BLOB));
issuer = CRYPT_FindIssuer(engine, subject, store, CERT_FIND_CERT_ID, &id, flags, prevIssuer);
if (issuer)
{
......@@ -3175,8 +3175,8 @@ static BOOL match_dns_to_subject_alt_name(const CERT_EXTENSION *ext,
CERT_ALT_NAME_DNS_NAME)
{
TRACE_(chain)("dNSName: %s\n", debugstr_w(
subjectName->rgAltEntry[i].u.pwszDNSName));
if (subjectName->rgAltEntry[i].u.pwszDNSName[0] == '*')
subjectName->rgAltEntry[i].pwszDNSName));
if (subjectName->rgAltEntry[i].pwszDNSName[0] == '*')
{
LPCWSTR server_name_dot;
......@@ -3196,12 +3196,12 @@ static BOOL match_dns_to_subject_alt_name(const CERT_EXTENSION *ext,
if (server_name_dot)
{
if (!wcsicmp(server_name_dot,
subjectName->rgAltEntry[i].u.pwszDNSName + 1))
subjectName->rgAltEntry[i].pwszDNSName + 1))
matches = TRUE;
}
}
else if (!wcsicmp(server_name,
subjectName->rgAltEntry[i].u.pwszDNSName))
subjectName->rgAltEntry[i].pwszDNSName))
matches = TRUE;
}
}
......@@ -3439,7 +3439,7 @@ static void dump_ssl_extra_chain_policy_para(HTTPSPolicyCallbackData *sslPara)
{
if (sslPara)
{
TRACE_(chain)("cbSize = %ld\n", sslPara->u.cbSize);
TRACE_(chain)("cbSize = %ld\n", sslPara->cbSize);
TRACE_(chain)("dwAuthType = %ld\n", sslPara->dwAuthType);
TRACE_(chain)("fdwChecks = %08lx\n", sslPara->fdwChecks);
TRACE_(chain)("pwszServerName = %s\n",
......@@ -3461,7 +3461,7 @@ static BOOL WINAPI verify_ssl_policy(LPCSTR szPolicyOID,
}
if (TRACE_ON(chain))
dump_ssl_extra_chain_policy_para(sslPara);
if (sslPara && sslPara->u.cbSize >= sizeof(HTTPSPolicyCallbackData))
if (sslPara && sslPara->cbSize >= sizeof(HTTPSPolicyCallbackData))
checks = sslPara->fdwChecks;
pPolicyStatus->lChainIndex = pPolicyStatus->lElementIndex = -1;
if (pChainContext->TrustStatus.dwErrorStatus &
......@@ -3543,7 +3543,7 @@ static BOOL WINAPI verify_ssl_policy(LPCSTR szPolicyOID,
if (!pPolicyStatus->dwError && pPolicyPara &&
pPolicyPara->cbSize >= sizeof(CERT_CHAIN_POLICY_PARA))
{
if (sslPara && sslPara->u.cbSize >= sizeof(HTTPSPolicyCallbackData))
if (sslPara && sslPara->cbSize >= sizeof(HTTPSPolicyCallbackData))
{
if (sslPara->dwAuthType == AUTHTYPE_SERVER &&
sslPara->pwszServerName &&
......
......@@ -19,7 +19,7 @@
#include <assert.h>
#include <stdarg.h>
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#include "wincrypt.h"
......@@ -299,7 +299,7 @@ static BOOL compare_crl_issued_by(PCCRL_CONTEXT pCrlContext, DWORD dwType,
ret = CertCompareCertificateName(
issuer->dwCertEncodingType,
&issuer->pCertInfo->Subject,
&directoryName->u.DirectoryName);
&directoryName->DirectoryName);
if (ret)
ret = CertCompareIntegerBlob(
&issuer->pCertInfo->SerialNumber,
......@@ -692,31 +692,31 @@ static BOOL compare_dist_point_name(const CRL_DIST_POINT_NAME *name1,
match = TRUE;
if (name1->dwDistPointNameChoice == CRL_DIST_POINT_FULL_NAME)
{
if (name1->u.FullName.cAltEntry == name2->u.FullName.cAltEntry)
if (name1->FullName.cAltEntry == name2->FullName.cAltEntry)
{
DWORD i;
for (i = 0; match && i < name1->u.FullName.cAltEntry; i++)
for (i = 0; match && i < name1->FullName.cAltEntry; i++)
{
const CERT_ALT_NAME_ENTRY *entry1 =
&name1->u.FullName.rgAltEntry[i];
&name1->FullName.rgAltEntry[i];
const CERT_ALT_NAME_ENTRY *entry2 =
&name2->u.FullName.rgAltEntry[i];
&name2->FullName.rgAltEntry[i];
if (entry1->dwAltNameChoice == entry2->dwAltNameChoice)
{
switch (entry1->dwAltNameChoice)
{
case CERT_ALT_NAME_URL:
match = !wcsicmp(entry1->u.pwszURL,
entry2->u.pwszURL);
match = !wcsicmp(entry1->pwszURL,
entry2->pwszURL);
break;
case CERT_ALT_NAME_DIRECTORY_NAME:
match = (entry1->u.DirectoryName.cbData ==
entry2->u.DirectoryName.cbData) &&
!memcmp(entry1->u.DirectoryName.pbData,
entry2->u.DirectoryName.pbData,
entry1->u.DirectoryName.cbData);
match = (entry1->DirectoryName.cbData ==
entry2->DirectoryName.cbData) &&
!memcmp(entry1->DirectoryName.pbData,
entry2->DirectoryName.pbData,
entry1->DirectoryName.cbData);
break;
default:
FIXME("unimplemented for type %ld\n",
......
......@@ -35,8 +35,6 @@
#include <stdio.h>
#include <stdlib.h>
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#include "wincrypt.h"
......@@ -3084,11 +3082,10 @@ static BOOL CRYPT_AsnDecodeAltNameEntry(const BYTE *pbEncoded, DWORD cbEncoded,
DWORD i;
for (i = 0; i < dataLen; i++)
entry->u.pwszURL[i] =
(WCHAR)pbEncoded[1 + lenBytes + i];
entry->u.pwszURL[i] = 0;
TRACE("URL is %p (%s)\n", entry->u.pwszURL,
debugstr_w(entry->u.pwszURL));
entry->pwszURL[i] = (WCHAR)pbEncoded[1 + lenBytes + i];
entry->pwszURL[i] = 0;
TRACE("URL is %p (%s)\n", entry->pwszURL,
debugstr_w(entry->pwszURL));
break;
}
case 4: /* directoryName */
......@@ -3099,14 +3096,14 @@ static BOOL CRYPT_AsnDecodeAltNameEntry(const BYTE *pbEncoded, DWORD cbEncoded,
/* The next data pointer is in the pwszURL spot, that is,
* the first 4 bytes. Need to move it to the next spot.
*/
entry->u.IPAddress.pbData = (LPBYTE)entry->u.pwszURL;
entry->u.IPAddress.cbData = dataLen;
memcpy(entry->u.IPAddress.pbData, pbEncoded + 1 + lenBytes,
entry->IPAddress.pbData = (LPBYTE)entry->pwszURL;
entry->IPAddress.cbData = dataLen;
memcpy(entry->IPAddress.pbData, pbEncoded + 1 + lenBytes,
dataLen);
break;
case 8: /* registeredID */
ret = CRYPT_AsnDecodeOidIgnoreTag(pbEncoded, cbEncoded, 0,
&entry->u.pszRegisteredID, &dataLen, NULL);
&entry->pszRegisteredID, &dataLen, NULL);
break;
}
}
......@@ -3125,7 +3122,7 @@ static BOOL CRYPT_AsnDecodeAltNameInternal(const BYTE *pbEncoded,
offsetof(CERT_ALT_NAME_INFO, rgAltEntry),
sizeof(CERT_ALT_NAME_INFO),
CRYPT_AsnDecodeAltNameEntry, sizeof(CERT_ALT_NAME_ENTRY), TRUE,
offsetof(CERT_ALT_NAME_ENTRY, u.pwszURL) };
offsetof(CERT_ALT_NAME_ENTRY, pwszURL) };
TRACE("%p, %ld, %08lx, %p, %ld, %p\n", pbEncoded, cbEncoded, dwFlags,
pvStructInfo, *pcbStructInfo, pcbDecoded);
......@@ -3217,7 +3214,7 @@ static BOOL CRYPT_AsnDecodeAccessDescription(const BYTE *pbEncoded,
offsetof(CERT_ACCESS_DESCRIPTION, pszAccessMethod), 0 },
{ 0, offsetof(CERT_ACCESS_DESCRIPTION, AccessLocation),
CRYPT_AsnDecodeAltNameEntry, sizeof(CERT_ALT_NAME_ENTRY), FALSE,
TRUE, offsetof(CERT_ACCESS_DESCRIPTION, AccessLocation.u.pwszURL), 0 },
TRUE, offsetof(CERT_ACCESS_DESCRIPTION, AccessLocation.pwszURL), 0 },
};
CERT_ACCESS_DESCRIPTION *descr = pvStructInfo;
......@@ -5268,11 +5265,11 @@ static BOOL CRYPT_AsnDecodeDistPointName(const BYTE *pbEncoded,
{
struct AsnArrayDescriptor arrayDesc = {
ASN_CONTEXT | ASN_CONSTRUCTOR | 0,
offsetof(CRL_DIST_POINT_NAME, u.FullName.cAltEntry),
offsetof(CRL_DIST_POINT_NAME, u.FullName.rgAltEntry),
FINALMEMBERSIZE(CRL_DIST_POINT_NAME, u),
offsetof(CRL_DIST_POINT_NAME, FullName.cAltEntry),
offsetof(CRL_DIST_POINT_NAME, FullName.rgAltEntry),
FINALMEMBERSIZE(CRL_DIST_POINT_NAME, FullName),
CRYPT_AsnDecodeAltNameEntry, sizeof(CERT_ALT_NAME_ENTRY), TRUE,
offsetof(CERT_ALT_NAME_ENTRY, u.pwszURL) };
offsetof(CERT_ALT_NAME_ENTRY, pwszURL) };
BYTE lenBytes = GET_LEN_BYTES(pbEncoded[1]);
DWORD nameLen;
......@@ -5282,7 +5279,7 @@ static BOOL CRYPT_AsnDecodeDistPointName(const BYTE *pbEncoded,
pbEncoded + 1 + lenBytes, cbEncoded - 1 - lenBytes,
dwFlags, NULL, NULL, &nameLen, NULL);
bytesNeeded = sizeof(CRL_DIST_POINT_NAME) + nameLen -
FINALMEMBERSIZE(CRL_DIST_POINT_NAME, u);
FINALMEMBERSIZE(CRL_DIST_POINT_NAME, FullName);
}
else
bytesNeeded = sizeof(CRL_DIST_POINT_NAME);
......@@ -5306,7 +5303,7 @@ static BOOL CRYPT_AsnDecodeDistPointName(const BYTE *pbEncoded,
name->dwDistPointNameChoice = CRL_DIST_POINT_FULL_NAME;
ret = CRYPT_AsnDecodeArray(&arrayDesc,
pbEncoded + 1 + lenBytes, cbEncoded - 1 - lenBytes,
dwFlags, NULL, &name->u.FullName.cAltEntry, &nameLen,
dwFlags, NULL, &name->FullName.cAltEntry, &nameLen,
NULL);
}
else
......@@ -5329,7 +5326,7 @@ static BOOL CRYPT_AsnDecodeDistPoint(const BYTE *pbEncoded, DWORD cbEncoded,
{ ASN_CONTEXT | ASN_CONSTRUCTOR | 0, offsetof(CRL_DIST_POINT,
DistPointName), CRYPT_AsnDecodeDistPointName,
sizeof(CRL_DIST_POINT_NAME), TRUE, TRUE, offsetof(CRL_DIST_POINT,
DistPointName.u.FullName.rgAltEntry), 0 },
DistPointName.FullName.rgAltEntry), 0 },
{ ASN_CONTEXT | 1, offsetof(CRL_DIST_POINT, ReasonFlags),
CRYPT_AsnDecodeBitsInternal, sizeof(CRYPT_BIT_BLOB), TRUE, TRUE,
offsetof(CRL_DIST_POINT, ReasonFlags.pbData), 0 },
......@@ -5342,7 +5339,7 @@ static BOOL CRYPT_AsnDecodeDistPoint(const BYTE *pbEncoded, DWORD cbEncoded,
ret = CRYPT_AsnDecodeSequence(items, ARRAY_SIZE(items),
pbEncoded, cbEncoded, dwFlags, NULL, pvStructInfo, pcbStructInfo,
pcbDecoded, point ? point->DistPointName.u.FullName.rgAltEntry : NULL);
pcbDecoded, point ? point->DistPointName.FullName.rgAltEntry : NULL);
return ret;
}
......@@ -5362,7 +5359,7 @@ static BOOL WINAPI CRYPT_AsnDecodeCRLDistPoints(DWORD dwCertEncodingType,
offsetof(CRL_DIST_POINTS_INFO, rgDistPoint),
sizeof(CRL_DIST_POINTS_INFO),
CRYPT_AsnDecodeDistPoint, sizeof(CRL_DIST_POINT), TRUE,
offsetof(CRL_DIST_POINT, DistPointName.u.FullName.rgAltEntry) };
offsetof(CRL_DIST_POINT, DistPointName.FullName.rgAltEntry) };
CRL_DIST_POINTS_INFO *info = pvStructInfo;
if (pvStructInfo && !(dwFlags & CRYPT_DECODE_ALLOC_FLAG))
......@@ -5427,7 +5424,7 @@ static BOOL WINAPI CRYPT_AsnDecodeIssuingDistPoint(DWORD dwCertEncodingType,
DistPointName), CRYPT_AsnDecodeDistPointName,
sizeof(CRL_DIST_POINT_NAME), TRUE, TRUE,
offsetof(CRL_ISSUING_DIST_POINT,
DistPointName.u.FullName.rgAltEntry), 0 },
DistPointName.FullName.rgAltEntry), 0 },
{ ASN_CONTEXT | 1, offsetof(CRL_ISSUING_DIST_POINT,
fOnlyContainsUserCerts), CRYPT_AsnDecodeBool, sizeof(BOOL), TRUE,
FALSE, 0 },
......@@ -5513,7 +5510,7 @@ static BOOL CRYPT_AsnDecodeSubtree(const BYTE *pbEncoded,
struct AsnDecodeSequenceItem items[] = {
{ 0, offsetof(CERT_GENERAL_SUBTREE, Base),
CRYPT_AsnDecodeAltNameEntry, sizeof(CERT_ALT_NAME_ENTRY), TRUE, TRUE,
offsetof(CERT_ALT_NAME_ENTRY, u.pwszURL), 0 },
offsetof(CERT_ALT_NAME_ENTRY, pwszURL), 0 },
{ ASN_CONTEXT | 0, offsetof(CERT_GENERAL_SUBTREE, dwMinimum),
CRYPT_AsnDecodeIntInternal, sizeof(DWORD), TRUE, FALSE, 0, 0 },
{ ASN_CONTEXT | 1, offsetof(CERT_GENERAL_SUBTREE, fMaximum),
......@@ -5527,7 +5524,7 @@ static BOOL CRYPT_AsnDecodeSubtree(const BYTE *pbEncoded,
ret = CRYPT_AsnDecodeSequence(items, ARRAY_SIZE(items),
pbEncoded, cbEncoded, dwFlags, NULL, pvStructInfo, pcbStructInfo,
pcbDecoded, subtree ? subtree->Base.u.pwszURL : NULL);
pcbDecoded, subtree ? subtree->Base.pwszURL : NULL);
if (pcbDecoded)
{
TRACE("%ld\n", *pcbDecoded);
......@@ -5550,7 +5547,7 @@ static BOOL CRYPT_AsnDecodePermittedSubtree(const BYTE *pbEncoded,
MEMBERSIZE(CERT_NAME_CONSTRAINTS_INFO, cPermittedSubtree,
cExcludedSubtree),
CRYPT_AsnDecodeSubtree, sizeof(CERT_GENERAL_SUBTREE), TRUE,
offsetof(CERT_GENERAL_SUBTREE, Base.u.pwszURL) };
offsetof(CERT_GENERAL_SUBTREE, Base.pwszURL) };
TRACE("%p, %ld, %08lx, %p, %ld, %p\n", pbEncoded, cbEncoded, dwFlags,
pvStructInfo, *pcbStructInfo, pcbDecoded);
......@@ -5570,7 +5567,7 @@ static BOOL CRYPT_AsnDecodeExcludedSubtree(const BYTE *pbEncoded,
offsetof(CERT_NAME_CONSTRAINTS_INFO, rgExcludedSubtree),
FINALMEMBERSIZE(CERT_NAME_CONSTRAINTS_INFO, cExcludedSubtree),
CRYPT_AsnDecodeSubtree, sizeof(CERT_GENERAL_SUBTREE), TRUE,
offsetof(CERT_GENERAL_SUBTREE, Base.u.pwszURL) };
offsetof(CERT_GENERAL_SUBTREE, Base.pwszURL) };
TRACE("%p, %ld, %08lx, %p, %ld, %p\n", pbEncoded, cbEncoded, dwFlags,
pvStructInfo, *pcbStructInfo, pcbDecoded);
......@@ -5801,7 +5798,7 @@ static BOOL CRYPT_AsnDecodeCMSSignerId(const BYTE *pbEncoded,
if (*pbEncoded == ASN_SEQUENCEOF)
{
ret = CRYPT_AsnDecodeIssuerSerialNumber(pbEncoded, cbEncoded, dwFlags,
id ? &id->u.IssuerSerialNumber : NULL, pcbStructInfo, pcbDecoded);
id ? &id->IssuerSerialNumber : NULL, pcbStructInfo, pcbDecoded);
if (ret)
{
if (id)
......@@ -5816,7 +5813,7 @@ static BOOL CRYPT_AsnDecodeCMSSignerId(const BYTE *pbEncoded,
else if (*pbEncoded == (ASN_CONTEXT | 0))
{
ret = CRYPT_AsnDecodeOctets(pbEncoded, cbEncoded, dwFlags,
id ? &id->u.KeyId : NULL, pcbStructInfo, pcbDecoded);
id ? &id->KeyId : NULL, pcbStructInfo, pcbDecoded);
if (ret)
{
if (id)
......@@ -5843,7 +5840,7 @@ static BOOL CRYPT_AsnDecodeCMSSignerInfoInternal(const BYTE *pbEncoded,
CRYPT_AsnDecodeIntInternal, sizeof(DWORD), FALSE, FALSE, 0, 0 },
{ 0, offsetof(CMSG_CMS_SIGNER_INFO, SignerId),
CRYPT_AsnDecodeCMSSignerId, sizeof(CERT_ID), FALSE, TRUE,
offsetof(CMSG_CMS_SIGNER_INFO, SignerId.u.KeyId.pbData), 0 },
offsetof(CMSG_CMS_SIGNER_INFO, SignerId.KeyId.pbData), 0 },
{ ASN_SEQUENCEOF, offsetof(CMSG_CMS_SIGNER_INFO, HashAlgorithm),
CRYPT_AsnDecodeAlgorithmId, sizeof(CRYPT_ALGORITHM_IDENTIFIER),
FALSE, TRUE, offsetof(CMSG_CMS_SIGNER_INFO, HashAlgorithm.pszObjId), 0 },
......@@ -5870,7 +5867,7 @@ static BOOL CRYPT_AsnDecodeCMSSignerInfoInternal(const BYTE *pbEncoded,
ret = CRYPT_AsnDecodeSequence(items, ARRAY_SIZE(items),
pbEncoded, cbEncoded, dwFlags, NULL, pvStructInfo, pcbStructInfo,
pcbDecoded, info ? info->SignerId.u.KeyId.pbData : NULL);
pcbDecoded, info ? info->SignerId.KeyId.pbData : NULL);
return ret;
}
......@@ -5898,7 +5895,7 @@ static BOOL WINAPI CRYPT_AsnDecodeCMSSignerInfo(DWORD dwCertEncodingType,
if (dwFlags & CRYPT_DECODE_ALLOC_FLAG)
pvStructInfo = *(BYTE **)pvStructInfo;
info = pvStructInfo;
info->SignerId.u.KeyId.pbData = ((BYTE *)info +
info->SignerId.KeyId.pbData = ((BYTE *)info +
sizeof(CMSG_CMS_SIGNER_INFO));
ret = CRYPT_AsnDecodeCMSSignerInfoInternal(pbEncoded,
cbEncoded, dwFlags & ~CRYPT_DECODE_ALLOC_FLAG, pvStructInfo,
......@@ -5926,7 +5923,7 @@ static BOOL CRYPT_DecodeSignerArray(const BYTE *pbEncoded, DWORD cbEncoded,
offsetof(CRYPT_SIGNED_INFO, rgSignerInfo),
FINALMEMBERSIZE(CRYPT_SIGNED_INFO, cSignerInfo),
CRYPT_AsnDecodeCMSSignerInfoInternal, sizeof(CMSG_CMS_SIGNER_INFO), TRUE,
offsetof(CMSG_CMS_SIGNER_INFO, SignerId.u.KeyId.pbData) };
offsetof(CMSG_CMS_SIGNER_INFO, SignerId.KeyId.pbData) };
TRACE("%p, %ld, %08lx, %p, %ld, %p\n", pbEncoded, cbEncoded, dwFlags,
pvStructInfo, *pcbStructInfo, pcbDecoded);
......@@ -5984,10 +5981,10 @@ static BOOL CRYPT_AsnDecodeRecipientInfo(const BYTE *pbEncoded, DWORD cbEncoded,
{ ASN_INTEGER, offsetof(CMSG_KEY_TRANS_RECIPIENT_INFO, dwVersion),
CRYPT_AsnDecodeIntInternal, sizeof(DWORD), FALSE, FALSE, 0, 0 },
{ ASN_SEQUENCEOF, offsetof(CMSG_KEY_TRANS_RECIPIENT_INFO,
RecipientId.u.IssuerSerialNumber), CRYPT_AsnDecodeIssuerSerialNumber,
RecipientId.IssuerSerialNumber), CRYPT_AsnDecodeIssuerSerialNumber,
sizeof(CERT_ISSUER_SERIAL_NUMBER), FALSE, TRUE,
offsetof(CMSG_KEY_TRANS_RECIPIENT_INFO,
RecipientId.u.IssuerSerialNumber.Issuer.pbData), 0 },
RecipientId.IssuerSerialNumber.Issuer.pbData), 0 },
{ ASN_SEQUENCEOF, offsetof(CMSG_KEY_TRANS_RECIPIENT_INFO,
KeyEncryptionAlgorithm), CRYPT_AsnDecodeAlgorithmId,
sizeof(CRYPT_ALGORITHM_IDENTIFIER), FALSE, TRUE,
......@@ -6003,7 +6000,7 @@ static BOOL CRYPT_AsnDecodeRecipientInfo(const BYTE *pbEncoded, DWORD cbEncoded,
ret = CRYPT_AsnDecodeSequence(items, ARRAY_SIZE(items),
pbEncoded, cbEncoded, dwFlags, NULL, pvStructInfo, pcbStructInfo,
pcbDecoded, info ? info->RecipientId.u.IssuerSerialNumber.Issuer.pbData :
pcbDecoded, info ? info->RecipientId.IssuerSerialNumber.Issuer.pbData :
NULL);
if (info)
info->RecipientId.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
......@@ -6022,7 +6019,7 @@ static BOOL CRYPT_DecodeRecipientInfoArray(const BYTE *pbEncoded,
MEMBERSIZE(CRYPT_ENVELOPED_DATA, cRecipientInfo, encryptedContentInfo),
CRYPT_AsnDecodeRecipientInfo, sizeof(CMSG_KEY_TRANS_RECIPIENT_INFO), TRUE,
offsetof(CMSG_KEY_TRANS_RECIPIENT_INFO,
RecipientId.u.IssuerSerialNumber.Issuer.pbData) };
RecipientId.IssuerSerialNumber.Issuer.pbData) };
TRACE("%p, %ld, %08lx, %p, %ld, %p\n", pbEncoded, cbEncoded, dwFlags,
pvStructInfo, *pcbStructInfo, pcbDecoded);
......@@ -6407,7 +6404,7 @@ static BOOL CRYPT_AsnDecodeCertStatus(const BYTE *pbEncoded,
{
*(DWORD *)pvStructInfo = 0;
*(OCSP_BASIC_REVOKED_INFO **)((char *)pvStructInfo
+ FIELD_OFFSET(OCSP_BASIC_RESPONSE_ENTRY, u.pRevokedInfo)
+ FIELD_OFFSET(OCSP_BASIC_RESPONSE_ENTRY, pRevokedInfo)
- FIELD_OFFSET(OCSP_BASIC_RESPONSE_ENTRY, dwCertStatus)) = NULL;
}
*pcbStructInfo = bytesNeeded;
......@@ -6452,7 +6449,7 @@ static BOOL CRYPT_AsnDecodeCertStatus(const BYTE *pbEncoded,
{
*(DWORD *)pvStructInfo = 1;
info = *(OCSP_BASIC_REVOKED_INFO **)((char *)pvStructInfo
+ FIELD_OFFSET(OCSP_BASIC_RESPONSE_ENTRY, u.pRevokedInfo)
+ FIELD_OFFSET(OCSP_BASIC_RESPONSE_ENTRY, pRevokedInfo)
- FIELD_OFFSET(OCSP_BASIC_RESPONSE_ENTRY, dwCertStatus));
info->RevocationDate = date;
}
......@@ -6490,7 +6487,7 @@ static BOOL CRYPT_AsnDecodeOCSPBasicResponseEntry(const BYTE *pbEncoded, DWORD c
offsetof(OCSP_BASIC_RESPONSE_ENTRY, CertId.SerialNumber.pbData), 0 },
{ 0, offsetof(OCSP_BASIC_RESPONSE_ENTRY, dwCertStatus),
CRYPT_AsnDecodeCertStatus, sizeof(DWORD), FALSE, TRUE,
offsetof(OCSP_BASIC_RESPONSE_ENTRY, u.pRevokedInfo), 0 },
offsetof(OCSP_BASIC_RESPONSE_ENTRY, pRevokedInfo), 0 },
{ ASN_GENERALTIME, offsetof(OCSP_BASIC_RESPONSE_ENTRY, ThisUpdate),
CRYPT_AsnDecodeGeneralizedTime, sizeof(FILETIME), FALSE, FALSE,
0, 0 },
......@@ -6562,7 +6559,7 @@ static BOOL CRYPT_AsnDecodeResponderIDByName(const BYTE *pbEncoded,
{
info->dwResponderIdChoice = 1;
blob = &info->u.ByNameResponderId;
blob = &info->ByNameResponderId;
blob->cbData = dataLen;
if (dwFlags & CRYPT_DECODE_NOCOPY_FLAG)
blob->pbData = (BYTE *)pbEncoded;
......@@ -6645,7 +6642,7 @@ static BOOL CRYPT_AsnDecodeResponderIDByKey(const BYTE *pbEncoded,
if (pvStructInfo && *pcbStructInfo >= bytesNeeded)
{
info->dwResponderIdChoice = 2;
blob = &info->u.ByKeyResponderId;
blob = &info->ByKeyResponderId;
blob->cbData = len;
if (dwFlags & CRYPT_DECODE_NOCOPY_FLAG)
blob->pbData = (BYTE *)pbEncoded;
......@@ -6705,7 +6702,7 @@ static BOOL WINAPI CRYPT_AsnDecodeOCSPBasicResponse(DWORD dwCertEncodingType,
struct AsnDecodeSequenceItem items[] = {
{ 0, 0,
CRYPT_AsnDecodeResponderID, offsetof(OCSP_BASIC_RESPONSE_INFO, ProducedAt), FALSE, TRUE,
offsetof(OCSP_BASIC_RESPONSE_INFO, u.ByNameResponderId.pbData), 0 },
offsetof(OCSP_BASIC_RESPONSE_INFO, ByNameResponderId.pbData), 0 },
{ ASN_GENERALTIME, offsetof(OCSP_BASIC_RESPONSE_INFO, ProducedAt),
CRYPT_AsnDecodeGeneralizedTime, sizeof(FILETIME), FALSE, FALSE,
0, 0 },
......
......@@ -35,8 +35,6 @@
#include <stdio.h>
#include <stdlib.h>
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#include "wincrypt.h"
......@@ -2407,15 +2405,15 @@ static BOOL WINAPI CRYPT_AsnEncodeAltNameEntry(DWORD dwCertEncodingType,
case CERT_ALT_NAME_DNS_NAME:
case CERT_ALT_NAME_URL:
tag = ASN_CONTEXT | (entry->dwAltNameChoice - 1);
if (entry->u.pwszURL)
if (entry->pwszURL)
{
DWORD i;
/* Not + 1: don't encode the NULL-terminator */
dataLen = lstrlenW(entry->u.pwszURL);
dataLen = lstrlenW(entry->pwszURL);
for (i = 0; ret && i < dataLen; i++)
{
if (entry->u.pwszURL[i] > 0x7f)
if (entry->pwszURL[i] > 0x7f)
{
SetLastError(CRYPT_E_INVALID_IA5_STRING);
ret = FALSE;
......@@ -2428,16 +2426,16 @@ static BOOL WINAPI CRYPT_AsnEncodeAltNameEntry(DWORD dwCertEncodingType,
break;
case CERT_ALT_NAME_DIRECTORY_NAME:
tag = ASN_CONTEXT | ASN_CONSTRUCTOR | (entry->dwAltNameChoice - 1);
dataLen = entry->u.DirectoryName.cbData;
dataLen = entry->DirectoryName.cbData;
break;
case CERT_ALT_NAME_IP_ADDRESS:
tag = ASN_CONTEXT | (entry->dwAltNameChoice - 1);
dataLen = entry->u.IPAddress.cbData;
dataLen = entry->IPAddress.cbData;
break;
case CERT_ALT_NAME_REGISTERED_ID:
{
struct AsnEncodeTagSwappedItem swapped =
{ ASN_CONTEXT | (entry->dwAltNameChoice - 1), entry->u.pszRegisteredID,
{ ASN_CONTEXT | (entry->dwAltNameChoice - 1), entry->pszRegisteredID,
CRYPT_AsnEncodeOid };
return CRYPT_AsnEncodeSwapTag(0, NULL, &swapped, 0, NULL, pbEncoded,
......@@ -2478,14 +2476,14 @@ static BOOL WINAPI CRYPT_AsnEncodeAltNameEntry(DWORD dwCertEncodingType,
DWORD i;
for (i = 0; i < dataLen; i++)
*pbEncoded++ = (BYTE)entry->u.pwszURL[i];
*pbEncoded++ = (BYTE)entry->pwszURL[i];
break;
}
case CERT_ALT_NAME_DIRECTORY_NAME:
memcpy(pbEncoded, entry->u.DirectoryName.pbData, dataLen);
memcpy(pbEncoded, entry->DirectoryName.pbData, dataLen);
break;
case CERT_ALT_NAME_IP_ADDRESS:
memcpy(pbEncoded, entry->u.IPAddress.pbData, dataLen);
memcpy(pbEncoded, entry->IPAddress.pbData, dataLen);
break;
}
if (ret)
......@@ -3757,7 +3755,7 @@ static BOOL CRYPT_AsnEncodeDistPoint(const CRL_DIST_POINT *distPoint,
break;
case CRL_DIST_POINT_FULL_NAME:
swapped[cSwapped].tag = ASN_CONTEXT | ASN_CONSTRUCTOR | 0;
swapped[cSwapped].pvStructInfo = &distPoint->DistPointName.u.FullName;
swapped[cSwapped].pvStructInfo = &distPoint->DistPointName.FullName;
swapped[cSwapped].encodeFunc = CRYPT_AsnEncodeAltName;
constructed.tag = 0;
constructed.pvStructInfo = &swapped[cSwapped];
......@@ -3972,7 +3970,7 @@ static BOOL WINAPI CRYPT_AsnEncodeIssuingDistPoint(DWORD dwCertEncodingType,
break;
case CRL_DIST_POINT_FULL_NAME:
swapped[cSwapped].tag = ASN_CONTEXT | ASN_CONSTRUCTOR | 0;
swapped[cSwapped].pvStructInfo = &point->DistPointName.u.FullName;
swapped[cSwapped].pvStructInfo = &point->DistPointName.FullName;
swapped[cSwapped].encodeFunc = CRYPT_AsnEncodeAltName;
constructed.tag = 0;
constructed.pvStructInfo = &swapped[cSwapped];
......@@ -4275,7 +4273,7 @@ static BOOL WINAPI CRYPT_AsnEncodeCMSSignerInfo(DWORD dwCertEncodingType,
info->SignerId.dwIdChoice != CERT_ID_KEY_IDENTIFIER)
SetLastError(E_INVALIDARG);
else if (info->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER &&
!info->SignerId.u.IssuerSerialNumber.Issuer.cbData)
!info->SignerId.IssuerSerialNumber.Issuer.cbData)
SetLastError(E_INVALIDARG);
else
{
......@@ -4288,7 +4286,7 @@ static BOOL WINAPI CRYPT_AsnEncodeCMSSignerInfo(DWORD dwCertEncodingType,
if (info->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
items[cItem].pvStructInfo =
&info->SignerId.u.IssuerSerialNumber.Issuer;
&info->SignerId.IssuerSerialNumber.Issuer;
items[cItem].encodeFunc =
CRYPT_AsnEncodeIssuerSerialNumber;
cItem++;
......@@ -4296,7 +4294,7 @@ static BOOL WINAPI CRYPT_AsnEncodeCMSSignerInfo(DWORD dwCertEncodingType,
else
{
swapped[cSwapped].tag = ASN_CONTEXT | 0;
swapped[cSwapped].pvStructInfo = &info->SignerId.u.KeyId;
swapped[cSwapped].pvStructInfo = &info->SignerId.KeyId;
swapped[cSwapped].encodeFunc = CRYPT_AsnEncodeOctets;
items[cItem].pvStructInfo = &swapped[cSwapped];
items[cItem].encodeFunc = CRYPT_AsnEncodeSwapTag;
......@@ -4426,7 +4424,7 @@ static BOOL WINAPI CRYPT_AsnEncodeRecipientInfo(DWORD dwCertEncodingType,
const CMSG_KEY_TRANS_RECIPIENT_INFO *info = pvStructInfo;
struct AsnEncodeSequenceItem items[] = {
{ &info->dwVersion, CRYPT_AsnEncodeInt, 0 },
{ &info->RecipientId.u.IssuerSerialNumber,
{ &info->RecipientId.IssuerSerialNumber,
CRYPT_AsnEncodeIssuerSerialNumber, 0 },
{ &info->KeyEncryptionAlgorithm,
CRYPT_AsnEncodeAlgorithmIdWithNullParams, 0 },
......
......@@ -17,7 +17,7 @@
*/
#include <stdarg.h>
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#include "wincrypt.h"
......@@ -665,19 +665,19 @@ static BOOL CRYPT_IsValidSigner(const CMSG_SIGNER_ENCODE_INFO_WITH_CMS *signer)
}
break;
case CERT_ID_ISSUER_SERIAL_NUMBER:
if (!signer->SignerId.u.IssuerSerialNumber.SerialNumber.cbData)
if (!signer->SignerId.IssuerSerialNumber.SerialNumber.cbData)
{
SetLastError(E_INVALIDARG);
return FALSE;
}
if (!signer->SignerId.u.IssuerSerialNumber.Issuer.cbData)
if (!signer->SignerId.IssuerSerialNumber.Issuer.cbData)
{
SetLastError(E_INVALIDARG);
return FALSE;
}
break;
case CERT_ID_KEY_IDENTIFIER:
if (!signer->SignerId.u.KeyId.cbData)
if (!signer->SignerId.KeyId.cbData)
{
SetLastError(E_INVALIDARG);
return FALSE;
......@@ -806,11 +806,11 @@ static BOOL CSignerInfo_Construct(CMSG_CMS_SIGNER_INFO *info,
if (in->cbSize == sizeof(CMSG_SIGNER_ENCODE_INFO))
{
info->dwVersion = CMSG_SIGNER_INFO_V1;
ret = CRYPT_ConstructBlob(&info->SignerId.u.IssuerSerialNumber.Issuer,
ret = CRYPT_ConstructBlob(&info->SignerId.IssuerSerialNumber.Issuer,
&in->pCertInfo->Issuer);
if (ret)
ret = CRYPT_ConstructBlob(
&info->SignerId.u.IssuerSerialNumber.SerialNumber,
&info->SignerId.IssuerSerialNumber.SerialNumber,
&in->pCertInfo->SerialNumber);
info->SignerId.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
info->HashEncryptionAlgorithm.pszObjId =
......@@ -829,11 +829,11 @@ static BOOL CSignerInfo_Construct(CMSG_CMS_SIGNER_INFO *info,
if (!in->SignerId.dwIdChoice)
{
info->dwVersion = CMSG_SIGNER_INFO_V1;
ret = CRYPT_ConstructBlob(&info->SignerId.u.IssuerSerialNumber.Issuer,
ret = CRYPT_ConstructBlob(&info->SignerId.IssuerSerialNumber.Issuer,
&in->pCertInfo->Issuer);
if (ret)
ret = CRYPT_ConstructBlob(
&info->SignerId.u.IssuerSerialNumber.SerialNumber,
&info->SignerId.IssuerSerialNumber.SerialNumber,
&in->pCertInfo->SerialNumber);
info->SignerId.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
}
......@@ -841,20 +841,20 @@ static BOOL CSignerInfo_Construct(CMSG_CMS_SIGNER_INFO *info,
{
info->dwVersion = CMSG_SIGNER_INFO_V1;
info->SignerId.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
ret = CRYPT_ConstructBlob(&info->SignerId.u.IssuerSerialNumber.Issuer,
&in->SignerId.u.IssuerSerialNumber.Issuer);
ret = CRYPT_ConstructBlob(&info->SignerId.IssuerSerialNumber.Issuer,
&in->SignerId.IssuerSerialNumber.Issuer);
if (ret)
ret = CRYPT_ConstructBlob(
&info->SignerId.u.IssuerSerialNumber.SerialNumber,
&in->SignerId.u.IssuerSerialNumber.SerialNumber);
&info->SignerId.IssuerSerialNumber.SerialNumber,
&in->SignerId.IssuerSerialNumber.SerialNumber);
}
else
{
/* Implicitly dwIdChoice == CERT_ID_KEY_IDENTIFIER */
info->dwVersion = CMSG_SIGNER_INFO_V3;
info->SignerId.dwIdChoice = CERT_ID_KEY_IDENTIFIER;
ret = CRYPT_ConstructBlob(&info->SignerId.u.KeyId,
&in->SignerId.u.KeyId);
ret = CRYPT_ConstructBlob(&info->SignerId.KeyId,
&in->SignerId.KeyId);
}
pEncrAlg = in->HashEncryptionAlgorithm.pszObjId ?
&in->HashEncryptionAlgorithm :
......@@ -886,11 +886,11 @@ static void CSignerInfo_Free(CMSG_CMS_SIGNER_INFO *info)
if (info->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
CryptMemFree(info->SignerId.u.IssuerSerialNumber.Issuer.pbData);
CryptMemFree(info->SignerId.u.IssuerSerialNumber.SerialNumber.pbData);
CryptMemFree(info->SignerId.IssuerSerialNumber.Issuer.pbData);
CryptMemFree(info->SignerId.IssuerSerialNumber.SerialNumber.pbData);
}
else
CryptMemFree(info->SignerId.u.KeyId.pbData);
CryptMemFree(info->SignerId.KeyId.pbData);
CryptMemFree(info->HashAlgorithm.Parameters.pbData);
CryptMemFree(info->HashEncryptionAlgorithm.Parameters.pbData);
CryptMemFree(info->EncryptedHash.pbData);
......@@ -1625,7 +1625,7 @@ static BOOL CRYPT_ExportEncryptedKey(CMSG_CONTENT_ENCRYPT_INFO *info, DWORD i,
PFN_CMSG_EXPORT_KEY_TRANS exportKeyFunc = NULL;
HCRYPTOIDFUNCADDR hFunc = NULL;
CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO *encodeInfo =
info->rgCmsRecipients[i].u.pKeyTrans;
info->rgCmsRecipients[i].pKeyTrans;
CMSG_KEY_TRANS_ENCRYPT_INFO encryptInfo;
BOOL ret;
......@@ -1697,7 +1697,7 @@ static BOOL CContentEncryptInfo_Construct(CMSG_CONTENT_ENCRYPT_INFO *info,
info->rgCmsRecipients[i].dwRecipientChoice =
CMSG_KEY_TRANS_RECIPIENT;
encodeInfo = CryptMemAlloc(sizeof(*encodeInfo));
info->rgCmsRecipients[i].u.pKeyTrans = encodeInfo;
info->rgCmsRecipients[i].pKeyTrans = encodeInfo;
if (encodeInfo)
{
encodeInfo->cbSize = sizeof(*encodeInfo);
......@@ -1712,11 +1712,11 @@ static BOOL CContentEncryptInfo_Construct(CMSG_CONTENT_ENCRYPT_INFO *info,
&cert->SubjectPublicKeyInfo.PublicKey);
if (ret)
ret = CRYPT_ConstructBlob(
&encodeInfo->RecipientId.u.IssuerSerialNumber.Issuer,
&encodeInfo->RecipientId.IssuerSerialNumber.Issuer,
&cert->Issuer);
if (ret)
ret = CRYPT_ConstructBlob(
&encodeInfo->RecipientId.u.IssuerSerialNumber.SerialNumber,
&encodeInfo->RecipientId.IssuerSerialNumber.SerialNumber,
&cert->SerialNumber);
}
else
......@@ -1742,15 +1742,15 @@ static void CContentEncryptInfo_Free(CMSG_CONTENT_ENCRYPT_INFO *info)
for (i = 0; i < info->cRecipients; ++i)
{
CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO *encodeInfo =
info->rgCmsRecipients[i].u.pKeyTrans;
info->rgCmsRecipients[i].pKeyTrans;
CryptMemFree(encodeInfo->KeyEncryptionAlgorithm.pszObjId);
CryptMemFree(encodeInfo->KeyEncryptionAlgorithm.Parameters.pbData);
CryptMemFree(encodeInfo->RecipientPublicKey.pbData);
CryptMemFree(
encodeInfo->RecipientId.u.IssuerSerialNumber.Issuer.pbData);
encodeInfo->RecipientId.IssuerSerialNumber.Issuer.pbData);
CryptMemFree(
encodeInfo->RecipientId.u.IssuerSerialNumber.SerialNumber.pbData);
encodeInfo->RecipientId.IssuerSerialNumber.SerialNumber.pbData);
CryptMemFree(encodeInfo);
}
CryptMemFree(info->rgCmsRecipients);
......@@ -1764,11 +1764,11 @@ static BOOL CRecipientInfo_Construct(CMSG_KEY_TRANS_RECIPIENT_INFO *info,
info->dwVersion = CMSG_KEY_TRANS_PKCS_1_5_VERSION;
info->RecipientId.dwIdChoice = CERT_ID_ISSUER_SERIAL_NUMBER;
ret = CRYPT_ConstructBlob(&info->RecipientId.u.IssuerSerialNumber.Issuer,
ret = CRYPT_ConstructBlob(&info->RecipientId.IssuerSerialNumber.Issuer,
&cert->Issuer);
if (ret)
ret = CRYPT_ConstructBlob(
&info->RecipientId.u.IssuerSerialNumber.SerialNumber,
&info->RecipientId.IssuerSerialNumber.SerialNumber,
&cert->SerialNumber);
if (ret)
ret = CRYPT_ConstructAlgorithmId(&info->KeyEncryptionAlgorithm,
......@@ -1780,8 +1780,8 @@ static BOOL CRecipientInfo_Construct(CMSG_KEY_TRANS_RECIPIENT_INFO *info,
static void CRecipientInfo_Free(CMSG_KEY_TRANS_RECIPIENT_INFO *info)
{
CryptMemFree(info->RecipientId.u.IssuerSerialNumber.Issuer.pbData);
CryptMemFree(info->RecipientId.u.IssuerSerialNumber.SerialNumber.pbData);
CryptMemFree(info->RecipientId.IssuerSerialNumber.Issuer.pbData);
CryptMemFree(info->RecipientId.IssuerSerialNumber.SerialNumber.pbData);
CryptMemFree(info->KeyEncryptionAlgorithm.pszObjId);
CryptMemFree(info->KeyEncryptionAlgorithm.Parameters.pbData);
CryptMemFree(info->EncryptedKey.pbData);
......@@ -2727,12 +2727,12 @@ static BOOL CRYPT_CopySignerInfo(void *pvData, DWORD *pcbData,
if (in->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
size += in->SignerId.u.IssuerSerialNumber.Issuer.cbData;
size += in->SignerId.u.IssuerSerialNumber.SerialNumber.cbData;
size += in->SignerId.IssuerSerialNumber.Issuer.cbData;
size += in->SignerId.IssuerSerialNumber.SerialNumber.cbData;
}
else
{
rdnSize = CRYPT_SizeOfKeyIdAsIssuerAndSerial(&in->SignerId.u.KeyId);
rdnSize = CRYPT_SizeOfKeyIdAsIssuerAndSerial(&in->SignerId.KeyId);
size += rdnSize;
}
if (in->HashAlgorithm.pszObjId)
......@@ -2765,13 +2765,13 @@ static BOOL CRYPT_CopySignerInfo(void *pvData, DWORD *pcbData,
if (in->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
CRYPT_CopyBlob(&out->Issuer,
&in->SignerId.u.IssuerSerialNumber.Issuer, &nextData);
&in->SignerId.IssuerSerialNumber.Issuer, &nextData);
CRYPT_CopyBlob(&out->SerialNumber,
&in->SignerId.u.IssuerSerialNumber.SerialNumber, &nextData);
&in->SignerId.IssuerSerialNumber.SerialNumber, &nextData);
}
else
ret = CRYPT_CopyKeyIdAsIssuerAndSerial(&out->Issuer, &out->SerialNumber,
&in->SignerId.u.KeyId, rdnSize, &nextData);
&in->SignerId.KeyId, rdnSize, &nextData);
if (ret)
{
CRYPT_CopyAlgorithmId(&out->HashAlgorithm, &in->HashAlgorithm,
......@@ -2799,11 +2799,11 @@ static BOOL CRYPT_CopyCMSSignerInfo(void *pvData, DWORD *pcbData,
if (in->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
size += in->SignerId.u.IssuerSerialNumber.Issuer.cbData;
size += in->SignerId.u.IssuerSerialNumber.SerialNumber.cbData;
size += in->SignerId.IssuerSerialNumber.Issuer.cbData;
size += in->SignerId.IssuerSerialNumber.SerialNumber.cbData;
}
else
size += in->SignerId.u.KeyId.cbData;
size += in->SignerId.KeyId.cbData;
if (in->HashAlgorithm.pszObjId)
size += strlen(in->HashAlgorithm.pszObjId) + 1;
size += in->HashAlgorithm.Parameters.cbData;
......@@ -2835,13 +2835,13 @@ static BOOL CRYPT_CopyCMSSignerInfo(void *pvData, DWORD *pcbData,
out->SignerId.dwIdChoice = in->SignerId.dwIdChoice;
if (in->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
CRYPT_CopyBlob(&out->SignerId.u.IssuerSerialNumber.Issuer,
&in->SignerId.u.IssuerSerialNumber.Issuer, &nextData);
CRYPT_CopyBlob(&out->SignerId.u.IssuerSerialNumber.SerialNumber,
&in->SignerId.u.IssuerSerialNumber.SerialNumber, &nextData);
CRYPT_CopyBlob(&out->SignerId.IssuerSerialNumber.Issuer,
&in->SignerId.IssuerSerialNumber.Issuer, &nextData);
CRYPT_CopyBlob(&out->SignerId.IssuerSerialNumber.SerialNumber,
&in->SignerId.IssuerSerialNumber.SerialNumber, &nextData);
}
else
CRYPT_CopyBlob(&out->SignerId.u.KeyId, &in->SignerId.u.KeyId, &nextData);
CRYPT_CopyBlob(&out->SignerId.KeyId, &in->SignerId.KeyId, &nextData);
CRYPT_CopyAlgorithmId(&out->HashAlgorithm, &in->HashAlgorithm,
&nextData);
CRYPT_CopyAlgorithmId(&out->HashEncryptionAlgorithm,
......@@ -2866,12 +2866,12 @@ static BOOL CRYPT_CopySignerCertInfo(void *pvData, DWORD *pcbData,
if (in->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
size += in->SignerId.u.IssuerSerialNumber.Issuer.cbData;
size += in->SignerId.u.IssuerSerialNumber.SerialNumber.cbData;
size += in->SignerId.IssuerSerialNumber.Issuer.cbData;
size += in->SignerId.IssuerSerialNumber.SerialNumber.cbData;
}
else
{
rdnSize = CRYPT_SizeOfKeyIdAsIssuerAndSerial(&in->SignerId.u.KeyId);
rdnSize = CRYPT_SizeOfKeyIdAsIssuerAndSerial(&in->SignerId.KeyId);
size += rdnSize;
}
if (!pvData)
......@@ -2894,14 +2894,14 @@ static BOOL CRYPT_CopySignerCertInfo(void *pvData, DWORD *pcbData,
if (in->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
CRYPT_CopyBlob(&out->Issuer,
&in->SignerId.u.IssuerSerialNumber.Issuer, &nextData);
&in->SignerId.IssuerSerialNumber.Issuer, &nextData);
CRYPT_CopyBlob(&out->SerialNumber,
&in->SignerId.u.IssuerSerialNumber.SerialNumber, &nextData);
&in->SignerId.IssuerSerialNumber.SerialNumber, &nextData);
ret = TRUE;
}
else
ret = CRYPT_CopyKeyIdAsIssuerAndSerial(&out->Issuer, &out->SerialNumber,
&in->SignerId.u.KeyId, rdnSize, &nextData);
&in->SignerId.KeyId, rdnSize, &nextData);
}
TRACE("returning %d\n", ret);
return ret;
......@@ -2975,7 +2975,7 @@ static BOOL CDecodeEnvelopedMsg_GetParam(CDecodeMsg *msg, DWORD dwParamType,
&msg->u.enveloped_data.data->rgRecipientInfo[dwIndex];
ret = CRYPT_CopyRecipientInfo(pvData, pcbData,
&recipientInfo->RecipientId.u.IssuerSerialNumber);
&recipientInfo->RecipientId.IssuerSerialNumber);
}
else
SetLastError(CRYPT_E_INVALID_INDEX);
......@@ -3398,12 +3398,12 @@ static BOOL CDecodeSignedMsg_VerifySignature(CDecodeMsg *msg, PCERT_INFO info)
if (signerInfo->SignerId.dwIdChoice == CERT_ID_ISSUER_SERIAL_NUMBER)
{
ret = CertCompareCertificateName(X509_ASN_ENCODING,
&signerInfo->SignerId.u.IssuerSerialNumber.Issuer,
&signerInfo->SignerId.IssuerSerialNumber.Issuer,
&info->Issuer);
if (ret)
{
ret = CertCompareIntegerBlob(
&signerInfo->SignerId.u.IssuerSerialNumber.SerialNumber,
&signerInfo->SignerId.IssuerSerialNumber.SerialNumber,
&info->SerialNumber);
if (ret)
break;
......
......@@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <stdarg.h>
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#include "wincrypt.h"
......@@ -1248,12 +1248,12 @@ static BOOL CRYPT_FormatAltNameEntry(DWORD dwFormatStrType, DWORD indentLevel,
{
case CERT_ALT_NAME_RFC822_NAME:
LoadStringW(hInstance, IDS_ALT_NAME_RFC822_NAME, buf, ARRAY_SIZE(buf));
bytesNeeded += lstrlenW(entry->u.pwszRfc822Name) * sizeof(WCHAR);
bytesNeeded += lstrlenW(entry->pwszRfc822Name) * sizeof(WCHAR);
ret = TRUE;
break;
case CERT_ALT_NAME_DNS_NAME:
LoadStringW(hInstance, IDS_ALT_NAME_DNS_NAME, buf, ARRAY_SIZE(buf));
bytesNeeded += lstrlenW(entry->u.pwszDNSName) * sizeof(WCHAR);
bytesNeeded += lstrlenW(entry->pwszDNSName) * sizeof(WCHAR);
ret = TRUE;
break;
case CERT_ALT_NAME_DIRECTORY_NAME:
......@@ -1263,7 +1263,7 @@ static BOOL CRYPT_FormatAltNameEntry(DWORD dwFormatStrType, DWORD indentLevel,
if (dwFormatStrType & CRYPT_FORMAT_STR_MULTI_LINE)
strType |= CERT_NAME_STR_CRLF_FLAG;
directoryNameLen = cert_name_to_str_with_indent(X509_ASN_ENCODING,
indentLevel + 1, &entry->u.DirectoryName, strType, NULL, 0);
indentLevel + 1, &entry->DirectoryName, strType, NULL, 0);
LoadStringW(hInstance, IDS_ALT_NAME_DIRECTORY_NAME, buf, ARRAY_SIZE(buf));
bytesNeeded += (directoryNameLen - 1) * sizeof(WCHAR);
if (dwFormatStrType & CRYPT_FORMAT_STR_MULTI_LINE)
......@@ -1275,45 +1275,45 @@ static BOOL CRYPT_FormatAltNameEntry(DWORD dwFormatStrType, DWORD indentLevel,
}
case CERT_ALT_NAME_URL:
LoadStringW(hInstance, IDS_ALT_NAME_URL, buf, ARRAY_SIZE(buf));
bytesNeeded += lstrlenW(entry->u.pwszURL) * sizeof(WCHAR);
bytesNeeded += lstrlenW(entry->pwszURL) * sizeof(WCHAR);
ret = TRUE;
break;
case CERT_ALT_NAME_IP_ADDRESS:
{
LoadStringW(hInstance, IDS_ALT_NAME_IP_ADDRESS, buf, ARRAY_SIZE(buf));
if (entry->u.IPAddress.cbData == 8)
if (entry->IPAddress.cbData == 8)
{
if (dwFormatStrType & CRYPT_FORMAT_STR_MULTI_LINE)
{
LoadStringW(hInstance, IDS_ALT_NAME_MASK, mask, ARRAY_SIZE(mask));
bytesNeeded += lstrlenW(mask) * sizeof(WCHAR);
swprintf(ipAddrBuf, ARRAY_SIZE(ipAddrBuf), L"%d.%d.%d.%d",
entry->u.IPAddress.pbData[0],
entry->u.IPAddress.pbData[1],
entry->u.IPAddress.pbData[2],
entry->u.IPAddress.pbData[3]);
entry->IPAddress.pbData[0],
entry->IPAddress.pbData[1],
entry->IPAddress.pbData[2],
entry->IPAddress.pbData[3]);
bytesNeeded += lstrlenW(ipAddrBuf) * sizeof(WCHAR);
/* indent again, for the mask line */
bytesNeeded += indentLevel * lstrlenW(indent) * sizeof(WCHAR);
swprintf(maskBuf, ARRAY_SIZE(maskBuf), L"%d.%d.%d.%d",
entry->u.IPAddress.pbData[4],
entry->u.IPAddress.pbData[5],
entry->u.IPAddress.pbData[6],
entry->u.IPAddress.pbData[7]);
entry->IPAddress.pbData[4],
entry->IPAddress.pbData[5],
entry->IPAddress.pbData[6],
entry->IPAddress.pbData[7]);
bytesNeeded += lstrlenW(maskBuf) * sizeof(WCHAR);
bytesNeeded += lstrlenW(crlf) * sizeof(WCHAR);
}
else
{
swprintf(ipAddrBuf, ARRAY_SIZE(ipAddrBuf), L"%d.%d.%d.%d/%d.%d.%d.%d",
entry->u.IPAddress.pbData[0],
entry->u.IPAddress.pbData[1],
entry->u.IPAddress.pbData[2],
entry->u.IPAddress.pbData[3],
entry->u.IPAddress.pbData[4],
entry->u.IPAddress.pbData[5],
entry->u.IPAddress.pbData[6],
entry->u.IPAddress.pbData[7]);
entry->IPAddress.pbData[0],
entry->IPAddress.pbData[1],
entry->IPAddress.pbData[2],
entry->IPAddress.pbData[3],
entry->IPAddress.pbData[4],
entry->IPAddress.pbData[5],
entry->IPAddress.pbData[6],
entry->IPAddress.pbData[7]);
bytesNeeded += (lstrlenW(ipAddrBuf) + 1) * sizeof(WCHAR);
}
ret = TRUE;
......@@ -1321,7 +1321,7 @@ static BOOL CRYPT_FormatAltNameEntry(DWORD dwFormatStrType, DWORD indentLevel,
else
{
FIXME("unknown IP address format (%ld bytes)\n",
entry->u.IPAddress.cbData);
entry->IPAddress.cbData);
ret = FALSE;
}
break;
......@@ -1361,7 +1361,7 @@ static BOOL CRYPT_FormatAltNameEntry(DWORD dwFormatStrType, DWORD indentLevel,
case CERT_ALT_NAME_RFC822_NAME:
case CERT_ALT_NAME_DNS_NAME:
case CERT_ALT_NAME_URL:
lstrcpyW(str, entry->u.pwszURL);
lstrcpyW(str, entry->pwszURL);
break;
case CERT_ALT_NAME_DIRECTORY_NAME:
if (dwFormatStrType & CRYPT_FORMAT_STR_MULTI_LINE)
......@@ -1372,7 +1372,7 @@ static BOOL CRYPT_FormatAltNameEntry(DWORD dwFormatStrType, DWORD indentLevel,
else
*str++ = '=';
cert_name_to_str_with_indent(X509_ASN_ENCODING,
indentLevel + 1, &entry->u.DirectoryName, strType, str,
indentLevel + 1, &entry->DirectoryName, strType, str,
bytesNeeded / sizeof(WCHAR));
break;
case CERT_ALT_NAME_IP_ADDRESS:
......@@ -2039,7 +2039,7 @@ static BOOL WINAPI CRYPT_FormatCRLDistPoints(DWORD dwCertEncodingType,
* RDN.)
*/
ret = CRYPT_FormatAltNameInfo(dwFormatStrType, 3,
&distPoint->DistPointName.u.FullName, NULL, &size);
&distPoint->DistPointName.FullName, NULL, &size);
if (ret)
bytesNeeded += size - sizeof(WCHAR);
haveAnEntry = TRUE;
......@@ -2158,7 +2158,7 @@ static BOOL WINAPI CRYPT_FormatCRLDistPoints(DWORD dwCertEncodingType,
lstrcpyW(str, nameSep);
str += lstrlenW(nameSep);
ret = CRYPT_FormatAltNameInfo(dwFormatStrType, 3,
&distPoint->DistPointName.u.FullName, str,
&distPoint->DistPointName.FullName, str,
&altNameSize);
if (ret)
str += altNameSize / sizeof(WCHAR) - 1;
......
......@@ -21,7 +21,7 @@
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#define CRYPT_OID_INFO_HAS_EXTRA_FIELDS
......@@ -778,9 +778,9 @@ BOOL WINAPI CryptRegisterOIDInfo(PCCRYPT_OID_INFO info, DWORD flags)
if (err != ERROR_SUCCESS) goto done;
}
if (info->u.Algid)
if (info->Algid)
{
err = RegSetValueExW(key, L"Algid", 0, REG_DWORD, (const BYTE *)&info->u.Algid, sizeof(info->u.Algid));
err = RegSetValueExW(key, L"Algid", 0, REG_DWORD, (const BYTE *)&info->Algid, sizeof(info->Algid));
if (err != ERROR_SUCCESS) goto done;
}
......@@ -1532,8 +1532,8 @@ static struct OIDInfo *read_oid_info(HKEY root, char *key_name, DWORD *flags)
info->info.dwGroupId = group_id;
len = sizeof(info->info.u.Algid);
RegQueryValueExW(key, L"Algid", NULL, NULL, (BYTE *)&info->info.u.Algid, &len);
len = sizeof(info->info.Algid);
RegQueryValueExW(key, L"Algid", NULL, NULL, (BYTE *)&info->info.Algid, &len);
if (extra_len)
{
......@@ -1588,7 +1588,7 @@ static void init_registered_oid_info(void)
{
TRACE("adding oid %s, name %s, groupid %lu, algid %u, extra %lu, CNG algid %s, CNG extra %s\n",
debugstr_a(info->info.pszOID), debugstr_w(info->info.pwszName),
info->info.dwGroupId, info->info.u.Algid, info->info.ExtraInfo.cbData,
info->info.dwGroupId, info->info.Algid, info->info.ExtraInfo.cbData,
debugstr_w(info->info.pwszCNGAlgid), debugstr_w(info->info.pwszCNGExtraAlgid));
if (flags & CRYPT_INSTALL_OID_INFO_BEFORE_FLAG)
......@@ -1622,7 +1622,7 @@ static void init_oid_info(void)
info->info.pszOID = oidInfoConstructors[i].pszOID;
info->info.pwszName = oidInfoConstructors[i].pwszName;
info->info.dwGroupId = oidInfoConstructors[i].dwGroupId;
info->info.u.Algid = oidInfoConstructors[i].Algid;
info->info.Algid = oidInfoConstructors[i].Algid;
if (oidInfoConstructors[i].blob)
{
info->info.ExtraInfo.cbData =
......@@ -1654,7 +1654,7 @@ static void init_oid_info(void)
info->info.pszOID = oidInfoConstructors[i].pszOID;
info->info.pwszName = (LPWSTR)(info + 1);
info->info.dwGroupId = oidInfoConstructors[i].dwGroupId;
info->info.u.Algid = oidInfoConstructors[i].Algid;
info->info.Algid = oidInfoConstructors[i].Algid;
memcpy(info + 1, stringresource, len*sizeof(WCHAR));
((LPWSTR)(info + 1))[len] = 0;
if (oidInfoConstructors[i].blob)
......@@ -1728,7 +1728,7 @@ PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey,
EnterCriticalSection(&oidInfoCS);
LIST_FOR_EACH_ENTRY(info, &oidInfo, struct OIDInfo, entry)
{
if (info->info.u.Algid == *(DWORD *)pvKey &&
if (info->info.Algid == *(DWORD *)pvKey &&
(!dwGroupId || info->info.dwGroupId == dwGroupId))
{
ret = &info->info;
......@@ -1783,7 +1783,7 @@ PCCRYPT_OID_INFO WINAPI CryptFindOIDInfo(DWORD dwKeyType, void *pvKey,
EnterCriticalSection(&oidInfoCS);
LIST_FOR_EACH_ENTRY(info, &oidInfo, struct OIDInfo, entry)
{
if (info->info.u.Algid == *(DWORD *)pvKey &&
if (info->info.Algid == *(DWORD *)pvKey &&
info->info.ExtraInfo.cbData >= sizeof(DWORD) &&
*(DWORD *)info->info.ExtraInfo.pbData ==
*(DWORD *)((LPBYTE)pvKey + sizeof(DWORD)) &&
......@@ -1820,7 +1820,7 @@ DWORD WINAPI CertOIDToAlgId(LPCSTR pszObjId)
(void *)pszObjId, 0);
if (info)
ret = info->u.Algid;
ret = info->Algid;
else
ret = 0;
return ret;
......
......@@ -17,8 +17,6 @@
*/
#include <stdarg.h>
#define NONAMELESSUNION
#include "windef.h"
#include "winbase.h"
#include "winnls.h"
......@@ -1036,7 +1034,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, vo
if (entry)
{
ret = copy_output_str(name_string, entry->u.pwszRfc822Name, name_len);
ret = copy_output_str(name_string, entry->pwszRfc822Name, name_len);
break;
}
ret = cert_get_name_from_rdn_attr(cert->dwCertEncodingType, name, szOID_RSA_emailAddr,
......@@ -1056,7 +1054,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, vo
entry = cert_find_alt_name_entry(cert, alt_name_issuer, CERT_ALT_NAME_DIRECTORY_NAME, &info);
if (entry)
ret = CertNameToStrW(cert->dwCertEncodingType, &entry->u.DirectoryName,
ret = CertNameToStrW(cert->dwCertEncodingType, &entry->DirectoryName,
param, name_string, name_len);
}
break;
......@@ -1069,7 +1067,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, vo
entry = cert_find_alt_name_entry(cert, alt_name_issuer, CERT_ALT_NAME_DIRECTORY_NAME, &info);
if (entry)
ret = cert_name_to_str_with_indent(X509_ASN_ENCODING, 0, &entry->u.DirectoryName,
ret = cert_name_to_str_with_indent(X509_ASN_ENCODING, 0, &entry->DirectoryName,
0, name_string, name_len);
break;
case CERT_NAME_SIMPLE_DISPLAY_TYPE:
......@@ -1097,7 +1095,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, vo
if (!info) break;
if (!entry && info->cAltEntry)
entry = &info->rgAltEntry[0];
if (entry) ret = copy_output_str(name_string, entry->u.pwszRfc822Name, name_len);
if (entry) ret = copy_output_str(name_string, entry->pwszRfc822Name, name_len);
break;
}
case CERT_NAME_FRIENDLY_DISPLAY_TYPE:
......@@ -1123,7 +1121,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, vo
do
{
if (name_string && name_len == 1) break;
ret += len = copy_output_str(name_string, entry->u.pwszDNSName, name_len ? name_len - 1 : 0);
ret += len = copy_output_str(name_string, entry->pwszDNSName, name_len ? name_len - 1 : 0);
if (name_string && name_len)
{
name_string += len;
......@@ -1132,7 +1130,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, vo
}
while ((entry = cert_find_next_alt_name_entry(info, CERT_ALT_NAME_DNS_NAME, &index)));
}
else ret = copy_output_str(name_string, entry->u.pwszDNSName, name_len);
else ret = copy_output_str(name_string, entry->pwszDNSName, name_len);
}
else
{
......@@ -1155,7 +1153,7 @@ DWORD WINAPI CertGetNameStringW(PCCERT_CONTEXT cert, DWORD type, DWORD flags, vo
case CERT_NAME_URL_TYPE:
{
if ((entry = cert_find_alt_name_entry(cert, alt_name_issuer, CERT_ALT_NAME_URL, &info)))
ret = copy_output_str(name_string, entry->u.pwszURL, name_len);
ret = copy_output_str(name_string, entry->pwszURL, name_len);
break;
}
default:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment