Compile error when build with mbedtls-3.x
- A missing ; causes build error: (in master tree)
libssh/src/pki_mbedcrypto.c:1015:68: error: expected ';' before 'if'
1015 | rc = mbedtls_rsa_export_crt(rsa, NULL, NULL, &IQMP)
- libssh/src/libmbedcrypto.c:122:47: error: 'mbedtls_md_context_t' has no member named 'md_info'
122 | *len = (unsigned int)mbedtls_md_get_size(c->md_info);
| ^~
Below change fixes the build issue: (Both master and stable-0.10 branch need fix)
diff --git a/src/libmbedcrypto.c b/src/libmbedcrypto.c
index 55951764..8fb36e53 100644
--- a/src/libmbedcrypto.c
+++ b/src/libmbedcrypto.c
@@ -119,7 +119,7 @@ int hmac_update(HMACCTX c, const void *data, size_t len)
int hmac_final(HMACCTX c, unsigned char *hashmacbuf, size_t *len)
{
int rc;
- *len = (unsigned int)mbedtls_md_get_size(c->md_info);
+ *len = (unsigned int)mbedtls_md_get_size(c->MBEDTLS_PRIVATE(md_info));
rc = !mbedtls_md_hmac_finish(c, hashmacbuf);
mbedtls_md_free(c);
SAFE_FREE(c);