Jelajahi Sumber

Оптимизация mbedtls

TelenkovDmitry 7 tahun lalu
induk
melakukan
b43c8df6f5

+ 4 - 0
modules/HTTP_Server/http_server.c

@@ -2901,6 +2901,7 @@ void ssl_server(void *pvParameters)
   SSL_SERVER_STATE ssl_state = SSL_ACCEPT;
   char* sendPtr;
   int ret;
+  TickType_t handshakeTime = 0;
   
 #ifdef MBEDTLS_MEMORY_BUFFER_ALLOC_C
   mbedtls_memory_buffer_alloc_init(malloc_buf, sizeof(malloc_buf));
@@ -3008,6 +3009,7 @@ void ssl_server(void *pvParameters)
     case SSL_HANDSHAKE :
       
       mbedtls_printf( "  . Performing the SSL/TLS handshake..." );
+      handshakeTime = xTaskGetTickCount();
       while( ( ret = mbedtls_ssl_handshake( &ssl ) ) != 0 )
       {
         if( ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE )
@@ -3022,6 +3024,7 @@ void ssl_server(void *pvParameters)
         ssl_state = SSL_ERROR;
       else {
         mbedtls_printf( " ok\r\n" );
+        printf("HANDSHAKE_TIME: %d ms\r\n", xTaskGetTickCount() - handshakeTime);
         ssl_state = SSL_READ;
       }
       
@@ -3060,6 +3063,7 @@ void ssl_server(void *pvParameters)
     case SSL_ERROR :
       //mbedtls_net_free(&client_fd);
       //mbedtls_ssl_free( &ssl );
+      mbedtls_ssl_close_notify(&ssl);
       mbedtls_net_free(&client_fd);
       ssl_state = SSL_ACCEPT;
     break;

+ 2 - 6
modules/mbedtls_api/mbedtls_config.h

@@ -48,7 +48,6 @@
 
 /* mbed TLS feature support */
 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
-#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
 #define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
 
 #define MBEDTLS_SSL_PROTO_TLS1_2
@@ -118,12 +117,10 @@
  * is the "mbedtls_platform_entropy_poll" source, but you may want to add other ones.
  * Minimum is 2 for the entropy test suite.
  */
-#define MBEDTLS_ENTROPY_MAX_SOURCES 2
+#define MBEDTLS_ENTROPY_MAX_SOURCES 1
 
 /* Save ROM and a few bytes of RAM by specifying our own ciphersuite list */
 //#define MBEDTLS_SSL_CIPHERSUITES                        \
-//    MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,    \
-//    MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
       
 /*
  * Save RAM at the expense of interoperability: do this only if you control
@@ -134,10 +131,9 @@
 #define MBEDTLS_SSL_MAX_CONTENT_LEN             2048
 
 #define MBEDTLS_CAMELLIA_C
-#define MBEDTLS_BLOWFISH_C
 
 #define MBEDTLS_PLATFORM_C
-#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
+//#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
 #define MBEDTLS_PLATFORM_MEMORY
 //#define MBEDTLS_MEMORY_DEBUG
 #define MBEDTLS_SELF_TEST