mirror of https://github.com/wolfSSL/wolfssl.git
Fix issue with CSharp and Windows CE with conversion of ASCII->Unicode and Unicode->ASCII with odd length and extra null terminator.
parent
9fdb40caa4
commit
db0b0e28d2
|
@ -51,7 +51,9 @@ namespace wolfSSL.CSharp
|
||||||
/* Convert Unicode to Bytes */
|
/* Convert Unicode to Bytes */
|
||||||
byte[] bytes = Encoding.Unicode.GetBytes((string)msg.ToString());
|
byte[] bytes = Encoding.Unicode.GetBytes((string)msg.ToString());
|
||||||
/* Convert to ASCII */
|
/* Convert to ASCII */
|
||||||
return Encoding.ASCII.GetString(bytes, 0, bytes.Length);
|
string ret = Encoding.ASCII.GetString(bytes, 0, bytes.Length);
|
||||||
|
/* odd length unicode might have extra null terminator, so remove */
|
||||||
|
return ret.Replace("\0", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -61,14 +63,20 @@ namespace wolfSSL.CSharp
|
||||||
{
|
{
|
||||||
if (msg == null)
|
if (msg == null)
|
||||||
return null;
|
return null;
|
||||||
/* Convert ASCII to Bytes */
|
/* Get length and round up to even unicode */
|
||||||
byte[] bytes = Encoding.ASCII.GetBytes((string)msg.ToString());
|
int msgLen = msg.Length;
|
||||||
|
msgLen = ((msgLen + 1) & ~1);
|
||||||
|
byte[] bytes = new byte[msgLen];
|
||||||
|
/* Convert Ascii to Bytes */
|
||||||
|
byte[] msgBytes = Encoding.ASCII.GetBytes((string)msg.ToString());
|
||||||
|
msgBytes.CopyTo(bytes, 0);
|
||||||
/* Convert to Unicode */
|
/* Convert to Unicode */
|
||||||
return Encoding.Unicode.GetString(bytes, 0, bytes.Length);
|
return Encoding.Unicode.GetString(bytes, 0, bytes.Length);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// WinCE version of Marshal for Unicode or Multi-byte pointer to ASCII string
|
/// WinCE version of Marshal for Unicode or Multi-byte pointer to
|
||||||
|
/// ASCII string
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string PtrToStringAnsi(IntPtr ptr)
|
public static string PtrToStringAnsi(IntPtr ptr)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue