Remove the generic file read functions and simply the early data read
Signed-off-by: Xiaokang Qian <xiaokang.qian@arm.com>
diff --git a/programs/ssl/ssl_client2.c b/programs/ssl/ssl_client2.c
index 848fa12..297da65 100644
--- a/programs/ssl/ssl_client2.c
+++ b/programs/ssl/ssl_client2.c
@@ -718,47 +718,6 @@
return ret;
}
-#if defined(MBEDTLS_SSL_EARLY_DATA)
-
-#define MBEDTLS_ERR_FILE_IO_ERROR -2
-
-static int ssl_read_file_text(const char *path,
- unsigned char **buffer, size_t *length)
-{
- FILE *f;
- long size;
-
- if ((f = fopen(path, "rb")) == NULL) {
- return MBEDTLS_ERR_FILE_IO_ERROR;
- }
-
- fseek(f, 0, SEEK_END);
- if ((size = ftell(f)) == -1) {
- fclose(f);
- return MBEDTLS_ERR_FILE_IO_ERROR;
- }
- fseek(f, 0, SEEK_SET);
-
- *length = (size_t) size;
- if (*length + 1 == 0 ||
- (*buffer = mbedtls_calloc(1, *length + 1)) == NULL) {
- fclose(f);
- return MBEDTLS_ERR_SSL_ALLOC_FAILED;
- }
-
- if (fread(*buffer, 1, *length, f) != *length) {
- fclose(f);
- return MBEDTLS_ERR_FILE_IO_ERROR;
- }
-
- fclose(f);
-
- (*buffer)[*length] = '\0';
-
- return 0;
-}
-#endif /* MBEDTLS_SSL_EARLY_DATA */
-
int main(int argc, char *argv[])
{
int ret = 0, len, tail_len, i, written, frags, retry_left;
@@ -784,10 +743,6 @@
size_t cid_renego_len = 0;
#endif
-#if defined(MBEDTLS_SSL_EARLY_DATA)
- unsigned char *early_data = NULL;
-#endif /* MBEDTLS_SSL_EARLY_DATA */
-
#if defined(MBEDTLS_SSL_ALPN)
const char *alpn_list[ALPN_LIST_SIZE];
#endif
@@ -2011,11 +1966,18 @@
#if defined(MBEDTLS_SSL_EARLY_DATA)
int early_data_enabled = MBEDTLS_SSL_EARLY_DATA_DISABLED;
- size_t early_data_len;
- if (strlen(opt.early_data_file) > 0 &&
- ssl_read_file_text(opt.early_data_file,
- &early_data, &early_data_len) == 0) {
- early_data_enabled = MBEDTLS_SSL_EARLY_DATA_ENABLED;
+ FILE *early_data_fp = NULL;
+ size_t early_data_len = 0;
+ if (strlen(opt.early_data_file) > 0) {
+ if ((early_data_fp = fopen(opt.early_data_file, "rb")) == NULL) {
+ mbedtls_printf("failed\n ! Cannot open '%s' for reading.\n",
+ opt.early_data_file);
+ goto exit;
+ }
+ early_data_len = fread(buf, 1, sizeof(buf), early_data_fp);
+ if (early_data_len > 0) {
+ early_data_enabled = MBEDTLS_SSL_EARLY_DATA_ENABLED;
+ }
}
mbedtls_ssl_conf_early_data(&conf, early_data_enabled);
#endif /* MBEDTLS_SSL_EARLY_DATA */
@@ -3076,10 +3038,9 @@
mbedtls_ssl_session_free(&saved_session);
#if defined(MBEDTLS_SSL_EARLY_DATA)
- if (early_data != NULL) {
- mbedtls_platform_zeroize(early_data, early_data_len);
+ if (early_data_fp != NULL) {
+ fclose(early_data_fp);
}
- mbedtls_free(early_data);
#endif
if (session_data != NULL) {