Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libfsapfs for openSUSE:Factory 
checked in at 2026-10-31 23:12:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libfsapfs (Old)
 and      /work/SRC/openSUSE:Factory/.libfsapfs.new.1255 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libfsapfs"

Sat Oct 31 23:12:08 2026 rev:22 rq:1394201 version:20261030

Changes:
--------
--- /work/SRC/openSUSE:Factory/libfsapfs/libfsapfs.changes      2026-09-22 
15:55:18.181396962 +0200
+++ /work/SRC/openSUSE:Factory/.libfsapfs.new.1255/libfsapfs.changes    
2026-10-31 23:15:08.880828518 +0100
@@ -1,0 +2,6 @@
+Sat Oct 31 19:06:32 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 20261030
+  * Updates to the testsuite
+
+-------------------------------------------------------------------

Old:
----
  libfsapfs-experimental-20260921.tar.gz
  libfsapfs-experimental-20260921.tar.gz.asc

New:
----
  libfsapfs-experimental-20261030.tar.gz
  libfsapfs-experimental-20261030.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libfsapfs.spec ++++++
--- /var/tmp/diff_new_pack.QUzyES/_old  2026-10-31 23:15:09.609860207 +0100
+++ /var/tmp/diff_new_pack.QUzyES/_new  2026-10-31 23:15:09.611860293 +0100
@@ -21,7 +21,7 @@
 
 Name:           libfsapfs
 %define lname   libfsapfs1
-Version:        20260921
+Version:        20261030
 Release:        0
 Summary:        Library and tools to access the Apple File System (APFS)
 License:        LGPL-3.0-only

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.QUzyES/_old  2026-10-31 23:15:09.649861945 +0100
+++ /var/tmp/diff_new_pack.QUzyES/_new  2026-10-31 23:15:09.653862119 +0100
@@ -1,5 +1,5 @@
-mtime: 1790071858
-commit: 7ab36db0b886f55ff9917657414d9e03de0a8b2da692a09244d7543d90f17f4c
+mtime: 1793473603
+commit: 76b3229cc4bf6bf0bd2a45b6cc8a48851801c886a6a5a504d048759db175dc41
 url: https://src.opensuse.org/security-forensics/libfsapfs
 revision: master
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-10-31 20:06:43.000000000 +0100
@@ -0,0 +1,4 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild

++++++ libfsapfs-experimental-20260921.tar.gz -> 
libfsapfs-experimental-20261030.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/common/config.h 
new/libfsapfs-20261030/common/config.h
--- old/libfsapfs-20260921/common/config.h      2026-09-22 08:15:54.000000000 
+0200
+++ new/libfsapfs-20261030/common/config.h      2026-10-30 09:34:36.000000000 
+0100
@@ -668,7 +668,7 @@
 #define PACKAGE_NAME "libfsapfs"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "libfsapfs 20260921"
+#define PACKAGE_STRING "libfsapfs 20261030"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "libfsapfs"
@@ -677,7 +677,7 @@
 #define PACKAGE_URL ""
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "20260921"
+#define PACKAGE_VERSION "20261030"
 
 /* The size of 'int', as computed by sizeof. */
 #define SIZEOF_INT 4
@@ -706,7 +706,7 @@
 /* #undef TM_IN_SYS_TIME */
 
 /* Version number of package */
-#define VERSION "20260921"
+#define VERSION "20261030"
 
 /* Number of bits in a file offset, on hosts where this is settable. */
 /* #undef _FILE_OFFSET_BITS */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/configure 
new/libfsapfs-20261030/configure
--- old/libfsapfs-20260921/configure    2026-09-22 08:15:45.000000000 +0200
+++ new/libfsapfs-20261030/configure    2026-10-30 09:34:27.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for libfsapfs 20260921.
+# Generated by GNU Autoconf 2.72 for libfsapfs 20261030.
 #
 # Report bugs to <https://github.com/libyal/libfsapfs/issues>.
 #
@@ -614,8 +614,8 @@
 # Identity of this package.
 PACKAGE_NAME='libfsapfs'
 PACKAGE_TARNAME='libfsapfs'
-PACKAGE_VERSION='20260921'
-PACKAGE_STRING='libfsapfs 20260921'
+PACKAGE_VERSION='20261030'
+PACKAGE_STRING='libfsapfs 20261030'
 PACKAGE_BUGREPORT='https://github.com/libyal/libfsapfs/issues'
 PACKAGE_URL=''
 
@@ -1741,7 +1741,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-'configure' configures libfsapfs 20260921 to adapt to many kinds of systems.
+'configure' configures libfsapfs 20261030 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1812,7 +1812,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libfsapfs 20260921:";;
+     short | recursive ) echo "Configuration of libfsapfs 20261030:";;
    esac
   cat <<\_ACEOF
 
@@ -2108,7 +2108,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libfsapfs configure 20260921
+libfsapfs configure 20261030
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2850,7 +2850,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libfsapfs $as_me 20260921, which was
+It was created by libfsapfs $as_me 20261030, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -4547,7 +4547,7 @@
 
 # Define the identity of the package.
  PACKAGE='libfsapfs'
- VERSION='20260921'
+ VERSION='20261030'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -65403,7 +65403,13 @@
   if test -d "$ac_cv_with_openssl"
 then :
   CFLAGS="$CFLAGS -I${ac_cv_with_openssl}/include"
-        LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib"
+        if test -d "${ac_cv_with_openssl}/lib64"
+then :
+  LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib64"
+else case e in #(
+  e) LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib" ;;
+esac
+fi
 else case e in #(
   e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
