crypt32: Simplify a function.
This commit is contained in:
parent
59bcbb2d8b
commit
c3bc7f2cba
@ -786,46 +786,41 @@ static BOOL CRYPT_EncodeValueWithType(DWORD dwCertEncodingType,
|
|||||||
|
|
||||||
if (value->end > value->start)
|
if (value->end > value->start)
|
||||||
{
|
{
|
||||||
|
LONG i;
|
||||||
|
LPWSTR ptr;
|
||||||
|
|
||||||
nameValue.Value.pbData = CryptMemAlloc((value->end - value->start) *
|
nameValue.Value.pbData = CryptMemAlloc((value->end - value->start) *
|
||||||
sizeof(WCHAR));
|
sizeof(WCHAR));
|
||||||
if (!nameValue.Value.pbData)
|
if (!nameValue.Value.pbData)
|
||||||
{
|
{
|
||||||
SetLastError(ERROR_OUTOFMEMORY);
|
SetLastError(ERROR_OUTOFMEMORY);
|
||||||
ret = FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
ptr = (LPWSTR)nameValue.Value.pbData;
|
||||||
|
for (i = 0; i < value->end - value->start; i++)
|
||||||
|
{
|
||||||
|
*ptr++ = value->start[i];
|
||||||
|
if (value->start[i] == '"')
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
nameValue.Value.cbData = (LPBYTE)ptr - nameValue.Value.pbData;
|
||||||
}
|
}
|
||||||
if (ret)
|
ret = CryptEncodeObjectEx(dwCertEncodingType, X509_UNICODE_NAME_VALUE,
|
||||||
|
&nameValue, CRYPT_ENCODE_ALLOC_FLAG, NULL, &output->pbData,
|
||||||
|
&output->cbData);
|
||||||
|
if (!ret && ppszError)
|
||||||
{
|
{
|
||||||
if (value->end > value->start)
|
if (type == CERT_RDN_NUMERIC_STRING &&
|
||||||
{
|
GetLastError() == CRYPT_E_INVALID_NUMERIC_STRING)
|
||||||
LONG i;
|
*ppszError = value->start + output->cbData;
|
||||||
LPWSTR ptr = (LPWSTR)nameValue.Value.pbData;
|
else if (type == CERT_RDN_PRINTABLE_STRING &&
|
||||||
|
GetLastError() == CRYPT_E_INVALID_PRINTABLE_STRING)
|
||||||
for (i = 0; i < value->end - value->start; i++)
|
*ppszError = value->start + output->cbData;
|
||||||
{
|
else if (type == CERT_RDN_IA5_STRING &&
|
||||||
*ptr++ = value->start[i];
|
GetLastError() == CRYPT_E_INVALID_IA5_STRING)
|
||||||
if (value->start[i] == '"')
|
*ppszError = value->start + output->cbData;
|
||||||
i++;
|
|
||||||
}
|
|
||||||
nameValue.Value.cbData = (LPBYTE)ptr - nameValue.Value.pbData;
|
|
||||||
}
|
|
||||||
ret = CryptEncodeObjectEx(dwCertEncodingType, X509_UNICODE_NAME_VALUE,
|
|
||||||
&nameValue, CRYPT_ENCODE_ALLOC_FLAG, NULL, &output->pbData,
|
|
||||||
&output->cbData);
|
|
||||||
if (!ret && ppszError)
|
|
||||||
{
|
|
||||||
if (type == CERT_RDN_NUMERIC_STRING &&
|
|
||||||
GetLastError() == CRYPT_E_INVALID_NUMERIC_STRING)
|
|
||||||
*ppszError = value->start + output->cbData;
|
|
||||||
else if (type == CERT_RDN_PRINTABLE_STRING &&
|
|
||||||
GetLastError() == CRYPT_E_INVALID_PRINTABLE_STRING)
|
|
||||||
*ppszError = value->start + output->cbData;
|
|
||||||
else if (type == CERT_RDN_IA5_STRING &&
|
|
||||||
GetLastError() == CRYPT_E_INVALID_IA5_STRING)
|
|
||||||
*ppszError = value->start + output->cbData;
|
|
||||||
}
|
|
||||||
CryptMemFree(nameValue.Value.pbData);
|
|
||||||
}
|
}
|
||||||
|
CryptMemFree(nameValue.Value.pbData);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user