Skip to content

Commit 97adb4b

Browse files
committed
fixed wolfSSL_SNI_GetFromBuffer
1 parent 6dd43ca commit 97adb4b

2 files changed

Lines changed: 20 additions & 9 deletions

File tree

wrapper/CSharp/wolfSSL-TLS-Server/wolfSSL-TLS-Server.cs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ public static void Main(string[] args)
224224
Console.WriteLine("SSL cipher suite is " + wolfssl.get_current_cipher(ssl));
225225

226226
/* read and print out the message then reply */
227-
if (wolfssl.read(ssl, buff, 1023) < 0)
227+
if (wolfssl.read(ssl, buff, 1024) < 0)
228228
{
229229
Console.WriteLine("Error in read");
230230
tcp.Stop();
@@ -233,13 +233,24 @@ public static void Main(string[] args)
233233
}
234234
Console.WriteLine(buff);
235235

236-
/* get and print sni used by the client and also their message */
236+
/* get and print sni from a sample buffer, can be used by using the raw client hello */
237237
if (haveSNI(args)) {
238238
IntPtr result = Marshal.AllocHGlobal(32);
239239
IntPtr inOutSz = Marshal.AllocHGlobal(sizeof(int));
240240
Marshal.WriteInt32(inOutSz, 32);
241-
242-
int ret = wolfssl.SNI_GetFromBuffer(buff, 1024, 0, result, inOutSz);
241+
byte [] buffer = { /* www.paypal.com */
242+
0x16, 0x03, 0x03, 0x00, 0x64, 0x01, 0x00, 0x00, 0x60, 0x03, 0x03, 0x5c,
243+
0xc4, 0xb3, 0x8c, 0x87, 0xef, 0xa4, 0x09, 0xe0, 0x02, 0xab, 0x86, 0xca,
244+
0x76, 0xf0, 0x9e, 0x01, 0x65, 0xf6, 0xa6, 0x06, 0x13, 0x1d, 0x0f, 0xa5,
245+
0x79, 0xb0, 0xd4, 0x77, 0x22, 0xeb, 0x1a, 0x00, 0x00, 0x16, 0x00, 0x6b,
246+
0x00, 0x67, 0x00, 0x39, 0x00, 0x33, 0x00, 0x3d, 0x00, 0x3c, 0x00, 0x35,
247+
0x00, 0x2f, 0x00, 0x05, 0x00, 0x04, 0x00, 0x0a, 0x01, 0x00, 0x00, 0x21,
248+
0x00, 0x00, 0x00, 0x13, 0x00, 0x11, 0x00, 0x00, 0x0e, 0x77, 0x77, 0x77,
249+
0x2e, 0x70, 0x61, 0x79, 0x70, 0x61, 0x6c, 0x2e, 0x63, 0x6f, 0x6d, 0x00,
250+
0x0d, 0x00, 0x06, 0x00, 0x04, 0x04, 0x01, 0x02, 0x01
251+
};
252+
253+
int ret = wolfssl.SNI_GetFromBuffer(buffer, 1024, 0, result, inOutSz);
243254

244255
if (ret != wolfssl.SUCCESS) {
245256
Console.WriteLine("Error on reading SNI from buffer, ret value = " + ret);
@@ -248,10 +259,10 @@ public static void Main(string[] args)
248259
return;
249260
}
250261

251-
string dataStr = Marshal.PtrToStringAnsi(result);
252-
Console.WriteLine("(SNI_GetFromBuffer) SNI used by client: " + dataStr);
253-
}
262+
string resultStr = Marshal.PtrToStringAnsi(result);
263+
Console.WriteLine("(SNI_GetFromBuffer) SNI used by client: " + resultStr);
254264

265+
}
255266

256267
if (wolfssl.write(ssl, reply, reply.Length) != reply.Length)
257268
{

wrapper/CSharp/wolfSSL_CSharp/wolfSSL.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ public void free()
333333
[DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
334334
private extern static ushort wolfSSL_SNI_GetRequest(IntPtr ssl, byte type, ref IntPtr data);
335335
[DllImport(wolfssl_dll, CallingConvention = CallingConvention.Cdecl)]
336-
private extern static int wolfSSL_SNI_GetFromBuffer(StringBuilder clientHello, uint helloSz, byte type, IntPtr sni, IntPtr inOutSz);
336+
private extern static int wolfSSL_SNI_GetFromBuffer(byte[] clientHello, uint helloSz, byte type, IntPtr sni, IntPtr inOutSz);
337337

338338
/********************************
339339
* SSL Structure
@@ -1217,7 +1217,7 @@ public static ushort SNI_GetRequest(IntPtr ssl, byte type, ref IntPtr data)
12171217
}
12181218
}
12191219

1220-
public static int SNI_GetFromBuffer(StringBuilder clientHello, uint helloSz, byte type, IntPtr sni, IntPtr inOutSz)
1220+
public static int SNI_GetFromBuffer(byte []clientHello, uint helloSz, byte type, IntPtr sni, IntPtr inOutSz)
12211221
{
12221222
try {
12231223
return wolfSSL_SNI_GetFromBuffer(clientHello, helloSz, type, sni, inOutSz);

0 commit comments

Comments
 (0)