@@ -65925,9 +65931,9 @@
 fi
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 
ERR_remove_thread_state in -lcrypto" >&5
-printf %s "checking for ERR_remove_thread_state in -lcrypto... " >&6; }
-if test ${ac_cv_lib_crypto_ERR_remove_thread_state+y}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ERR_clear_error 
in -lcrypto" >&5
+printf %s "checking for ERR_clear_error in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_ERR_clear_error+y}
 then :
   printf %s "(cached) " >&6
 else case e in #(
@@ -65945,20 +65951,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char ERR_remove_thread_state (void);
+char ERR_clear_error (void);
 int
 main (void)
 {
-return ERR_remove_thread_state ();
+return ERR_clear_error ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  ac_cv_lib_crypto_ERR_remove_thread_state=yes
+  ac_cv_lib_crypto_ERR_clear_error=yes
 else case e in #(
-  e) ac_cv_lib_crypto_ERR_remove_thread_state=no ;;
+  e) ac_cv_lib_crypto_ERR_clear_error=no ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -65966,9 +65972,9 @@
 LIBS=$ac_check_lib_save_LIBS ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_remove_thread_state" >&5
-printf "%s\n" "$ac_cv_lib_crypto_ERR_remove_thread_state" >&6; }
-if test "x$ac_cv_lib_crypto_ERR_remove_thread_state" = xyes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_clear_error" >&5
+printf "%s\n" "$ac_cv_lib_crypto_ERR_clear_error" >&6; }
+if test "x$ac_cv_lib_crypto_ERR_clear_error" = xyes
 then :
   ac_cv_libcrypto_dummy=yes
 else case e in #(
@@ -66842,9 +66848,9 @@
 fi
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 
ERR_remove_thread_state in -lcrypto" >&5
-printf %s "checking for ERR_remove_thread_state in -lcrypto... " >&6; }
-if test ${ac_cv_lib_crypto_ERR_remove_thread_state+y}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ERR_clear_error 
in -lcrypto" >&5
+printf %s "checking for ERR_clear_error in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_ERR_clear_error+y}
 then :
   printf %s "(cached) " >&6
 else case e in #(
@@ -66862,20 +66868,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char ERR_remove_thread_state (void);
+char ERR_clear_error (void);
 int
 main (void)
 {
-return ERR_remove_thread_state ();
+return ERR_clear_error ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  ac_cv_lib_crypto_ERR_remove_thread_state=yes
+  ac_cv_lib_crypto_ERR_clear_error=yes
 else case e in #(
-  e) ac_cv_lib_crypto_ERR_remove_thread_state=no ;;
+  e) ac_cv_lib_crypto_ERR_clear_error=no ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -66883,9 +66889,9 @@
 LIBS=$ac_check_lib_save_LIBS ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_remove_thread_state" >&5
-printf "%s\n" "$ac_cv_lib_crypto_ERR_remove_thread_state" >&6; }
-if test "x$ac_cv_lib_crypto_ERR_remove_thread_state" = xyes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_clear_error" >&5
+printf "%s\n" "$ac_cv_lib_crypto_ERR_clear_error" >&6; }
+if test "x$ac_cv_lib_crypto_ERR_clear_error" = xyes
 then :
   ac_cv_libcrypto_dummy=yes
 else case e in #(
@@ -67759,9 +67765,9 @@
 fi
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 
ERR_remove_thread_state in -lcrypto" >&5
-printf %s "checking for ERR_remove_thread_state in -lcrypto... " >&6; }
-if test ${ac_cv_lib_crypto_ERR_remove_thread_state+y}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ERR_clear_error 
in -lcrypto" >&5
+printf %s "checking for ERR_clear_error in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_ERR_clear_error+y}
 then :
   printf %s "(cached) " >&6
 else case e in #(
@@ -67779,20 +67785,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char ERR_remove_thread_state (void);
+char ERR_clear_error (void);
 int
 main (void)
 {
-return ERR_remove_thread_state ();
+return ERR_clear_error ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  ac_cv_lib_crypto_ERR_remove_thread_state=yes
+  ac_cv_lib_crypto_ERR_clear_error=yes
 else case e in #(
-  e) ac_cv_lib_crypto_ERR_remove_thread_state=no ;;
+  e) ac_cv_lib_crypto_ERR_clear_error=no ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -67800,9 +67806,9 @@
 LIBS=$ac_check_lib_save_LIBS ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_remove_thread_state" >&5
-printf "%s\n" "$ac_cv_lib_crypto_ERR_remove_thread_state" >&6; }
-if test "x$ac_cv_lib_crypto_ERR_remove_thread_state" = xyes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_clear_error" >&5
+printf "%s\n" "$ac_cv_lib_crypto_ERR_clear_error" >&6; }
+if test "x$ac_cv_lib_crypto_ERR_clear_error" = xyes
 then :
   ac_cv_libcrypto_dummy=yes
 else case e in #(
@@ -68676,9 +68682,9 @@
 fi
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 
ERR_remove_thread_state in -lcrypto" >&5
-printf %s "checking for ERR_remove_thread_state in -lcrypto... " >&6; }
-if test ${ac_cv_lib_crypto_ERR_remove_thread_state+y}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ERR_clear_error 
in -lcrypto" >&5
+printf %s "checking for ERR_clear_error in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_ERR_clear_error+y}
 then :
   printf %s "(cached) " >&6
 else case e in #(
@@ -68696,20 +68702,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char ERR_remove_thread_state (void);
+char ERR_clear_error (void);
 int
 main (void)
 {
-return ERR_remove_thread_state ();
+return ERR_clear_error ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  ac_cv_lib_crypto_ERR_remove_thread_state=yes
+  ac_cv_lib_crypto_ERR_clear_error=yes
 else case e in #(
-  e) ac_cv_lib_crypto_ERR_remove_thread_state=no ;;
+  e) ac_cv_lib_crypto_ERR_clear_error=no ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -68717,9 +68723,9 @@
 LIBS=$ac_check_lib_save_LIBS ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_remove_thread_state" >&5
