]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fix mbedtls version 3 compatibility (#2602)
authorJames Hilliard <james.hilliard1@gmail.com>
Thu, 15 May 2025 10:56:59 +0000 (04:56 -0600)
committerGitHub <noreply@github.com>
Thu, 15 May 2025 10:56:59 +0000 (12:56 +0200)
We need to use the new API for mbedtls 3 compatibility

Fixes #2025

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
libarchive/archive_digest.c

index 9815ea3e93906ef5d28d9e4792e311f9845e5b8d..45fc36af11451008c3d966c53a9f96caa6848024 100644 (file)
@@ -260,7 +260,11 @@ static int
 __archive_md5init(archive_md5_ctx *ctx)
 {
   mbedtls_md5_init(ctx);
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_md5_starts(ctx) == 0)
+#else
   if (mbedtls_md5_starts_ret(ctx) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -270,7 +274,11 @@ static int
 __archive_md5update(archive_md5_ctx *ctx, const void *indata,
     size_t insize)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_md5_update(ctx, indata, insize) == 0)
+#else
   if (mbedtls_md5_update_ret(ctx, indata, insize) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -279,7 +287,11 @@ __archive_md5update(archive_md5_ctx *ctx, const void *indata,
 static int
 __archive_md5final(archive_md5_ctx *ctx, void *md)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_md5_finish(ctx, md) == 0) {
+#else
   if (mbedtls_md5_finish_ret(ctx, md) == 0) {
+#endif
     mbedtls_md5_free(ctx);
     return (ARCHIVE_OK);
   } else {
@@ -431,7 +443,11 @@ static int
 __archive_ripemd160init(archive_rmd160_ctx *ctx)
 {
   mbedtls_ripemd160_init(ctx);
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_ripemd160_starts(ctx) == 0)
+#else
   if (mbedtls_ripemd160_starts_ret(ctx) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -441,7 +457,11 @@ static int
 __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
     size_t insize)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_ripemd160_update(ctx, indata, insize) == 0)
+#else
   if (mbedtls_ripemd160_update_ret(ctx, indata, insize) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -450,7 +470,11 @@ __archive_ripemd160update(archive_rmd160_ctx *ctx, const void *indata,
 static int
 __archive_ripemd160final(archive_rmd160_ctx *ctx, void *md)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_ripemd160_finish(ctx, md) == 0) {
+#else
   if (mbedtls_ripemd160_finish_ret(ctx, md) == 0) {
+#endif
     mbedtls_ripemd160_free(ctx);
     return (ARCHIVE_OK);
   } else {
@@ -647,7 +671,11 @@ static int
 __archive_sha1init(archive_sha1_ctx *ctx)
 {
   mbedtls_sha1_init(ctx);
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha1_starts(ctx) == 0)
+#else
   if (mbedtls_sha1_starts_ret(ctx) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -657,7 +685,11 @@ static int
 __archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
     size_t insize)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha1_update(ctx, indata, insize) == 0)
+#else
   if (mbedtls_sha1_update_ret(ctx, indata, insize) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -666,7 +698,11 @@ __archive_sha1update(archive_sha1_ctx *ctx, const void *indata,
 static int
 __archive_sha1final(archive_sha1_ctx *ctx, void *md)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha1_finish(ctx, md) == 0) {
+#else
   if (mbedtls_sha1_finish_ret(ctx, md) == 0) {
+#endif
     mbedtls_sha1_free(ctx);
     return (ARCHIVE_OK);
   } else {
@@ -915,7 +951,11 @@ static int
 __archive_sha256init(archive_sha256_ctx *ctx)
 {
   mbedtls_sha256_init(ctx);
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha256_starts(ctx, 0) == 0)
+#else
   if (mbedtls_sha256_starts_ret(ctx, 0) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -925,7 +965,11 @@ static int
 __archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
     size_t insize)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha256_update(ctx, indata, insize) == 0)
+#else
   if (mbedtls_sha256_update_ret(ctx, indata, insize) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -934,7 +978,11 @@ __archive_sha256update(archive_sha256_ctx *ctx, const void *indata,
 static int
 __archive_sha256final(archive_sha256_ctx *ctx, void *md)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha256_finish(ctx, md) == 0) {
+#else
   if (mbedtls_sha256_finish_ret(ctx, md) == 0) {
+#endif
     mbedtls_sha256_free(ctx);
     return (ARCHIVE_OK);
   } else {
@@ -1155,7 +1203,11 @@ static int
 __archive_sha384init(archive_sha384_ctx *ctx)
 {
   mbedtls_sha512_init(ctx);
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha512_starts(ctx, 1) == 0)
+#else
   if (mbedtls_sha512_starts_ret(ctx, 1) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -1165,7 +1217,11 @@ static int
 __archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
     size_t insize)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha512_update(ctx, indata, insize) == 0)
+#else
   if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -1174,7 +1230,11 @@ __archive_sha384update(archive_sha384_ctx *ctx, const void *indata,
 static int
 __archive_sha384final(archive_sha384_ctx *ctx, void *md)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha512_finish(ctx, md) == 0) {
+#else
   if (mbedtls_sha512_finish_ret(ctx, md) == 0) {
+#endif
     mbedtls_sha512_free(ctx);
     return (ARCHIVE_OK);
   } else {
@@ -1419,7 +1479,11 @@ static int
 __archive_sha512init(archive_sha512_ctx *ctx)
 {
   mbedtls_sha512_init(ctx);
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha512_starts(ctx, 0) == 0)
+#else
   if (mbedtls_sha512_starts_ret(ctx, 0) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -1429,7 +1493,11 @@ static int
 __archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
     size_t insize)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha512_update(ctx, indata, insize) == 0)
+#else
   if (mbedtls_sha512_update_ret(ctx, indata, insize) == 0)
+#endif
     return (ARCHIVE_OK);
   else
     return (ARCHIVE_FATAL);
@@ -1438,7 +1506,11 @@ __archive_sha512update(archive_sha512_ctx *ctx, const void *indata,
 static int
 __archive_sha512final(archive_sha512_ctx *ctx, void *md)
 {
+#if MBEDTLS_VERSION_NUMBER > 0x03000000
+  if (mbedtls_sha512_finish(ctx, md) == 0) {
+#else
   if (mbedtls_sha512_finish_ret(ctx, md) == 0) {
+#endif
     mbedtls_sha512_free(ctx);
     return (ARCHIVE_OK);
   } else {