Add build version to the output of ssl_client2
Signed-off-by: Yanray Wang <yanray.wang@arm.com>
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index be474d4..451e232 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -25,6 +25,10 @@
#include "test/psa_crypto_helpers.h"
#endif /* MBEDTLS_USE_PSA_CRYPTO || MBEDTLS_SSL_PROTO_TLS1_3 */
+#if defined(MBEDTLS_VERSION_C)
+#include "mbedtls/build_info.h"
+#endif /* MBEDTLS_VERSION_C */
+
#if defined(MBEDTLS_SSL_TEST_IMPOSSIBLE)
int main( void )
{
@@ -360,6 +364,14 @@
#define USAGE_TLS1_3_KEY_EXCHANGE_MODES ""
#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
+#if defined(MBEDTLS_VERSION_C)
+#define USAGE_BUILD_VERSION \
+ " build_version=%%d default: none (disabled)\n" \
+ " option: 1 (print the build version only a stop)\n"
+#else
+#define USAGE_BUILD_VERSION ""
+#endif /* MBEDTLS_VERSION_C */
+
/* USAGE is arbitrarily split to stay under the portable string literal
* length limit: 4095 bytes in C99. */
#define USAGE1 \
@@ -375,6 +387,7 @@
" application data message is sent followed by\n" \
" a second non-empty message before attempting\n" \
" to read a response from the server\n" \
+ USAGE_BUILD_VERSION \
" debug_level=%%d default: 0 (disabled)\n" \
" nbio=%%d default: 0 (blocking I/O)\n" \
" options: 1 (non-blocking), 2 (added delays)\n" \
@@ -984,6 +997,18 @@
if( opt.debug_level < 0 || opt.debug_level > 65535 )
goto usage;
}
+#if defined(MBEDTLS_VERSION_C)
+ else if( strcmp( p, "build_version" ) == 0 )
+ {
+ if( strcmp( q, "1" ) == 0 )
+ {
+ mbedtls_printf( "build version: %s (build %u)\n",
+ MBEDTLS_VERSION_STRING,
+ MBEDTLS_VERSION_NUMBER );
+ goto exit;
+ }
+ }
+#endif /* MBEDTLS_VERSION_C */
else if( strcmp( p, "context_crt_cb" ) == 0 )
{
opt.context_crt_cb = atoi( q );
@@ -2454,6 +2479,11 @@
}
}
+#if defined(MBEDTLS_VERSION_C)
+ mbedtls_printf( "build version: %s (build %u)\n",
+ MBEDTLS_VERSION_STRING, MBEDTLS_VERSION_NUMBER );
+#endif /* MBEDTLS_VERSION_C */
+
#if defined(MBEDTLS_X509_CRT_PARSE_C)
/*
* 5. Verify the server certificate