-printf "%s\n" "$ac_cv_lib_crypto_ERR_remove_thread_state" >&6; }
-if test "x$ac_cv_lib_crypto_ERR_remove_thread_state" = xyes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_clear_error" >&5
+printf "%s\n" "$ac_cv_lib_crypto_ERR_clear_error" >&6; }
+if test "x$ac_cv_lib_crypto_ERR_clear_error" = xyes
 then :
   ac_cv_libcrypto_dummy=yes
 else case e in #(
@@ -69593,9 +69599,9 @@
 fi
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 
ERR_remove_thread_state in -lcrypto" >&5
-printf %s "checking for ERR_remove_thread_state in -lcrypto... " >&6; }
-if test ${ac_cv_lib_crypto_ERR_remove_thread_state+y}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ERR_clear_error 
in -lcrypto" >&5
+printf %s "checking for ERR_clear_error in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_ERR_clear_error+y}
 then :
   printf %s "(cached) " >&6
 else case e in #(
@@ -69613,20 +69619,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char ERR_remove_thread_state (void);
+char ERR_clear_error (void);
 int
 main (void)
 {
-return ERR_remove_thread_state ();
+return ERR_clear_error ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  ac_cv_lib_crypto_ERR_remove_thread_state=yes
+  ac_cv_lib_crypto_ERR_clear_error=yes
 else case e in #(
-  e) ac_cv_lib_crypto_ERR_remove_thread_state=no ;;
+  e) ac_cv_lib_crypto_ERR_clear_error=no ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -69634,9 +69640,9 @@
 LIBS=$ac_check_lib_save_LIBS ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_remove_thread_state" >&5
-printf "%s\n" "$ac_cv_lib_crypto_ERR_remove_thread_state" >&6; }
-if test "x$ac_cv_lib_crypto_ERR_remove_thread_state" = xyes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_clear_error" >&5
+printf "%s\n" "$ac_cv_lib_crypto_ERR_clear_error" >&6; }
+if test "x$ac_cv_lib_crypto_ERR_clear_error" = xyes
 then :
   ac_cv_libcrypto_dummy=yes
 else case e in #(
@@ -71219,7 +71225,13 @@
   if test -d "$ac_cv_with_openssl"
 then :
   CFLAGS="$CFLAGS -I${ac_cv_with_openssl}/include"
-        LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib"
+        if test -d "${ac_cv_with_openssl}/lib64"
+then :
+  LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib64"
+else case e in #(
+  e) LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib" ;;
+esac
+fi
 else case e in #(
   e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
@@ -71739,9 +71751,9 @@
 fi
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 
ERR_remove_thread_state in -lcrypto" >&5
-printf %s "checking for ERR_remove_thread_state in -lcrypto... " >&6; }
-if test ${ac_cv_lib_crypto_ERR_remove_thread_state+y}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ERR_clear_error 
in -lcrypto" >&5
+printf %s "checking for ERR_clear_error in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_ERR_clear_error+y}
 then :
   printf %s "(cached) " >&6
 else case e in #(
@@ -71759,20 +71771,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char ERR_remove_thread_state (void);
+char ERR_clear_error (void);
 int
 main (void)
 {
-return ERR_remove_thread_state ();
+return ERR_clear_error ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  ac_cv_lib_crypto_ERR_remove_thread_state=yes
+  ac_cv_lib_crypto_ERR_clear_error=yes
 else case e in #(
-  e) ac_cv_lib_crypto_ERR_remove_thread_state=no ;;
+  e) ac_cv_lib_crypto_ERR_clear_error=no ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -71780,9 +71792,9 @@
 LIBS=$ac_check_lib_save_LIBS ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_remove_thread_state" >&5
-printf "%s\n" "$ac_cv_lib_crypto_ERR_remove_thread_state" >&6; }
-if test "x$ac_cv_lib_crypto_ERR_remove_thread_state" = xyes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_clear_error" >&5
+printf "%s\n" "$ac_cv_lib_crypto_ERR_clear_error" >&6; }
+if test "x$ac_cv_lib_crypto_ERR_clear_error" = xyes
 then :
   ac_cv_libcrypto_dummy=yes
 else case e in #(
@@ -72632,9 +72644,9 @@
 fi
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 
ERR_remove_thread_state in -lcrypto" >&5
-printf %s "checking for ERR_remove_thread_state in -lcrypto... " >&6; }
-if test ${ac_cv_lib_crypto_ERR_remove_thread_state+y}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ERR_clear_error 
in -lcrypto" >&5
+printf %s "checking for ERR_clear_error in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_ERR_clear_error+y}
 then :
   printf %s "(cached) " >&6
 else case e in #(
@@ -72652,20 +72664,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char ERR_remove_thread_state (void);
+char ERR_clear_error (void);
 int
 main (void)
 {
-return ERR_remove_thread_state ();
+return ERR_clear_error ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  ac_cv_lib_crypto_ERR_remove_thread_state=yes
+  ac_cv_lib_crypto_ERR_clear_error=yes
 else case e in #(
-  e) ac_cv_lib_crypto_ERR_remove_thread_state=no ;;
+  e) ac_cv_lib_crypto_ERR_clear_error=no ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -72673,9 +72685,9 @@
 LIBS=$ac_check_lib_save_LIBS ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_remove_thread_state" >&5
-printf "%s\n" "$ac_cv_lib_crypto_ERR_remove_thread_state" >&6; }
-if test "x$ac_cv_lib_crypto_ERR_remove_thread_state" = xyes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_clear_error" >&5
+printf "%s\n" "$ac_cv_lib_crypto_ERR_clear_error" >&6; }
+if test "x$ac_cv_lib_crypto_ERR_clear_error" = xyes
 then :
   ac_cv_libcrypto_dummy=yes
 else case e in #(
