Update the FreeRTOS+WolfSSL Win32 demo to use the latest WolfSSL libraries.

pull/4/head
Richard Barry 10 years ago
parent 02d0847567
commit 717654471e

@ -1,5 +1,5 @@
[InternetShortcut] [InternetShortcut]
URL=http://www.freertos.org/FreeRTOS-Plus/CyaSSL/FreeRTOS_CyaSSL_Example.shtml URL=http://www.freertos.org/FreeRTOS-Plus/WolfSSL/FreeRTOS_WolfSSL_Example.shtml
IDList= IDList=
[{000214A0-0000-0000-C000-000000000046}] [{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2 Prop3=19,2

@ -72,8 +72,8 @@
/* Win32 includes. */ /* Win32 includes. */
#include <WinSock2.h> #include <WinSock2.h>
/* CyaSSL includes. */ /* wolfSSL includes. */
#include "cyassl/ssl.h" #include "wolfssl/ssl.h"
/* Standard includes. */ /* Standard includes. */
#include <stdint.h> #include <stdint.h>
@ -85,8 +85,8 @@
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* The CyaSSL context for the client. */ /* The wolfSSL context for the client. */
static CYASSL_CTX* xCyaSSL_ClientContext = NULL; static WOLFSSL_CTX* xWolfSSL_ClientContext = NULL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -95,7 +95,7 @@ void vSecureTCPClientTask( void *pvParameters )
{ {
SOCKET xClientSocket; SOCKET xClientSocket;
struct sockaddr_in xConnection; struct sockaddr_in xConnection;
CYASSL* xCyaSSL_Object; WOLFSSL* xWolfSSL_Object;
WORD wVersionRequested; WORD wVersionRequested;
WSADATA xWSAData; WSADATA xWSAData;
char cString[ 50 ]; char cString[ 50 ];
@ -115,12 +115,12 @@ uint32_t ulCount = 0UL;
xConnection.sin_addr.s_addr = inet_addr("127.0.0.1"); xConnection.sin_addr.s_addr = inet_addr("127.0.0.1");
xConnection.sin_port = htons( configTCP_PORT_NUMBER ); xConnection.sin_port = htons( configTCP_PORT_NUMBER );
/* Attempt to create a context that uses the TLS V1 server protocol. */ /* Attempt to create a context that uses the TLS 1.2 server protocol. */
xCyaSSL_ClientContext = CyaSSL_CTX_new( CyaTLSv1_client_method() ); xWolfSSL_ClientContext = wolfSSL_CTX_new( wolfTLSv1_2_client_method() );
configASSERT( xCyaSSL_ClientContext ); configASSERT( xWolfSSL_ClientContext );
/* Load the CA certificate. */ /* Load the CA certificate. */
lReturned = CyaSSL_CTX_load_verify_locations( xCyaSSL_ClientContext, "ca-cert.pem", 0 ); lReturned = wolfSSL_CTX_load_verify_locations( xWolfSSL_ClientContext, "ca-cert.pem", 0 );
configASSERT( lReturned == SSL_SUCCESS ); configASSERT( lReturned == SSL_SUCCESS );
for( ;; ) for( ;; )
@ -132,15 +132,15 @@ uint32_t ulCount = 0UL;
/* Connect to the secure server. */ /* Connect to the secure server. */
if( connect( xClientSocket, ( SOCKADDR * ) &xConnection, sizeof( xConnection ) ) == 0 ) if( connect( xClientSocket, ( SOCKADDR * ) &xConnection, sizeof( xConnection ) ) == 0 )
{ {
/* The connect was successful. Create a CyaSSL object to associate /* The connect was successful. Create a wolfSSL object to associate
with this connection. */ with this connection. */
xCyaSSL_Object = CyaSSL_new( xCyaSSL_ClientContext ); xWolfSSL_Object = wolfSSL_new( xWolfSSL_ClientContext );
if( xCyaSSL_Object != NULL ) if( xWolfSSL_Object != NULL )
{ {
/* Associate the created CyaSSL object with the connected /* Associate the created wolfSSL object with the connected
socket. */ socket. */
lReturned = CyaSSL_set_fd( xCyaSSL_Object, xClientSocket ); lReturned = wolfSSL_set_fd( xWolfSSL_Object, xClientSocket );
configASSERT( lReturned == SSL_SUCCESS ); configASSERT( lReturned == SSL_SUCCESS );
/* The count is used to differentiate between messages sent to /* The count is used to differentiate between messages sent to
@ -155,7 +155,7 @@ uint32_t ulCount = 0UL;
/* The next line is the secure equivalent of the standard /* The next line is the secure equivalent of the standard
sockets call: sockets call:
lReturned = send( xClientSocket, cString, strlen( cString ) + 1, 0 ); */ lReturned = send( xClientSocket, cString, strlen( cString ) + 1, 0 ); */
lReturned = CyaSSL_write( xCyaSSL_Object, cString, strlen( cString ) + 1 ); lReturned = wolfSSL_write( xWolfSSL_Object, cString, strlen( cString ) + 1 );
/* Short delay to prevent the messages streaming up the /* Short delay to prevent the messages streaming up the
@ -166,7 +166,7 @@ uint32_t ulCount = 0UL;
} while( ( lReturned != SOCKET_ERROR ) && ( ulCount < 10UL ) ); } while( ( lReturned != SOCKET_ERROR ) && ( ulCount < 10UL ) );
} }
CyaSSL_free( xCyaSSL_Object ); wolfSSL_free( xWolfSSL_Object );
closesocket( xClientSocket ); closesocket( xClientSocket );
/* Delay for a short time before starting over. */ /* Delay for a short time before starting over. */

@ -72,8 +72,8 @@
/* Win32 includes. */ /* Win32 includes. */
#include <WinSock2.h> #include <WinSock2.h>
/* CyaSSL includes. */ /* wolfSSL includes. */
#include "cyassl/ssl.h" #include "wolfssl/ssl.h"
/* Standard includes. */ /* Standard includes. */
#include <stdint.h> #include <stdint.h>
@ -101,10 +101,10 @@ FreeRTOS ports do not have this restriction. */
*/ */
static SOCKET prvOpenServerSocket( void ); static SOCKET prvOpenServerSocket( void );
/* /*
* Prepare the CyaSSL library for use. * Prepare the wolfSSL library for use.
*/ */
static void prvInitialiseCyaSSL( void ); static void prvInitialiseWolfSSL( void );
/* /*
* The task that implements the client side of the connection. * The task that implements the client side of the connection.
@ -113,8 +113,8 @@ extern void vSecureTCPClientTask( void *pvParameters );
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
/* The CyaSSL context for the server. */ /* The wolfSSL context for the server. */
static CYASSL_CTX* xCyaSSL_ServerContext = NULL; static WOLFSSL_CTX* xWolfSSL_ServerContext = NULL;
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -127,19 +127,19 @@ uint8_t cReceivedString[ 60 ];
struct sockaddr_in xClient; struct sockaddr_in xClient;
int xClientAddressLength = sizeof( struct sockaddr_in ); int xClientAddressLength = sizeof( struct sockaddr_in );
SOCKET xListeningSocket, xConnectedSocket; SOCKET xListeningSocket, xConnectedSocket;
CYASSL* xCyaSSL_Object; /* Only one connection is accepted at a time, so only one object is needed at a time. */ WOLFSSL* xWolfSSL_Object; /* Only one connection is accepted at a time, so only one object is needed at a time. */
/* Just to prevent compiler warnings. */ /* Just to prevent compiler warnings. */
( void ) pvParameters; ( void ) pvParameters;
/* Perform the initialisation necessary before CyaSSL can be used. */ /* Perform the initialisation necessary before wolfSSL can be used. */
prvInitialiseCyaSSL(); prvInitialiseWolfSSL();
configASSERT( xCyaSSL_ServerContext ); configASSERT( xWolfSSL_ServerContext );
/* Attempt to open the socket. */ /* Attempt to open the socket. */
xListeningSocket = prvOpenServerSocket(); xListeningSocket = prvOpenServerSocket();
/* Now the server socket has been created and the CyaSSL library has been /* Now the server socket has been created and the wolfSSL library has been
initialised, the task that implements the client side can be created. */ initialised, the task that implements the client side can be created. */
xTaskCreate( vSecureTCPClientTask, "Client", configMINIMAL_STACK_SIZE, NULL, sstSECURE_CLIENT_TASK_PRIORITY, NULL ); xTaskCreate( vSecureTCPClientTask, "Client", configMINIMAL_STACK_SIZE, NULL, sstSECURE_CLIENT_TASK_PRIORITY, NULL );
@ -155,25 +155,25 @@ CYASSL* xCyaSSL_Object; /* Only one connection is accepted at a time, so only on
{ {
printf( "Connection established\r\n" ); printf( "Connection established\r\n" );
/* A connection has been accepted by the server. Create a /* A connection has been accepted by the server. Create a
CyaSSL object for use with the newly connected socket. */ wolfSSL object for use with the newly connected socket. */
xCyaSSL_Object = NULL; xWolfSSL_Object = NULL;
xCyaSSL_Object = CyaSSL_new( xCyaSSL_ServerContext ); xWolfSSL_Object = wolfSSL_new( xWolfSSL_ServerContext );
if( xCyaSSL_Object != NULL ) if( xWolfSSL_Object != NULL )
{ {
/* Associate the created CyaSSL object with the connected /* Associate the created wolfSSL object with the connected
socket. */ socket. */
xReturned = CyaSSL_set_fd( xCyaSSL_Object, xConnectedSocket ); xReturned = wolfSSL_set_fd( xWolfSSL_Object, xConnectedSocket );
configASSERT( xReturned == SSL_SUCCESS ); configASSERT( xReturned == SSL_SUCCESS );
do do
{ {
/* The next line is the secure equivalent to the /* The next line is the secure equivalent to the
standard sockets call: standard sockets call:
lBytes = recv( xConnectedSocket, cReceivedString, 50, 0 ); */ lBytes = recv( xConnectedSocket, cReceivedString, 50, 0 ); */
lBytes = CyaSSL_read( xCyaSSL_Object, cReceivedString, sizeof( cReceivedString ) ); lBytes = wolfSSL_read( xWolfSSL_Object, cReceivedString, sizeof( cReceivedString ) );
/* Print the received characters. */ /* Print the received characters. */
if( lBytes > 0 ) if( lBytes > 0 )
{ {
@ -183,13 +183,13 @@ CYASSL* xCyaSSL_Object; /* Only one connection is accepted at a time, so only on
} while ( lBytes > 0 ); } while ( lBytes > 0 );
/* The connection was closed, close the socket and free the /* The connection was closed, close the socket and free the
CyaSSL object. */ wolfSSL object. */
closesocket( xConnectedSocket ); closesocket( xConnectedSocket );
CyaSSL_free( xCyaSSL_Object ); wolfSSL_free( xWolfSSL_Object );
printf( "Connection closed, back to start\r\n\r\n" ); printf( "Connection closed, back to start\r\n\r\n" );
} }
} }
} }
} }
else else
{ {
@ -252,37 +252,36 @@ SOCKET xSocket = INVALID_SOCKET;
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
static void prvInitialiseCyaSSL( void ) static void prvInitialiseWolfSSL( void )
{ {
int32_t iReturn; int32_t iReturn;
#ifdef DEBUG_CYASSL #ifdef DEBUG_WOLFSSL
{ {
CyaSSL_Debugging_ON(); wolfSSL_Debugging_ON();
} }
#endif #endif
/* Initialise CyaSSL. This must be done before any other CyaSSL functions /* Initialise wolfSSL. This must be done before any other wolfSSL functions
are called. */ are called. */
CyaSSL_Init(); wolfSSL_Init();
/* Attempt to create a context that uses the TLS V1 server protocol. */ /* Attempt to create a context that uses the TLS 1.2 server protocol. */
xCyaSSL_ServerContext = CyaSSL_CTX_new( CyaTLSv1_server_method() ); xWolfSSL_ServerContext = wolfSSL_CTX_new( wolfTLSv1_2_server_method() );
if( xCyaSSL_ServerContext != NULL ) if( xWolfSSL_ServerContext != NULL )
{ {
/* Load the CA certificate. Real applications should ensure that /* Load the CA certificate. Real applications should ensure that
CyaSSL_CTX_load_verify_locations() returns SSL_SUCCESS before wolfSSL_CTX_load_verify_locations() returns SSL_SUCCESS before
proceeding. */ proceeding. */
iReturn = CyaSSL_CTX_load_verify_locations( xCyaSSL_ServerContext, "ca-cert.pem", 0 ); iReturn = wolfSSL_CTX_load_verify_locations( xWolfSSL_ServerContext, "ca-cert.pem", 0 );
configASSERT( iReturn == SSL_SUCCESS ); configASSERT( iReturn == SSL_SUCCESS );
iReturn = CyaSSL_CTX_use_certificate_file( xCyaSSL_ServerContext, "server-cert.pem", SSL_FILETYPE_PEM ); iReturn = wolfSSL_CTX_use_certificate_file( xWolfSSL_ServerContext, "server-cert.pem", SSL_FILETYPE_PEM );
configASSERT( iReturn == SSL_SUCCESS ); configASSERT( iReturn == SSL_SUCCESS );
iReturn = CyaSSL_CTX_use_PrivateKey_file( xCyaSSL_ServerContext, "server-key.pem", SSL_FILETYPE_PEM ); iReturn = wolfSSL_CTX_use_PrivateKey_file( xWolfSSL_ServerContext, "server-key.pem", SSL_FILETYPE_PEM );
configASSERT( iReturn == SSL_SUCCESS ); configASSERT( iReturn == SSL_SUCCESS );
} }
} }

@ -54,7 +54,7 @@
</Midl> </Midl>
<ClCompile> <ClCompile>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>..\..\Source\CyaSSL;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>..\..\Source\wolfSSL;..\..\..\FreeRTOS\Source\include;..\..\..\FreeRTOS\Source\portable\MSVC-MingW;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;SIZEOF_LONG_LONG=8;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0500;WINVER=0x400;_CRT_SECURE_NO_WARNINGS;SIZEOF_LONG_LONG=8;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild> <MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@ -67,6 +67,7 @@
<SuppressStartupBanner>true</SuppressStartupBanner> <SuppressStartupBanner>true</SuppressStartupBanner>
<DisableLanguageExtensions>false</DisableLanguageExtensions> <DisableLanguageExtensions>false</DisableLanguageExtensions>
<DebugInformationFormat>EditAndContinue</DebugInformationFormat> <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
<DisableSpecificWarnings>4206;4214;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile> </ClCompile>
<ResourceCompile> <ResourceCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
@ -128,34 +129,54 @@
</Bscmake> </Bscmake>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\aes.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\aes.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\arc4.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\arc4.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\asn.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\asn.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\coding.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\blake2b.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\des3.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\camellia.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\dh.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\chacha.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\dsa.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\chacha20_poly1305.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\error.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\coding.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\hc128.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\compress.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\hmac.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\curve25519.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\integer.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\des3.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\logging.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\dh.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\md4.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\dsa.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\md5.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ecc.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\memory.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ecc_fp.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\misc.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ed25519.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\pwdbased.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\error.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\rabbit.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\fe_low_mem.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\random.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\fe_operations.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\rsa.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ge_low_mem.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\sha.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ge_operations.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\sha256.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\hash.c" />
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\wc_port.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\hc128.c" />
<ClCompile Include="..\..\Source\CyaSSL\src\internal.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\hmac.c" />
<ClCompile Include="..\..\Source\CyaSSL\src\io.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\integer.c" />
<ClCompile Include="..\..\Source\CyaSSL\src\keys.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\logging.c" />
<ClCompile Include="..\..\Source\CyaSSL\src\ssl.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\md2.c" />
<ClCompile Include="..\..\Source\CyaSSL\src\tls.c" /> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\md4.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\md5.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\memory.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\misc.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\pkcs7.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\poly1305.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\pwdbased.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\rabbit.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\random.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ripemd.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\rsa.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\sha.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\sha256.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\sha512.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\tfm.c" />
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\wc_port.c" />
<ClCompile Include="..\..\Source\wolfSSL\src\internal.c" />
<ClCompile Include="..\..\Source\wolfSSL\src\io.c" />
<ClCompile Include="..\..\Source\wolfSSL\src\keys.c" />
<ClCompile Include="..\..\Source\wolfSSL\src\ssl.c" />
<ClCompile Include="..\..\Source\wolfSSL\src\tls.c" />
<ClCompile Include="..\..\..\FreeRTOS\Source\list.c" /> <ClCompile Include="..\..\..\FreeRTOS\Source\list.c" />
<ClCompile Include="..\..\..\FreeRTOS\Source\portable\MemMang\heap_3.c" /> <ClCompile Include="..\..\..\FreeRTOS\Source\portable\MemMang\heap_3.c" />
<ClCompile Include="..\..\..\FreeRTOS\Source\portable\MSVC-MingW\port.c" /> <ClCompile Include="..\..\..\FreeRTOS\Source\portable\MSVC-MingW\port.c" />

@ -22,10 +22,10 @@
<Filter Include="FreeRTOS+"> <Filter Include="FreeRTOS+">
<UniqueIdentifier>{e5ad4ec7-23dc-4295-8add-2acaee488f5a}</UniqueIdentifier> <UniqueIdentifier>{e5ad4ec7-23dc-4295-8add-2acaee488f5a}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="FreeRTOS+\CyaSSL"> <Filter Include="FreeRTOS+\wolfSSL">
<UniqueIdentifier>{8b481200-a9e5-48a4-98ad-49d2783cd652}</UniqueIdentifier> <UniqueIdentifier>{8b481200-a9e5-48a4-98ad-49d2783cd652}</UniqueIdentifier>
</Filter> </Filter>
<Filter Include="FreeRTOS+\CyaSSL\ctaocrypt"> <Filter Include="FreeRTOS+\wolfSSL\wolfcrypt">
<UniqueIdentifier>{738eaad9-4e49-4309-9074-c3d9e102fb4a}</UniqueIdentifier> <UniqueIdentifier>{738eaad9-4e49-4309-9074-c3d9e102fb4a}</UniqueIdentifier>
</Filter> </Filter>
</ItemGroup> </ItemGroup>
@ -51,83 +51,143 @@
<ClCompile Include="..\..\..\FreeRTOS\Source\tasks.c"> <ClCompile Include="..\..\..\FreeRTOS\Source\tasks.c">
<Filter>FreeRTOS\Source</Filter> <Filter>FreeRTOS\Source</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\src\internal.c"> <ClCompile Include="..\..\Source\wolfSSL\src\internal.c">
<Filter>FreeRTOS+\CyaSSL</Filter> <Filter>FreeRTOS+\wolfSSL</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\src\io.c"> <ClCompile Include="..\..\Source\wolfSSL\src\io.c">
<Filter>FreeRTOS+\CyaSSL</Filter> <Filter>FreeRTOS+\wolfSSL</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\src\keys.c"> <ClCompile Include="..\..\Source\wolfSSL\src\keys.c">
<Filter>FreeRTOS+\CyaSSL</Filter> <Filter>FreeRTOS+\wolfSSL</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\src\ssl.c"> <ClCompile Include="..\..\Source\wolfSSL\src\ssl.c">
<Filter>FreeRTOS+\CyaSSL</Filter> <Filter>FreeRTOS+\wolfSSL</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\src\tls.c"> <ClCompile Include="..\..\Source\wolfSSL\src\tls.c">
<Filter>FreeRTOS+\CyaSSL</Filter> <Filter>FreeRTOS+\wolfSSL</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\aes.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\aes.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\arc4.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\arc4.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\asn.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\asn.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\coding.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\blake2b.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\des3.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\camellia.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\dh.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\chacha.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\dsa.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\chacha20_poly1305.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\hc128.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\coding.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\hmac.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\compress.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\integer.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\curve25519.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\logging.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\des3.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\md4.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\dh.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\md5.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\dsa.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\memory.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ecc.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\misc.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ecc_fp.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\pwdbased.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ed25519.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\rabbit.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\fe_low_mem.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\random.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\fe_operations.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\rsa.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ge_low_mem.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\sha256.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ge_operations.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\sha.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\hash.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\hc128.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\hmac.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\integer.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\logging.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\md2.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\md4.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\md5.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\memory.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\misc.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\pkcs7.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\poly1305.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\pwdbased.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\rabbit.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\random.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\ripemd.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\rsa.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\sha.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\sha256.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\sha512.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile>
<ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\tfm.c">
<Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="SecureTCPServerTask.c"> <ClCompile Include="SecureTCPServerTask.c">
<Filter>Demo App Source</Filter> <Filter>Demo App Source</Filter>
@ -135,11 +195,11 @@
<ClCompile Include="SecureTCPClientTask.c"> <ClCompile Include="SecureTCPClientTask.c">
<Filter>Demo App Source</Filter> <Filter>Demo App Source</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\wc_port.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\wc_port.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="..\..\Source\CyaSSL\ctaocrypt\src\error.c"> <ClCompile Include="..\..\Source\wolfSSL\wolfcrypt\src\error.c">
<Filter>FreeRTOS+\CyaSSL\ctaocrypt</Filter> <Filter>FreeRTOS+\wolfSSL\wolfcrypt</Filter>
</ClCompile> </ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -147,4 +207,4 @@
<Filter>Demo App Source</Filter> <Filter>Demo App Source</Filter>
</ClInclude> </ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -1,40 +1,12 @@
-----BEGIN CERTIFICATE-----
MIIEqjCCA5KgAwIBAgIJAJpBR82hFGKMMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD
VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
Fw0xNDA3MTEwMzIwMDhaFw0xNzA0MDYwMzIwMDhaMIGUMQswCQYDVQQGEwJVUzEQ
MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYD
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAeXgMbXmIkfw6FZz5J2IW8CEf
+n0/oqgyHvfyEal0FnRe3BjK8AAq1QMGJjDxR4P9Mm787apPfQxjYDEvfAy/mWaH
7ScIhi3EM+iYIxz+o9uaSU78WkLvccM/rdxKqNKjHQmsMwR7hvNtAFmjyNvRPHP2
DpDWXkngvzZjCHulsI81O1aMETVJBBzQ57pWxQ0KkY3Wt2IZNBJSTNJtfMU9DxiB
VMv2POWE0tZxFewaNAvwoCF0Q8ijsN/ZZ9rirZNI+KCHvXkU4GIK3/cxLjF70TIq
Cv5dFO/ZZFDkg5G8cA3XiI3ZvIQOxRqzv2QCTlGRpKKFFYOv8FubKElfsrMD2A==
-----END CERTIFICATE-----
Certificate: Certificate:
Data: Data:
Version: 3 (0x2) Version: 3 (0x2)
Serial Number: Serial Number: 15672591315981621815 (0xd9803ac3d2f4da37)
9a:41:47:cd:a1:14:62:8c Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
Validity Validity
Not Before: Jul 11 03:20:08 2014 GMT Not Before: May 7 18:21:01 2015 GMT
Not After : Apr 6 03:20:08 2017 GMT Not After : Jan 31 18:21:01 2018 GMT
Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
Subject Public Key Info: Subject Public Key Info:
Public Key Algorithm: rsaEncryption Public Key Algorithm: rsaEncryption
@ -65,23 +37,50 @@ Certificate:
X509v3 Authority Key Identifier: X509v3 Authority Key Identifier:
keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
serial:9A:41:47:CD:A1:14:62:8C serial:D9:80:3A:C3:D2:F4:DA:37
X509v3 Basic Constraints: X509v3 Basic Constraints:
CA:TRUE CA:TRUE
Signature Algorithm: sha1WithRSAEncryption Signature Algorithm: sha256WithRSAEncryption
79:78:0c:6d:79:88:91:fc:3a:15:9c:f9:27:62:16:f0:21:1f: 7a:af:44:3b:aa:6f:53:42:b2:33:aa:43:5f:56:30:d3:b9:96:
fa:7d:3f:a2:a8:32:1e:f7:f2:11:a9:74:16:74:5e:dc:18:ca: 0b:9a:55:5a:39:2a:0b:4e:e4:2e:f1:95:66:c9:86:36:82:8d:
f0:00:2a:d5:03:06:26:30:f1:47:83:fd:32:6e:fc:ed:aa:4f: 63:7c:4d:a2:ee:48:ba:03:c7:90:d7:a7:c6:74:60:48:5f:31:
7d:0c:63:60:31:2f:7c:0c:bf:99:66:87:ed:27:08:86:2d:c4: a2:f9:5e:3e:c3:82:e1:e5:2f:41:81:83:29:25:79:d1:53:00:
33:e8:98:23:1c:fe:a3:db:9a:49:4e:fc:5a:42:ef:71:c3:3f: 69:3c:ed:0a:30:3b:41:1d:92:a1:2c:a8:9d:2c:e3:23:87:79:
ad:dc:4a:a8:d2:a3:1d:09:ac:33:04:7b:86:f3:6d:00:59:a3: e0:55:6e:91:a8:50:da:46:2f:c2:20:50:3e:2b:47:97:14:b0:
c8:db:d1:3c:73:f6:0e:90:d6:5e:49:e0:bf:36:63:08:7b:a5: 7d:04:ba:45:51:d0:6e:e1:5a:a2:4b:84:9c:4d:cd:85:04:f9:
b0:8f:35:3b:56:8c:11:35:49:04:1c:d0:e7:ba:56:c5:0d:0a: 28:31:82:93:bc:c7:59:49:91:03:e8:df:6a:e4:56:ad:6a:cb:
91:8d:d6:b7:62:19:34:12:52:4c:d2:6d:7c:c5:3d:0f:18:81: 1f:0d:37:e4:5e:bd:e7:9f:d5:ec:9d:3c:18:25:9b:f1:2f:50:
54:cb:f6:3c:e5:84:d2:d6:71:15:ec:1a:34:0b:f0:a0:21:74: 7d:eb:31:cb:f1:63:22:9d:57:fc:f3:84:20:1a:c6:07:87:92:
43:c8:a3:b0:df:d9:67:da:e2:ad:93:48:f8:a0:87:bd:79:14: 26:9e:15:18:59:33:06:dc:fb:b0:b6:76:5d:f1:c1:2f:c8:2f:
e0:62:0a:df:f7:31:2e:31:7b:d1:32:2a:0a:fe:5d:14:ef:d9: 62:9c:c0:d6:de:eb:65:77:f3:5c:a6:c3:88:27:96:75:b4:f4:
64:50:e4:83:91:bc:70:0d:d7:88:8d:d9:bc:84:0e:c5:1a:b3: 54:cd:ff:2d:21:2e:96:f0:07:73:4b:e9:93:92:90:de:62:d9:
bf:64:02:4e:51:91:a4:a2:85:15:83:af:f0:5b:9b:28:49:5f: a3:3b:ac:6e:24:5f:27:4a:b3:94:70:ff:30:17:e7:7e:32:8f:
b2:b3:03:d8 65:b7:75:58
-----BEGIN CERTIFICATE-----
MIIEqjCCA5KgAwIBAgIJANmAOsPS9No3MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
Fw0xNTA1MDcxODIxMDFaFw0xODAxMzExODIxMDFaMIGUMQswCQYDVQQGEwJVUzEQ
MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAL8Myi0Ush6EQlvNOB9K8k11EPG2NZ/fyn0D
mNOs3gNm7irx2LB9bgdUCxCYIU2AyxIg58xP3kV9yXJ3MurKkLtpUhADL6jzlcXx
i2JWG+9nb6QQQZWtCpvjpcCw0nB2UDBbqOgILHztp6J6jTgpHKzH7fJ8lbCVgn1J
XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
/hr8fat6Nj+Y3oR8BWfOahQ4h6nxjLVoy2h/cSAr9aBj9VYvoybSt2+xWhfXOJkI
/pNYb/7DE0kIFgunTWcAUjFnI06Y7VFFHbkE2Qvs2CizS73tNnkCAwEAAaOB/DCB
+TAdBgNVHQ4EFgQUJ45nEXTDJh0/7TNjs6TYHTDl6NUwgckGA1UdIwSBwTCBvoAU
J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkA2YA6w9L02jcwDAYD
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAeq9EO6pvU0KyM6pDX1Yw07mW
C5pVWjkqC07kLvGVZsmGNoKNY3xNou5IugPHkNenxnRgSF8xovlePsOC4eUvQYGD
KSV50VMAaTztCjA7QR2SoSyonSzjI4d54FVukahQ2kYvwiBQPitHlxSwfQS6RVHQ
buFaokuEnE3NhQT5KDGCk7zHWUmRA+jfauRWrWrLHw035F6955/V7J08GCWb8S9Q
fesxy/FjIp1X/POEIBrGB4eSJp4VGFkzBtz7sLZ2XfHBL8gvYpzA1t7rZXfzXKbD
iCeWdbT0VM3/LSEulvAHc0vpk5KQ3mLZozusbiRfJ0qzlHD/MBfnfjKPZbd1WA==
-----END CERTIFICATE-----

@ -101,7 +101,7 @@ int main( void )
const uint32_t ulLongTime_ms = 250UL; const uint32_t ulLongTime_ms = 250UL;
/* Create the TCP server task. This will itself create the client task /* Create the TCP server task. This will itself create the client task
once it has completed the CyaSSL initialisation. */ once it has completed the wolfSSL initialisation. */
xTaskCreate( vSecureTCPServerTask, "Server", configMINIMAL_STACK_SIZE, NULL, mainSECURE_SERVER_TASK_PRIORITY, NULL ); xTaskCreate( vSecureTCPServerTask, "Server", configMINIMAL_STACK_SIZE, NULL, mainSECURE_SERVER_TASK_PRIORITY, NULL );
/* Start the task running. */ /* Start the task running. */

@ -2,11 +2,11 @@ Certificate:
Data: Data:
Version: 3 (0x2) Version: 3 (0x2)
Serial Number: 1 (0x1) Serial Number: 1 (0x1)
Signature Algorithm: sha1WithRSAEncryption Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
Validity Validity
Not Before: Jul 11 17:20:14 2014 GMT Not Before: May 7 18:21:01 2015 GMT
Not After : Apr 6 17:20:14 2017 GMT Not After : Jan 31 18:21:01 2018 GMT
Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Support, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Subject: C=US, ST=Montana, L=Bozeman, O=wolfSSL, OU=Support, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
Subject Public Key Info: Subject Public Key Info:
Public Key Algorithm: rsaEncryption Public Key Algorithm: rsaEncryption
@ -37,32 +37,32 @@ Certificate:
X509v3 Authority Key Identifier: X509v3 Authority Key Identifier:
keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
serial:9A:41:47:CD:A1:14:62:8C serial:D9:80:3A:C3:D2:F4:DA:37
X509v3 Basic Constraints: X509v3 Basic Constraints:
CA:TRUE CA:TRUE
Signature Algorithm: sha1WithRSAEncryption Signature Algorithm: sha256WithRSAEncryption
3d:8c:70:05:5b:62:4b:bf:6c:b6:48:61:01:10:1d:5e:05:ba: 67:c0:2c:a9:43:47:e7:11:14:77:ae:cc:d8:e0:6b:23:82:91:
55:94:2c:ae:59:6f:97:80:5d:6c:86:ec:9a:eb:15:45:44:e4: 63:e8:a8:0d:21:c5:c8:47:97:2f:d5:f3:86:fb:6c:ce:25:f9:
56:f8:75:ca:8a:45:32:f4:c7:e1:fa:f2:98:1c:91:d3:3f:e8: 7c:78:c8:3a:22:68:f2:16:1e:d2:d2:3f:24:04:87:f2:b7:c1:
0e:c9:1b:fa:e1:79:99:67:0e:0d:6b:8a:ec:1a:2c:59:c4:34: 62:63:ba:c5:fa:ae:d2:20:81:1a:d2:0c:ae:26:6b:1b:2b:10:
04:8d:39:77:cd:b5:e9:60:5b:82:bf:34:ce:ed:c6:4f:3f:b4: d3:e1:9a:4e:64:6c:97:db:36:a8:8f:f8:05:63:bf:ba:0d:88:
5c:4d:8a:b4:f4:0a:04:12:a0:56:c1:e1:33:37:a1:54:87:48: 0b:87:46:c9:e4:64:e3:d7:bd:b8:2d:d5:c1:c3:c4:db:55:68:
e9:81:c2:0f:8f:6f:d3:52:4c:4c:32:4c:6b:9f:3a:04:8f:77: dc:a3:7a:40:b9:a9:f6:04:4a:22:cf:98:76:1c:e4:a3:ff:79:
5d:ad:dc:3d:2b:f2:c9:df:3c:60:5d:d8:fc:86:72:7c:3d:d0: 19:96:57:63:07:6f:f6:32:77:16:50:9b:e3:34:18:d4:eb:be:
84:4b:8c:df:26:43:fe:c0:cc:5b:e1:36:b3:3d:32:28:a3:ef: fd:b6:6f:e3:c7:f6:85:bf:ac:32:ad:98:57:be:13:92:44:10:
0c:20:d6:b1:50:39:d6:67:a9:8b:84:bc:92:34:eb:19:23:e8: a5:f3:ae:e2:66:da:44:a9:94:71:3f:d0:2f:20:59:87:e4:5a:
10:8f:ea:bd:18:8c:93:27:3c:74:75:8e:58:04:fa:2a:74:44: 40:ee:d2:e4:0c:ce:25:94:dc:0f:fe:38:e0:41:52:34:5c:bb:
7d:fc:4d:39:df:54:17:ba:78:e1:5d:6a:70:d3:7c:a2:80:81: c3:db:c1:5f:76:c3:5d:0e:32:69:2b:9d:01:ed:50:1b:4f:77:
e6:19:51:91:c3:44:51:ec:bb:88:a9:53:e1:d7:a9:8c:28:f4: a9:a9:d8:71:30:cb:2e:2c:70:00:ab:78:4b:d7:15:d9:17:f8:
21:1c:42:51:09:b4:12:6d:a0:d6:25:09:85:c6:2a:0c:af:a7: 64:b2:f7:3a:da:e1:0b:8b:0a:e1:4e:b1:03:46:14:ca:94:e3:
58:e6:52:8b 44:77:d7:59
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIEnjCCA4agAwIBAgIBATANBgkqhkiG9w0BAQUFADCBlDELMAkGA1UEBhMCVVMx MIIEnjCCA4agAwIBAgIBATANBgkqhkiG9w0BAQsFADCBlDELMAkGA1UEBhMCVVMx
EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh EDAOBgNVBAgMB01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xETAPBgNVBAoMCFNh
d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz d3Rvb3RoMRMwEQYDVQQLDApDb25zdWx0aW5nMRgwFgYDVQQDDA93d3cud29sZnNz
bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTQwNzEx bC5jb20xHzAdBgkqhkiG9w0BCQEWEGluZm9Ad29sZnNzbC5jb20wHhcNMTUwNTA3
MTcyMDE0WhcNMTcwNDA2MTcyMDE0WjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM MTgyMTAxWhcNMTgwMTMxMTgyMTAxWjCBkDELMAkGA1UEBhMCVVMxEDAOBgNVBAgM
B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxEDAO B01vbnRhbmExEDAOBgNVBAcMB0JvemVtYW4xEDAOBgNVBAoMB3dvbGZTU0wxEDAO
BgNVBAsMB1N1cHBvcnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG BgNVBAsMB1N1cHBvcnQxGDAWBgNVBAMMD3d3dy53b2xmc3NsLmNvbTEfMB0GCSqG
SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP SIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
@ -76,24 +76,23 @@ sxEyyZKYhOLJ+NA7bgNCyh8OjjwwgckGA1UdIwSBwTCBvoAUJ45nEXTDJh0/7TNj
s6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5h s6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdNb250YW5h
MRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwK MRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290aDETMBEGA1UECwwK
Q29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcN Q29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29tMR8wHQYJKoZIhvcN
AQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYDVR0TBAUwAwEB/zAN AQkBFhBpbmZvQHdvbGZzc2wuY29tggkA2YA6w9L02jcwDAYDVR0TBAUwAwEB/zAN
BgkqhkiG9w0BAQUFAAOCAQEAPYxwBVtiS79stkhhARAdXgW6VZQsrllvl4BdbIbs BgkqhkiG9w0BAQsFAAOCAQEAZ8AsqUNH5xEUd67M2OBrI4KRY+ioDSHFyEeXL9Xz
musVRUTkVvh1yopFMvTH4frymByR0z/oDskb+uF5mWcODWuK7BosWcQ0BI05d821 hvtsziX5fHjIOiJo8hYe0tI/JASH8rfBYmO6xfqu0iCBGtIMriZrGysQ0+GaTmRs
6WBbgr80zu3GTz+0XE2KtPQKBBKgVsHhMzehVIdI6YHCD49v01JMTDJMa586BI93 l9s2qI/4BWO/ug2IC4dGyeRk49e9uC3VwcPE21Vo3KN6QLmp9gRKIs+Ydhzko/95
Xa3cPSvyyd88YF3Y/IZyfD3QhEuM3yZD/sDMW+E2sz0yKKPvDCDWsVA51mepi4S8 GZZXYwdv9jJ3FlCb4zQY1Ou+/bZv48f2hb+sMq2YV74TkkQQpfOu4mbaRKmUcT/Q
kjTrGSPoEI/qvRiMkyc8dHWOWAT6KnREffxNOd9UF7p44V1qcNN8ooCB5hlRkcNE LyBZh+RaQO7S5AzOJZTcD/444EFSNFy7w9vBX3bDXQ4yaSudAe1QG093qanYcTDL
Uey7iKlT4depjCj0IRxCUQm0Em2g1iUJhcYqDK+nWOZSiw== LixwAKt4S9cV2Rf4ZLL3OtrhC4sK4U6xA0YUypTjRHfXWQ==
-----END CERTIFICATE----- -----END CERTIFICATE-----
Certificate: Certificate:
Data: Data:
Version: 3 (0x2) Version: 3 (0x2)
Serial Number: Serial Number: 15672591315981621815 (0xd9803ac3d2f4da37)
9a:41:47:cd:a1:14:62:8c Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm: sha1WithRSAEncryption
Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
Validity Validity
Not Before: Jul 11 03:20:08 2014 GMT Not Before: May 7 18:21:01 2015 GMT
Not After : Apr 6 03:20:08 2017 GMT Not After : Jan 31 18:21:01 2018 GMT
Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com Subject: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.wolfssl.com/emailAddress=info@wolfssl.com
Subject Public Key Info: Subject Public Key Info:
Public Key Algorithm: rsaEncryption Public Key Algorithm: rsaEncryption
@ -124,32 +123,32 @@ Certificate:
X509v3 Authority Key Identifier: X509v3 Authority Key Identifier:
keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5 keyid:27:8E:67:11:74:C3:26:1D:3F:ED:33:63:B3:A4:D8:1D:30:E5:E8:D5
DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com DirName:/C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.wolfssl.com/emailAddress=info@wolfssl.com
serial:9A:41:47:CD:A1:14:62:8C serial:D9:80:3A:C3:D2:F4:DA:37
X509v3 Basic Constraints: X509v3 Basic Constraints:
CA:TRUE CA:TRUE
Signature Algorithm: sha1WithRSAEncryption Signature Algorithm: sha256WithRSAEncryption
79:78:0c:6d:79:88:91:fc:3a:15:9c:f9:27:62:16:f0:21:1f: 7a:af:44:3b:aa:6f:53:42:b2:33:aa:43:5f:56:30:d3:b9:96:
fa:7d:3f:a2:a8:32:1e:f7:f2:11:a9:74:16:74:5e:dc:18:ca: 0b:9a:55:5a:39:2a:0b:4e:e4:2e:f1:95:66:c9:86:36:82:8d:
f0:00:2a:d5:03:06:26:30:f1:47:83:fd:32:6e:fc:ed:aa:4f: 63:7c:4d:a2:ee:48:ba:03:c7:90:d7:a7:c6:74:60:48:5f:31:
7d:0c:63:60:31:2f:7c:0c:bf:99:66:87:ed:27:08:86:2d:c4: a2:f9:5e:3e:c3:82:e1:e5:2f:41:81:83:29:25:79:d1:53:00:
33:e8:98:23:1c:fe:a3:db:9a:49:4e:fc:5a:42:ef:71:c3:3f: 69:3c:ed:0a:30:3b:41:1d:92:a1:2c:a8:9d:2c:e3:23:87:79:
ad:dc:4a:a8:d2:a3:1d:09:ac:33:04:7b:86:f3:6d:00:59:a3: e0:55:6e:91:a8:50:da:46:2f:c2:20:50:3e:2b:47:97:14:b0:
c8:db:d1:3c:73:f6:0e:90:d6:5e:49:e0:bf:36:63:08:7b:a5: 7d:04:ba:45:51:d0:6e:e1:5a:a2:4b:84:9c:4d:cd:85:04:f9:
b0:8f:35:3b:56:8c:11:35:49:04:1c:d0:e7:ba:56:c5:0d:0a: 28:31:82:93:bc:c7:59:49:91:03:e8:df:6a:e4:56:ad:6a:cb:
91:8d:d6:b7:62:19:34:12:52:4c:d2:6d:7c:c5:3d:0f:18:81: 1f:0d:37:e4:5e:bd:e7:9f:d5:ec:9d:3c:18:25:9b:f1:2f:50:
54:cb:f6:3c:e5:84:d2:d6:71:15:ec:1a:34:0b:f0:a0:21:74: 7d:eb:31:cb:f1:63:22:9d:57:fc:f3:84:20:1a:c6:07:87:92:
43:c8:a3:b0:df:d9:67:da:e2:ad:93:48:f8:a0:87:bd:79:14: 26:9e:15:18:59:33:06:dc:fb:b0:b6:76:5d:f1:c1:2f:c8:2f:
e0:62:0a:df:f7:31:2e:31:7b:d1:32:2a:0a:fe:5d:14:ef:d9: 62:9c:c0:d6:de:eb:65:77:f3:5c:a6:c3:88:27:96:75:b4:f4:
64:50:e4:83:91:bc:70:0d:d7:88:8d:d9:bc:84:0e:c5:1a:b3: 54:cd:ff:2d:21:2e:96:f0:07:73:4b:e9:93:92:90:de:62:d9:
bf:64:02:4e:51:91:a4:a2:85:15:83:af:f0:5b:9b:28:49:5f: a3:3b:ac:6e:24:5f:27:4a:b3:94:70:ff:30:17:e7:7e:32:8f:
b2:b3:03:d8 65:b7:75:58
-----BEGIN CERTIFICATE----- -----BEGIN CERTIFICATE-----
MIIEqjCCA5KgAwIBAgIJAJpBR82hFGKMMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD MIIEqjCCA5KgAwIBAgIJANmAOsPS9No3MA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G VQQGEwJVUzEQMA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8G
A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3 A1UECgwIU2F3dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3
dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe dy53b2xmc3NsLmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTAe
Fw0xNDA3MTEwMzIwMDhaFw0xNzA0MDYwMzIwMDhaMIGUMQswCQYDVQQGEwJVUzEQ Fw0xNTA1MDcxODIxMDFaFw0xODAxMzExODIxMDFaMIGUMQswCQYDVQQGEwJVUzEQ
MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3 MA4GA1UECAwHTW9udGFuYTEQMA4GA1UEBwwHQm96ZW1hbjERMA8GA1UECgwIU2F3
dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns dG9vdGgxEzARBgNVBAsMCkNvbnN1bHRpbmcxGDAWBgNVBAMMD3d3dy53b2xmc3Ns
LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI LmNvbTEfMB0GCSqGSIb3DQEJARYQaW5mb0B3b2xmc3NsLmNvbTCCASIwDQYJKoZI
@ -163,11 +162,11 @@ XDjNdyXvvYB1U5Q8PcpjW58VtdMdEy8Z0TzbdjrMuH3J5cLX2kBv2CHccxtCLVOc
J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD J45nEXTDJh0/7TNjs6TYHTDl6NWhgZqkgZcwgZQxCzAJBgNVBAYTAlVTMRAwDgYD
VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290 VQQIDAdNb250YW5hMRAwDgYDVQQHDAdCb3plbWFuMREwDwYDVQQKDAhTYXd0b290
aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t aDETMBEGA1UECwwKQ29uc3VsdGluZzEYMBYGA1UEAwwPd3d3LndvbGZzc2wuY29t
MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkAmkFHzaEUYowwDAYD MR8wHQYJKoZIhvcNAQkBFhBpbmZvQHdvbGZzc2wuY29tggkA2YA6w9L02jcwDAYD
VR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAeXgMbXmIkfw6FZz5J2IW8CEf VR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAeq9EO6pvU0KyM6pDX1Yw07mW
+n0/oqgyHvfyEal0FnRe3BjK8AAq1QMGJjDxR4P9Mm787apPfQxjYDEvfAy/mWaH C5pVWjkqC07kLvGVZsmGNoKNY3xNou5IugPHkNenxnRgSF8xovlePsOC4eUvQYGD
7ScIhi3EM+iYIxz+o9uaSU78WkLvccM/rdxKqNKjHQmsMwR7hvNtAFmjyNvRPHP2 KSV50VMAaTztCjA7QR2SoSyonSzjI4d54FVukahQ2kYvwiBQPitHlxSwfQS6RVHQ
DpDWXkngvzZjCHulsI81O1aMETVJBBzQ57pWxQ0KkY3Wt2IZNBJSTNJtfMU9DxiB buFaokuEnE3NhQT5KDGCk7zHWUmRA+jfauRWrWrLHw035F6955/V7J08GCWb8S9Q
VMv2POWE0tZxFewaNAvwoCF0Q8ijsN/ZZ9rirZNI+KCHvXkU4GIK3/cxLjF70TIq fesxy/FjIp1X/POEIBrGB4eSJp4VGFkzBtz7sLZ2XfHBL8gvYpzA1t7rZXfzXKbD
Cv5dFO/ZZFDkg5G8cA3XiI3ZvIQOxRqzv2QCTlGRpKKFFYOv8FubKElfsrMD2A== iCeWdbT0VM3/LSEulvAHc0vpk5KQ3mLZozusbiRfJ0qzlHD/MBfnfjKPZbd1WA==
-----END CERTIFICATE----- -----END CERTIFICATE-----

Loading…
Cancel
Save