Commit 7eb61a6e authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

crypt32: Use an empty string as a separator when no separator is desired to…

crypt32: Use an empty string as a separator when no separator is desired to avoid special cases for NULL.
parent b8c7dec6
......@@ -99,8 +99,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
needed = bytes + pad_bytes + 1;
if (sep)
needed += (needed / 64 + 1) * strlen(sep);
needed += (needed / 64 + 1) * strlen(sep);
if (needed > *out_len)
{
......@@ -117,7 +116,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
i = 0;
while (div > 0)
{
if (sep && i && i % 64 == 0)
if (i && i % 64 == 0)
{
strcpy(ptr, sep);
ptr += strlen(sep);
......@@ -163,8 +162,7 @@ static LONG encodeBase64A(const BYTE *in_buf, int in_len, LPCSTR sep,
*ptr++ = '=';
break;
}
if (sep)
strcpy(ptr, sep);
strcpy(ptr, sep);
return ERROR_SUCCESS;
}
......@@ -180,7 +178,7 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
if (dwFlags & CRYPT_STRING_NOCR)
sep = lf;
else if (dwFlags & CRYPT_STRING_NOCRLF)
sep = NULL;
sep = "";
else
sep = crlf;
switch (dwFlags & 0x0fffffff)
......@@ -217,11 +215,8 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
{
strcpy(ptr, header);
ptr += strlen(ptr);
if (sep)
{
strcpy(ptr, sep);
ptr += strlen(sep);
}
strcpy(ptr, sep);
ptr += strlen(sep);
}
encodeBase64A(pbBinary, cbBinary, sep, ptr, &size);
ptr += size - 1;
......@@ -229,11 +224,8 @@ static BOOL BinaryToBase64A(const BYTE *pbBinary,
{
strcpy(ptr, trailer);
ptr += strlen(ptr);
if (sep)
{
strcpy(ptr, sep);
ptr += strlen(sep);
}
strcpy(ptr, sep);
ptr += strlen(sep);
}
*pcchString = charsNeeded - 1;
}
......@@ -302,8 +294,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
TRACE("bytes is %d, pad bytes is %d\n", bytes, pad_bytes);
needed = bytes + pad_bytes + 1;
if (sep)
needed += (needed / 64 + 1) * strlenW(sep);
needed += (needed / 64 + 1) * strlenW(sep);
if (needed > *out_len)
{
......@@ -320,7 +311,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
i = 0;
while (div > 0)
{
if (sep && i && i % 64 == 0)
if (i && i % 64 == 0)
{
strcpyW(ptr, sep);
ptr += strlenW(sep);
......@@ -366,8 +357,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
*ptr++ = '=';
break;
}
if (sep)
strcpyW(ptr, sep);
strcpyW(ptr, sep);
return ERROR_SUCCESS;
}
......@@ -375,7 +365,7 @@ static LONG encodeBase64W(const BYTE *in_buf, int in_len, LPCWSTR sep,
static BOOL BinaryToBase64W(const BYTE *pbBinary,
DWORD cbBinary, DWORD dwFlags, LPWSTR pszString, DWORD *pcchString)
{
static const WCHAR crlf[] = { '\r','\n',0 }, lf[] = { '\n',0 };
static const WCHAR crlf[] = { '\r','\n',0 }, lf[] = { '\n',0 }, empty = {0};
BOOL ret = TRUE;
LPCWSTR header = NULL, trailer = NULL, sep;
DWORD charsNeeded;
......@@ -383,7 +373,7 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
if (dwFlags & CRYPT_STRING_NOCR)
sep = lf;
else if (dwFlags & CRYPT_STRING_NOCRLF)
sep = NULL;
sep = empty;
else
sep = crlf;
switch (dwFlags & 0x0fffffff)
......@@ -420,11 +410,8 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
{
strcpyW(ptr, header);
ptr += strlenW(ptr);
if (sep)
{
strcpyW(ptr, sep);
ptr += strlenW(sep);
}
strcpyW(ptr, sep);
ptr += strlenW(sep);
}
encodeBase64W(pbBinary, cbBinary, sep, ptr, &size);
ptr += size - 1;
......@@ -432,11 +419,8 @@ static BOOL BinaryToBase64W(const BYTE *pbBinary,
{
strcpyW(ptr, trailer);
ptr += strlenW(ptr);
if (sep)
{
strcpyW(ptr, sep);
ptr += strlenW(sep);
}
strcpyW(ptr, sep);
ptr += strlenW(sep);
}
*pcchString = charsNeeded - 1;
}
......
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