@@ -73568,7 +73580,7 @@
 
   if test "x$ac_cv_libcrypto" = xno
 then :
-  if test "x$ac_cv_libcrypto_aes_cbc" = xno || test 
"x$ac_cv_libcrypto_aes_ecb" = xno
+  if test "x$ac_cv_libcrypto_aes_cbc" = xlibcrypto || test 
"x$ac_cv_libcrypto_aes_ecb" = xlibcrypto
 then :
   ac_cv_libcrypto=yes
 fi
@@ -73799,9 +73811,9 @@
 fi
 
 
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 
ERR_remove_thread_state in -lcrypto" >&5
-printf %s "checking for ERR_remove_thread_state in -lcrypto... " >&6; }
-if test ${ac_cv_lib_crypto_ERR_remove_thread_state+y}
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ERR_clear_error 
in -lcrypto" >&5
+printf %s "checking for ERR_clear_error in -lcrypto... " >&6; }
+if test ${ac_cv_lib_crypto_ERR_clear_error+y}
 then :
   printf %s "(cached) " >&6
 else case e in #(
@@ -73819,20 +73831,20 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char ERR_remove_thread_state (void);
+char ERR_clear_error (void);
 int
 main (void)
 {
-return ERR_remove_thread_state ();
+return ERR_clear_error ();
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
-  ac_cv_lib_crypto_ERR_remove_thread_state=yes
+  ac_cv_lib_crypto_ERR_clear_error=yes
 else case e in #(
-  e) ac_cv_lib_crypto_ERR_remove_thread_state=no ;;
+  e) ac_cv_lib_crypto_ERR_clear_error=no ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
@@ -73840,9 +73852,9 @@
 LIBS=$ac_check_lib_save_LIBS ;;
 esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_remove_thread_state" >&5
-printf "%s\n" "$ac_cv_lib_crypto_ERR_remove_thread_state" >&6; }
-if test "x$ac_cv_lib_crypto_ERR_remove_thread_state" = xyes
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ac_cv_lib_crypto_ERR_clear_error" >&5
+printf "%s\n" "$ac_cv_lib_crypto_ERR_clear_error" >&6; }
+if test "x$ac_cv_lib_crypto_ERR_clear_error" = xyes
 then :
   ac_cv_libcrypto_dummy=yes
 else case e in #(
@@ -74438,32 +74450,38 @@
   e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
