debug: add support for printing the new EC raw format
Signed-off-by: Valerio Setti <valerio.setti@nordicsemi.no>
This commit is contained in:
parent
a1b8af6869
commit
7ca7b90bc7
1 changed files with 51 additions and 0 deletions
|
@ -194,6 +194,52 @@ void mbedtls_debug_print_ecp(const mbedtls_ssl_context *ssl, int level,
|
||||||
}
|
}
|
||||||
#endif /* MBEDTLS_ECP_LIGHT */
|
#endif /* MBEDTLS_ECP_LIGHT */
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
|
||||||
|
void mbedtls_debug_print_psa_ec(const mbedtls_ssl_context *ssl, int level,
|
||||||
|
const char *file, int line,
|
||||||
|
const char *text, const mbedtls_pk_context *pk)
|
||||||
|
{
|
||||||
|
char str[DEBUG_BUF_SIZE];
|
||||||
|
mbedtls_mpi mpi;
|
||||||
|
const uint8_t *mpi_start;
|
||||||
|
size_t mpi_len;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (NULL == ssl ||
|
||||||
|
NULL == ssl->conf ||
|
||||||
|
NULL == ssl->conf->f_dbg ||
|
||||||
|
level > debug_threshold) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* For the description of pk->pk_raw content please refer to the description
|
||||||
|
* psa_export_public_key() function. */
|
||||||
|
mpi_len = (pk->pub_raw_len - 1)/2;
|
||||||
|
|
||||||
|
/* X coordinate */
|
||||||
|
mbedtls_mpi_init(&mpi);
|
||||||
|
mpi_start = pk->pub_raw + 1;
|
||||||
|
ret = mbedtls_mpi_read_binary(&mpi, mpi_start, mpi_len);
|
||||||
|
if (ret != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mbedtls_snprintf(str, sizeof(str), "%s(X)", text);
|
||||||
|
mbedtls_debug_print_mpi(ssl, level, file, line, str, &mpi);
|
||||||
|
mbedtls_mpi_free(&mpi);
|
||||||
|
|
||||||
|
/* Y coordinate */
|
||||||
|
mbedtls_mpi_init(&mpi);
|
||||||
|
mpi_start = mpi_start + mpi_len;
|
||||||
|
ret = mbedtls_mpi_read_binary(&mpi, mpi_start, mpi_len);
|
||||||
|
if (ret != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mbedtls_snprintf(str, sizeof(str), "%s(Y)", text);
|
||||||
|
mbedtls_debug_print_mpi(ssl, level, file, line, str, &mpi);
|
||||||
|
mbedtls_mpi_free(&mpi);
|
||||||
|
}
|
||||||
|
#endif /* MBEDTLS_PK_USE_PSA_EC_DATA */
|
||||||
|
|
||||||
#if defined(MBEDTLS_BIGNUM_C)
|
#if defined(MBEDTLS_BIGNUM_C)
|
||||||
void mbedtls_debug_print_mpi(const mbedtls_ssl_context *ssl, int level,
|
void mbedtls_debug_print_mpi(const mbedtls_ssl_context *ssl, int level,
|
||||||
const char *file, int line,
|
const char *file, int line,
|
||||||
|
@ -277,6 +323,11 @@ static void debug_print_pk(const mbedtls_ssl_context *ssl, int level,
|
||||||
if (items[i].type == MBEDTLS_PK_DEBUG_ECP) {
|
if (items[i].type == MBEDTLS_PK_DEBUG_ECP) {
|
||||||
mbedtls_debug_print_ecp(ssl, level, file, line, name, items[i].value);
|
mbedtls_debug_print_ecp(ssl, level, file, line, name, items[i].value);
|
||||||
} else
|
} else
|
||||||
|
#endif
|
||||||
|
#if defined(MBEDTLS_PK_USE_PSA_EC_DATA)
|
||||||
|
if (items[i].type == MBEDTLS_PK_DEBUG_PSA_EC) {
|
||||||
|
mbedtls_debug_print_psa_ec(ssl, level, file, line, name, items[i].value);
|
||||||
|
} else
|
||||||
#endif
|
#endif
|
||||||
{ debug_send_line(ssl, level, file, line,
|
{ debug_send_line(ssl, level, file, line,
|
||||||
"should not happen\n"); }
|
"should not happen\n"); }
|
||||||
|
|
Loading…
Reference in a new issue