-#include <openssl/err.h>
+#include <string.h>
 #include <openssl/evp.h>
 int
 main (void)
 {
-unsigned char key[ 16 ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 
15 };
-int result = 0;
+unsigned char initialization_vector[ 16 ] = {
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
+unsigned char input_data[ 32 ] = { 0 };
+unsigned char output_data[ 32 ] = { 0 };
+int safe_output_data_size = 0;
 
-#if defined( HAVE_EVP_CIPHER_CTX_INIT )
-EVP_CIPHER_CTX ctx;
+const EVP_CIPHER *cipher = EVP_aes_128_xts();
+EVP_CIPHER_CTX *context = EVP_CIPHER_CTX_new();
 
-EVP_CIPHER_CTX_init( &ctx );
-#else
-EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
-#endif
+unsigned char key_encrypt[ 32 ] = {
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+       15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
+unsigned char key_decrypt[ 32 ] = {
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
 
-result = EVP_CipherInit_ex(ctx, EVP_aes_128_xts(), NULL, key, key, 0);
+if( (cipher == NULL) || (context == NULL) ) return( EXIT_FAILURE );
 
-#if defined( HAVE_EVP_CIPHER_CTX_INIT )
-EVP_CIPHER_CTX_cleanup( &ctx );
-#else
-EVP_CIPHER_CTX_free( ctx );
-#endif
+if( EVP_CipherInit_ex(context, cipher, NULL, key_encrypt, 
initialization_vector, 1) != 1 ) return( EXIT_FAILURE );
+
+if( EVP_CipherUpdate(context, output_data, &safe_output_data_size, input_data, 
32) != 1 ) return( EXIT_FAILURE );
 
-if( result != 1 ) return( EXIT_FAILURE );
+if( EVP_CipherInit_ex(context, cipher, NULL, key_decrypt, 
initialization_vector, 0) != 1 ) return( EXIT_FAILURE );
 
+if( EVP_CipherUpdate(context, input_data, &safe_output_data_size, output_data, 
32) != 1 ) return( EXIT_FAILURE );
+
+EVP_CIPHER_CTX_free( context );
 return( EXIT_SUCCESS );
   ;
   return 0;
@@ -74988,7 +75006,8 @@
 esac
 fi
 
-fi
+
+    fi
 
    if test "x${ac_cv_enable_python}" != xno; then
   HAVE_PYTHON_TRUE=
@@ -77542,7 +77561,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libfsapfs $as_me 20260921, which was
+This file was extended by libfsapfs $as_me 20261030, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -77610,7 +77629,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libfsapfs config.status 20260921
+libfsapfs config.status 20261030
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/configure.ac 
new/libfsapfs-20261030/configure.ac
--- old/libfsapfs-20260921/configure.ac 2026-09-21 12:29:40.000000000 +0200
+++ new/libfsapfs-20261030/configure.ac 2026-10-30 05:55:51.000000000 +0100
@@ -2,7 +2,7 @@
 
 AC_INIT(
   [libfsapfs],
-  [20260921],
+  [20261030],
   [https://github.com/libyal/libfsapfs/issues])
 
 AC_CONFIG_SRCDIR(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/dpkg/changelog 
new/libfsapfs-20261030/dpkg/changelog
--- old/libfsapfs-20260921/dpkg/changelog       2026-09-22 08:15:54.000000000 
+0200
+++ new/libfsapfs-20261030/dpkg/changelog       2026-10-30 09:34:36.000000000 
+0100
@@ -1,5 +1,5 @@
-libfsapfs (20260921-1) unstable; urgency=low
+libfsapfs (20261030-1) unstable; urgency=low
 
   * Auto-generated
 
- -- Joachim Metz <[email protected]>  Tue, 22 Sep 2026 08:15:53 +0200
+ -- Joachim Metz <[email protected]>  Fri, 30 Oct 2026 09:34:35 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/include/libfsapfs/definitions.h 
new/libfsapfs-20261030/include/libfsapfs/definitions.h
--- old/libfsapfs-20260921/include/libfsapfs/definitions.h      2026-09-22 
08:15:54.000000000 +0200
+++ new/libfsapfs-20261030/include/libfsapfs/definitions.h      2026-10-30 
09:34:36.000000000 +0100
@@ -24,11 +24,11 @@
 
 #include <libfsapfs/types.h>
 
-#define LIBFSAPFS_VERSION                      20260921
+#define LIBFSAPFS_VERSION                      20261030
 
 /* The version string
  */
-#define LIBFSAPFS_VERSION_STRING               "20260921"
+#define LIBFSAPFS_VERSION_STRING               "20261030"
 
 /* The file access
  * bit 1        set to 1 for read access
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/libcaes/libcaes_context.c 
new/libfsapfs-20261030/libcaes/libcaes_context.c
--- old/libfsapfs-20260921/libcaes/libcaes_context.c    2026-09-22 
08:15:01.000000000 +0200
+++ new/libfsapfs-20261030/libcaes/libcaes_context.c    2026-10-30 
09:33:59.000000000 +0100
@@ -446,8 +446,7 @@
                }
                /* Make sure the error state is removed otherwise OpenSSL will 
leak memory
                 */
-               ERR_remove_thread_state(
-                NULL );
+               ERR_clear_error();
 #else
                EVP_CIPHER_CTX_free(
                 internal_context->evp_cipher_context );
@@ -1353,7 +1352,6 @@
      size_t output_data_size,
      libcerror_error_t **error )
 {
-       uint8_t block_data[ EVP_MAX_BLOCK_LENGTH ];
        char error_string[ 256 ];
 
 #if defined( HAVE_EVP_CIPHERINIT_EX2 )
@@ -1370,6 +1368,7 @@
        static char *function                        = "libcaes_crypt_cbc";
        unsigned long error_code                     = 0;
        int safe_output_data_size                    = 0;
+       int total_data_size                          = 0;
 
        if( context == NULL )
        {
@@ -1479,20 +1478,6 @@
 
                return( -1 );
        }
-       if( memory_set(
-            block_data,
-            0,
-            EVP_MAX_BLOCK_LENGTH ) == NULL )
-       {
-               libcerror_error_set(
-                error,
-                LIBCERROR_ERROR_DOMAIN_MEMORY,
-                LIBCERROR_MEMORY_ERROR_SET_FAILED,
-                "%s: unable to clear input block data.",
-                function );
-
-               goto on_error;
-       }
 #if defined( HAVE_EVP_CIPHERINIT_EX2 )
        if( EVP_CIPHER_CTX_reset(
             internal_context->evp_cipher_context ) != 1 )
@@ -1613,7 +1598,7 @@
        }
        if( EVP_CIPHER_CTX_set_padding(
             internal_context->evp_cipher_context,
-            1 ) != 1 )
+            0 ) != 1 )
        {
                error_code = ERR_get_error();
 
@@ -1658,12 +1643,34 @@
 
                goto on_error;
        }
-       /* Just ignore the output of this function
+       /* Get any remaining data, i.e. the final block, and write it
+        * to the output data
         */
-       EVP_CipherFinal_ex(
-        internal_context->evp_cipher_context,
-        (unsigned char *) block_data,
-        &safe_output_data_size );
+       total_data_size = 0;
+
+       if( EVP_CipherFinal_ex(
+            internal_context->evp_cipher_context,
+            (unsigned char *) &( output_data[ (size_t) safe_output_data_size ] 
),
+            &total_data_size ) != 1 )
+       {
+               error_code = ERR_get_error();
+
+               ERR_error_string_n(
+                error_code,
+                error_string,
+                256 );
+
+               libcerror_error_set(
+                error,
+                LIBCERROR_ERROR_DOMAIN_RUNTIME,
+                LIBCERROR_RUNTIME_ERROR_FINALIZE_FAILED,
+                "%s: unable to finalize cipher with error: %s.",
+                function,
+                error_string );
+
+               goto on_error;
+       }
+       safe_output_data_size += total_data_size;
 
 #if defined( HAVE_EVP_CIPHERINIT_EX2 )
        EVP_CIPHER_free(
@@ -2872,7 +2879,6 @@
      size_t output_data_size,
      libcerror_error_t **error )
 {
-       uint8_t block_data[ EVP_MAX_BLOCK_LENGTH ];
        char error_string[ 256 ];
 
 #if defined( HAVE_EVP_CIPHERINIT_EX2 )
@@ -2889,6 +2895,7 @@
        static char *function                        = "libcaes_crypt_ecb";
        unsigned long error_code                     = 0;
        int safe_output_data_size                    = 0;
+       int total_data_size                          = 0;
 
        if( context == NULL )
        {
@@ -2974,20 +2981,6 @@
 
                return( -1 );
        }
-       if( memory_set(
-            block_data,
-            0,
-            EVP_MAX_BLOCK_LENGTH ) == NULL )
-       {
-               libcerror_error_set(
-                error,
-                LIBCERROR_ERROR_DOMAIN_MEMORY,
-                LIBCERROR_MEMORY_ERROR_SET_FAILED,
-                "%s: unable to clear block data.",
-                function );
-
-               goto on_error;
-       }
 #if defined( HAVE_EVP_CIPHERINIT_EX2 )
        if( EVP_CIPHER_CTX_reset(
             internal_context->evp_cipher_context ) != 1 )
@@ -3108,7 +3101,7 @@
        }
        if( EVP_CIPHER_CTX_set_padding(
             internal_context->evp_cipher_context,
-            1 ) != 1 )
+            0 ) != 1 )
        {
                error_code = ERR_get_error();
 
@@ -3153,12 +3146,34 @@
 
                goto on_error;
        }
-       /* Just ignore the output of this function
+       /* Get any remaining data, i.e. the final block, and write it
+        * to the output data
         */
-       EVP_CipherFinal_ex(
-        internal_context->evp_cipher_context,
-        (unsigned char *) block_data,
-        &safe_output_data_size );
+       total_data_size = 0;
+
+       if( EVP_CipherFinal_ex(
+            internal_context->evp_cipher_context,
+            (unsigned char *) &( output_data[ (size_t) safe_output_data_size ] 
),
+            &total_data_size ) != 1 )
+       {
+               error_code = ERR_get_error();
+
+               ERR_error_string_n(
+                error_code,
+                error_string,
+                256 );
+
+               libcerror_error_set(
+                error,
+                LIBCERROR_ERROR_DOMAIN_RUNTIME,
+                LIBCERROR_RUNTIME_ERROR_FINALIZE_FAILED,
+                "%s: unable to finalize cipher with error: %s.",
+                function,
+                error_string );
+
+               goto on_error;
+       }
+       safe_output_data_size += total_data_size;
 
 #if defined( HAVE_EVP_CIPHERINIT_EX2 )
        EVP_CIPHER_free(
@@ -3217,6 +3232,17 @@
        }
        internal_context = (libcaes_internal_context_t *) context;
 
+       if( internal_context->round_keys == NULL )
+       {
+               libcerror_error_set(
+                error,
+                LIBCERROR_ERROR_DOMAIN_RUNTIME,
+                LIBCERROR_RUNTIME_ERROR_VALUE_MISSING,
+                "%s: invalid context - missing round keys.",
+                function );
+
+               return( -1 );
+       }
        if( ( mode != LIBCAES_CRYPT_MODE_DECRYPT )
         && ( mode != LIBCAES_CRYPT_MODE_ENCRYPT ) )
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/libcaes/libcaes_definitions.h 
new/libfsapfs-20261030/libcaes/libcaes_definitions.h
--- old/libfsapfs-20260921/libcaes/libcaes_definitions.h        2026-09-22 
08:15:01.000000000 +0200
+++ new/libfsapfs-20261030/libcaes/libcaes_definitions.h        2026-10-30 
09:33:59.000000000 +0100
@@ -34,11 +34,11 @@
  * for local use of libcaes
  */
 #else
-#define LIBCAES_VERSION                                20260905
+#define LIBCAES_VERSION                                20261028
 
 /* The libcaes version string
  */
-#define LIBCAES_VERSION_STRING                 "20260905"
+#define LIBCAES_VERSION_STRING                 "20261028"
 
 /* The crypt modes
  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/libcaes/libcaes_tweaked_context.c 
new/libfsapfs-20261030/libcaes/libcaes_tweaked_context.c
--- old/libfsapfs-20260921/libcaes/libcaes_tweaked_context.c    2026-09-22 
08:15:01.000000000 +0200
+++ new/libfsapfs-20261030/libcaes/libcaes_tweaked_context.c    2026-10-30 
09:33:59.000000000 +0100
@@ -249,8 +249,7 @@
                }
                /* Make sure the error state is removed otherwise OpenSSL will 
leak memory
                 */
-               ERR_remove_thread_state(
-                NULL );
+               ERR_clear_error();
 #else
                EVP_CIPHER_CTX_free(
                 internal_tweaked_context->evp_cipher_context );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/libfsapfs/fsapfs_file_system.h 
new/libfsapfs-20261030/libfsapfs/fsapfs_file_system.h
--- old/libfsapfs-20260921/libfsapfs/fsapfs_file_system.h       2026-09-18 
12:54:39.000000000 +0200
+++ new/libfsapfs-20261030/libfsapfs/fsapfs_file_system.h       2026-10-30 
05:55:20.000000000 +0100
@@ -221,15 +221,15 @@
         */
        uint8_t data_stream_identifier[ 8 ];
 
-       /* The modification date and time
+       /* The creation date and time
         * Consists of 8 bytes
         */
-       uint8_t modification_time[ 8 ];
+       uint8_t creation_time[ 8 ];
 
-       /* The creation date and time
+       /* The modification date and time
         * Consists of 8 bytes
         */
-       uint8_t creation_time[ 8 ];
+       uint8_t modification_time[ 8 ];
 
        /* The inode change date and time
         * Consists of 8 bytes
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/libfsapfs/libfsapfs.rc 
new/libfsapfs-20261030/libfsapfs/libfsapfs.rc
--- old/libfsapfs-20260921/libfsapfs/libfsapfs.rc       2026-09-22 
08:15:54.000000000 +0200
+++ new/libfsapfs-20261030/libfsapfs/libfsapfs.rc       2026-10-30 
09:34:36.000000000 +0100
@@ -22,12 +22,12 @@
     BLOCK "040904E4"
     BEGIN
       VALUE "FileDescription",         "Library to access the Apple File 
System (APFS) format\0"
-      VALUE "FileVersion",             "20260921" "\0"
+      VALUE "FileVersion",             "20261030" "\0"
       VALUE "InternalName",            "libfsapfs.dll\0"
       VALUE "LegalCopyright",          "(C) 2018-2026, Joachim Metz 
<[email protected]>\0"
       VALUE "OriginalFilename",                "libfsapfs.dll\0"
       VALUE "ProductName",             "libfsapfs\0"
-      VALUE "ProductVersion",          "20260921" "\0"
+      VALUE "ProductVersion",          "20261030" "\0"
       VALUE "Comments",                        "For more information visit 
https://github.com/libyal/libfsapfs/\0";
     END
   END
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/libfsapfs/libfsapfs_definitions.h 
new/libfsapfs-20261030/libfsapfs/libfsapfs_definitions.h
--- old/libfsapfs-20260921/libfsapfs/libfsapfs_definitions.h    2026-09-22 
08:15:54.000000000 +0200
+++ new/libfsapfs-20261030/libfsapfs/libfsapfs_definitions.h    2026-10-30 
09:34:36.000000000 +0100
@@ -37,11 +37,11 @@
  * for local use of libfsapfs
  */
 #else
-#define LIBFSAPFS_VERSION                                      20260921
+#define LIBFSAPFS_VERSION                                      20261030
 
 /* The version string
  */
-#define LIBFSAPFS_VERSION_STRING                               "20260921"
+#define LIBFSAPFS_VERSION_STRING                               "20261030"
 
 /* The file access
  * bit 1        set to 1 for read access
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/libfsapfs.spec 
new/libfsapfs-20261030/libfsapfs.spec
--- old/libfsapfs-20260921/libfsapfs.spec       2026-09-22 08:15:54.000000000 
+0200
+++ new/libfsapfs-20261030/libfsapfs.spec       2026-10-30 09:34:36.000000000 
+0100
@@ -1,5 +1,5 @@
 Name: libfsapfs
-Version: 20260921
+Version: 20261030
 Release: 1
 Summary: Library to access the Apple File System (APFS) format
 Group: System Environment/Libraries
@@ -95,6 +95,6 @@
 %{_mandir}/man1/*
 
 %changelog
-* Tue Sep 22 2026 Joachim Metz <[email protected]> 20260921-1
+* Fri Oct 30 2026 Joachim Metz <[email protected]> 20261030-1
 - Auto-generated
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/m4/libcrypto.m4 
new/libfsapfs-20261030/m4/libcrypto.m4
--- old/libfsapfs-20260921/m4/libcrypto.m4      2026-09-18 12:54:40.000000000 
+0200
+++ new/libfsapfs-20261030/m4/libcrypto.m4      2026-10-30 05:51:40.000000000 
+0100
@@ -1,9 +1,9 @@
 dnl Checks for libcrypto required headers and functions
 dnl
-dnl Version: 20260606
+dnl Version: 20261028
 
 dnl Function to detect whether openssl/evp.h can be used in combination with 
zlib.h
-AC_DEFUN([AX_LIBCRYPTO_CHECK_OPENSSL_EVP_ZLIB_COMPATIBILE],
+AC_DEFUN([AX_LIBCRYPTO_CHECK_OPENSSL_EVP_ZLIB_COMPATIBLE],
   [AC_CACHE_CHECK(
     [if openssl/evp.h can be used in combination with zlib.h],
     [ac_cv_openssl_evp_zlib_compatible],
@@ -18,7 +18,13 @@
     AC_LANG_POP(C)])
   ])
 
-dnl Function to detect whether EVP_CipherInit_ex can be used with duplicate 
keys.
+dnl Function to detect whether EVP_CipherInit_ex can be used with the
+dnl duplicate key halves libcaes uses for its tweaked (XTS) keys.
+dnl
+dnl OpenSSL (>= 1.1.1c) always rejects AES-XTS encryption with duplicate
+dnl key halves and in FIPS builds it also rejects decryption with
+dnl duplicate key halves. If either operation is rejected libcaes
+dnl falls back to its internal AES-XTS implementation.
 AC_DEFUN([AX_LIBCRYPTO_CHECK_XTS_DUPLICATE_KEYS_SUPPORT],
   [AC_CACHE_CHECK(
     [if `EVP_CipherInit_ex' can be used with duplicate keys],
@@ -30,29 +36,35 @@
     AC_RUN_IFELSE(
       [AC_LANG_PROGRAM(
         [[#include <stdlib.h>
-#include <openssl/err.h>
+#include <string.h>
 #include <openssl/evp.h>]],
-        [[unsigned char key[ 16 ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 
12, 13, 14, 15 };
-int result = 0;
+        [[unsigned char initialization_vector[ 16 ] = {
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
+unsigned char input_data[ 32 ] = { 0 };
+unsigned char output_data[ 32 ] = { 0 };
+int safe_output_data_size = 0;
+
+const EVP_CIPHER *cipher = EVP_aes_128_xts();
+EVP_CIPHER_CTX *context = EVP_CIPHER_CTX_new();
+
+unsigned char key_encrypt[ 32 ] = {
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+       15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
+unsigned char key_decrypt[ 32 ] = {
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
+
+if( (cipher == NULL) || (context == NULL) ) return( EXIT_FAILURE );
+
+if( EVP_CipherInit_ex(context, cipher, NULL, key_encrypt, 
initialization_vector, 1) != 1 ) return( EXIT_FAILURE );
 
-#if defined( HAVE_EVP_CIPHER_CTX_INIT )
-EVP_CIPHER_CTX ctx;
+if( EVP_CipherUpdate(context, output_data, &safe_output_data_size, input_data, 
32) != 1 ) return( EXIT_FAILURE );
 
-EVP_CIPHER_CTX_init( &ctx );
-#else
-EVP_CIPHER_CTX *ctx = EVP_CIPHER_CTX_new();
-#endif
-
-result = EVP_CipherInit_ex(ctx, EVP_aes_128_xts(), NULL, key, key, 0);
-
-#if defined( HAVE_EVP_CIPHER_CTX_INIT )
-EVP_CIPHER_CTX_cleanup( &ctx );
-#else
-EVP_CIPHER_CTX_free( ctx );
-#endif
+if( EVP_CipherInit_ex(context, cipher, NULL, key_decrypt, 
initialization_vector, 0) != 1 ) return( EXIT_FAILURE );
 
-if( result != 1 ) return( EXIT_FAILURE );
+if( EVP_CipherUpdate(context, input_data, &safe_output_data_size, output_data, 
32) != 1 ) return( EXIT_FAILURE );
 
+EVP_CIPHER_CTX_free( context );
 return( EXIT_SUCCESS ); ]] )],
       [ac_cv_openssl_xts_duplicate_keys=yes],
       [ac_cv_openssl_xts_duplicate_keys=no],
@@ -69,7 +81,7 @@
   AS_IF(
     [test "x$ac_cv_header_openssl_evp_h" = xno],
     [ac_cv_libcrypto_evp=no],
-    [AX_LIBCRYPTO_CHECK_OPENSSL_EVP_ZLIB_COMPATIBILE
+    [AX_LIBCRYPTO_CHECK_OPENSSL_EVP_ZLIB_COMPATIBLE
 
     AS_IF(
       [test "x$ac_cv_openssl_evp_zlib_compatible" = xyes],
@@ -125,7 +137,7 @@
 
     AC_CHECK_LIB(
       crypto,
-      ERR_remove_thread_state,
+      ERR_clear_error,
       [ac_cv_libcrypto_dummy=yes],
       [ac_cv_libcrypto_evp_md=no])
     ])
@@ -479,7 +491,7 @@
 
     AC_CHECK_LIB(
       crypto,
-      ERR_remove_thread_state,
+      ERR_clear_error,
       [ac_cv_libcrypto_dummy=yes],
       [ac_cv_libcrypto_evp_cipher=no])
     ])
@@ -620,7 +632,7 @@
   AS_IF(
     [test "x$ac_cv_libcrypto" = xno],
     [AS_IF(
-      [test "x$ac_cv_libcrypto_aes_cbc" = xno || test 
"x$ac_cv_libcrypto_aes_ecb" = xno],
+      [test "x$ac_cv_libcrypto_aes_cbc" = xlibcrypto || test 
"x$ac_cv_libcrypto_aes_ecb" = xlibcrypto],
       [ac_cv_libcrypto=yes])
     ])
 
@@ -644,7 +656,10 @@
       [AS_IF(
         [test -d "$ac_cv_with_openssl"],
         [CFLAGS="$CFLAGS -I${ac_cv_with_openssl}/include"
-        LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib"],
+        AS_IF(
+          [test -d "${ac_cv_with_openssl}/lib64"],
+          [LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib64"],
+          [LDFLAGS="$LDFLAGS -L${ac_cv_with_openssl}/lib"])],
         [AC_MSG_FAILURE(
           [no such directory: $ac_cv_with_openssl],
           [1])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/m4/python.m4 
new/libfsapfs-20261030/m4/python.m4
--- old/libfsapfs-20260921/m4/python.m4 2026-09-18 12:54:40.000000000 +0200
+++ new/libfsapfs-20261030/m4/python.m4 2026-10-30 05:51:40.000000000 +0100
@@ -1,6 +1,6 @@
 dnl Functions for Python bindings
 dnl
-dnl Version: 20260529
+dnl Version: 20261022
 
 dnl Function to check if the python binary is available
 dnl "python${PYTHON_VERSION} python python# python#.#"
@@ -188,7 +188,7 @@
     [use `python-config --prefix' to determine the prefix of pythondir instead 
of --prefix],
     [no],
     [no])
-])
+  ])
 
 dnl Function to detect if to enable Python
 AC_DEFUN([AX_PYTHON_CHECK_ENABLE],
@@ -208,7 +208,9 @@
 
   AS_IF(
     [test "x${ac_cv_enable_python}" != xno],
-    [AX_PYTHON_CHECK])
+    [AX_PYTHON_CHECK
+
+    dnl TODO: add check to catch mismatch Python runtime used in tests and 
module version])
 
   AM_CONDITIONAL(
     HAVE_PYTHON,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/pyproject.toml 
new/libfsapfs-20261030/pyproject.toml
--- old/libfsapfs-20260921/pyproject.toml       2026-09-22 08:15:54.000000000 
+0200
+++ new/libfsapfs-20261030/pyproject.toml       2026-10-30 09:34:36.000000000 
+0100
@@ -4,7 +4,7 @@
 
 [project]
 name = "libfsapfs-python"
-version = "20260921"
+version = "20261030"
 description = "Python bindings for libfsapfs"
 maintainers = [
     { name = "Joachim Metz", email = "[email protected]" },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libfsapfs-20260921/tests/package.m4 
new/libfsapfs-20261030/tests/package.m4
--- old/libfsapfs-20260921/tests/package.m4     2026-09-21 12:35:21.000000000 
+0200
+++ new/libfsapfs-20261030/tests/package.m4     2026-10-30 05:58:52.000000000 
+0100
@@ -1,5 +1,5 @@
 m4_define([AT_PACKAGE_NAME], [libfsapfs])
 m4_define([AT_PACKAGE_TARNAME], [libfsapfs])
-m4_define([AT_PACKAGE_VERSION], [20260921])
-m4_define([AT_PACKAGE_STRING], [libfsapfs 20260921])
+m4_define([AT_PACKAGE_VERSION], [20261030])
+m4_define([AT_PACKAGE_STRING], [libfsapfs 20261030])
 m4_define([AT_PACKAGE_BUGREPORT], [https://github.com/libyal/libfsapfs/issues])

Reply via email to