Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package bzrtp for openSUSE:Factory checked 
in at 2024-03-14 17:44:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bzrtp (Old)
 and      /work/SRC/openSUSE:Factory/.bzrtp.new.1905 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bzrtp"

Thu Mar 14 17:44:52 2024 rev:43 rq:1157863 version:5.3.26

Changes:
--------
--- /work/SRC/openSUSE:Factory/bzrtp/bzrtp.changes      2023-12-13 
18:36:09.917070742 +0100
+++ /work/SRC/openSUSE:Factory/.bzrtp.new.1905/bzrtp.changes    2024-03-14 
17:46:20.848224423 +0100
@@ -1,0 +2,10 @@
+Thu Mar  7 06:42:43 UTC 2024 - Paolo Stivanin <[email protected]>
+
+- Update to 5.3.26 (no changelog).
+
+-------------------------------------------------------------------
+Mon Jan 15 08:52:51 UTC 2024 - Paolo Stivanin <[email protected]>
+
+- Update to 5.3.7 (no changelog).
+
+-------------------------------------------------------------------

Old:
----
  bzrtp-5.2.98.tar.bz2

New:
----
  bzrtp-5.3.26.tar.bz2

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

Other differences:
------------------
++++++ bzrtp.spec ++++++
--- /var/tmp/diff_new_pack.Md6wvk/_old  2024-03-14 17:46:21.676254879 +0100
+++ /var/tmp/diff_new_pack.Md6wvk/_new  2024-03-14 17:46:21.680255027 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package bzrtp
 #
-# Copyright (c) 2023 SUSE LLC
+# Copyright (c) 2024 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %define sover   0
 Name:           bzrtp
-Version:        5.2.98
+Version:        5.3.26
 Release:        0
 Summary:        ZRTP keys exchange protocol implementation
 License:        GPL-3.0-or-later
@@ -28,13 +28,14 @@
 Source1:        baselibs.conf
 # PATCH-FIX-OPENSUSE bzrtp-fix-pkgconfig.patch [email protected] -- Install 
libbzrtp.pc.
 Patch0:         bzrtp-fix-pkgconfig.patch
+# PATCH-FIX-UPSTREAM
 Patch1:         set_current_version.patch
-BuildRequires:  cmake
+BuildRequires:  cmake >= 3.22
 BuildRequires:  gcc-c++
 %if 0%{?suse_version} >= 1600
 BuildRequires:  liboqs-devel
 # At the time of writing (13/Dec/2023), PQCE is only available on Tumbleweed.
-BuildRequires:  postquantumcryptoengine-devel
+BuildRequires:  postquantumcryptoengine-devel >= 5.3.0~git.20230802
 %endif
 BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(bctoolbox) >= %{version}
@@ -88,6 +89,8 @@
 %doc README.md
 %{_includedir}/%{name}/
 %{_libdir}/lib%{name}.so
-%{_datadir}/%{name}/
 %{_libdir}/pkgconfig/lib%{name}.pc
+%dir %{_datadir}/BZRTP
+%dir %{_datadir}/BZRTP/cmake
+%{_datadir}/BZRTP/cmake/*.cmake
 

++++++ bzrtp-5.2.98.tar.bz2 -> bzrtp-5.3.26.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/CMakeLists.txt 
new/bzrtp-5.3.26/CMakeLists.txt
--- old/bzrtp-5.2.98/CMakeLists.txt     2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/CMakeLists.txt     2023-10-20 15:50:20.000000000 +0200
@@ -1,6 +1,6 @@
 ############################################################################
 # CMakeLists.txt
-# Copyright (C) 2010-2019  Belledonne Communications, Grenoble France
+# Copyright (C) 2010-2023  Belledonne Communications, Grenoble France
 #
 ############################################################################
 #
@@ -20,24 +20,15 @@
 #
 ############################################################################
 
-cmake_minimum_required(VERSION 3.1)
+cmake_minimum_required(VERSION 3.22)
 
-# CMP0077 policy is required by Flexisip build. Remove it once the CMake 
required
-# version is higer or equal to 3.13.
-if(NOT CMAKE_VERSION VERSION_LESS 3.13)
-    cmake_policy(SET CMP0077 NEW)
-endif()
-
-project(bzrtp VERSION 5.2.0 LANGUAGES C CXX)
+project(BZRTP VERSION 5.3.0 LANGUAGES C CXX)
 
-option(ENABLE_SHARED "Build shared library." YES)
-option(ENABLE_STATIC "Build static library." YES)
 option(ENABLE_ZIDCACHE "Turn on compilation of ZID cache, request sqlite" YES)
 option(ENABLE_STRICT "Build with strict compile options." YES)
-option(ENABLE_TESTS "Enable compilation of unit tests." NO)
+option(ENABLE_UNIT_TESTS "Enable compilation of unit tests." NO)
 option(ENABLE_DOC "Enable API documentation generation." NO)
-option(ENABLE_EXPORTEDKEY_V1_0_RETROCOMPATIBILITY "Enable support for Limev1 
with older version of bzrtp(before v1.06)" NO)
-option(ENABLE_PACKAGE_SOURCE "Create 'package_source' target for source 
archive making (CMake >= 3.11)" OFF)
+option(ENABLE_PACKAGE_SOURCE "Create 'package_source' target for source 
archive making" OFF)
 option(ENABLE_GOCLEAR "Enable the possibility to send and receive GoClear" YES)
 option(ENABLE_PQCRYPTO "Enable Post Quantum Cryptography key agreements 
algorithms" NO)
 
@@ -49,31 +40,18 @@
        message(STATUS "Setting install rpath to ${CMAKE_INSTALL_RPATH}")
 endif()
 
-list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
-
-set(MSVC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include/MSVC")
-if(MSVC)
-       list(APPEND CMAKE_REQUIRED_INCLUDES ${MSVC_INCLUDE_DIR})
-endif()
-
-# Hidden non-cache options:
-# * DISABLE_BC_PACKAGE_SEARCH: skip find_package() for every BC package 
(bctoolbox, ortp, etc.)
+list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
 
 include(GNUInstallDirs)
 include(CheckLibraryExists)
 check_library_exists("m" "sqrt" "" HAVE_SQRT)
 
-if(NOT DISABLE_BC_PACKAGE_SEARCH)
-       find_package(bctoolbox 0.0.3 REQUIRED OPTIONAL_COMPONENTS tester CONFIG)
-       if (ENABLE_PQCRYPTO)
-               find_package(postquantumcryptoengine CONFIG REQUIRED)
-       endif()
+find_package(BCToolbox 5.3.0 REQUIRED OPTIONAL_COMPONENTS tester)
+if(ENABLE_PQCRYPTO)
+       find_package(PostQuantumCryptoEngine 5.3.0 REQUIRED)
 endif()
-
 if(ENABLE_ZIDCACHE)
-       find_package(Sqlite3 REQUIRED)
-       # Also check if we have libxml2, as we need it for migration purpose
-       find_package(XML2)
+       bc_find_package(SQLite3 SQLite::SQLite3 sqlite3 REQUIRED)
 endif()
 
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/config.h)
@@ -81,12 +59,9 @@
 add_definitions("-DHAVE_CONFIG_H")
 
 bc_init_compilation_flags(STRICT_OPTIONS_CPP STRICT_OPTIONS_C 
STRICT_OPTIONS_CXX ENABLE_STRICT)
-if(CMAKE_VERSION VERSION_LESS 3.1 AND NOT APPLE AND NOT MSVC)
-       list(APPEND STRICT_OPTIONS_CXX "-std=c++11")
-endif()
 
 set(BZRTP_CPPFLAGS ${BCTOOLBOX_CPPFLAGS})
-if(ENABLE_STATIC)
+if(NOT BUILD_SHARED_LIBS)
        list(APPEND BZRTP_CPPFLAGS "-DBZRTP_STATIC")
 endif()
 if(BZRTP_CPPFLAGS)
@@ -99,85 +74,77 @@
        ${CMAKE_CURRENT_BINARY_DIR}
 )
 
-if(MSVC)
-       include_directories(${MSVC_INCLUDE_DIR})
-endif()
-
 if(ENABLE_ZIDCACHE)
        add_definitions("-DZIDCACHE_ENABLED")
-       if(XML2_FOUND)
-               add_definitions("-DHAVE_LIBXML2")
-       endif()
 endif()
 
 if(ENABLE_GOCLEAR)
         add_definitions("-DGOCLEAR_ENABLED")
 endif()
 
-if (ENABLE_EXPORTEDKEY_V1_0_RETROCOMPATIBILITY)
-       add_definitions("-DSUPPORT_EXPORTEDKEY_V010000")
-endif()
-
-if (postquantumcryptoengine_FOUND)
+if(ENABLE_PQCRYPTO)
        add_definitions("-DHAVE_BCTBXPQ")
        message(STATUS "Building with Post Quantum Key Agreements")
 endif()
 
-set(EXPORT_TARGETS_NAME "bzrtp")
-
 add_subdirectory(include)
 add_subdirectory(src)
-if(ENABLE_TESTS)
+if(ENABLE_UNIT_TESTS AND NOT ANDROID AND NOT IOS)
        enable_testing()
        add_subdirectory(test)
 endif()
 
-
-include(CMakePackageConfigHelpers)
-set(CONFIG_PACKAGE_LOCATION "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake")
-
-write_basic_package_version_file(
-       "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}ConfigVersion.cmake"
-       VERSION ${PROJECT_VERSION}
-       COMPATIBILITY AnyNewerVersion
-)
-
-if(LINPHONE_BUILDER_GROUP_EXTERNAL_SOURCE_PATH_BUILDERS)
-       export(EXPORT ${EXPORT_TARGETS_NAME}Targets
-               FILE 
"${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Targets.cmake"
-       )
-endif()
-
-configure_package_config_file(cmake/BZRTPConfig.cmake.in
-       "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
-       INSTALL_DESTINATION ${CONFIG_PACKAGE_LOCATION}
-       NO_SET_AND_CHECK_MACRO
-)
-
-install(EXPORT ${EXPORT_TARGETS_NAME}Targets
-       FILE ${EXPORT_TARGETS_NAME}Targets.cmake
-       DESTINATION ${CONFIG_PACKAGE_LOCATION}
-)
-install(FILES
-       "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}Config.cmake"
-       "${CMAKE_CURRENT_BINARY_DIR}/${EXPORT_TARGETS_NAME}ConfigVersion.cmake"
-       DESTINATION ${CONFIG_PACKAGE_LOCATION}
-)
-
 if(ENABLE_DOC)
        # Doxygen
        find_package(Doxygen)
        if (DOXYGEN_FOUND)
+               set(DOXYGEN_INPUT "")
+               file(GLOB DOC_INPUT_FILES
+                       "${PROJECT_SOURCE_DIR}/include/[^.]*.h"
+                       "${PROJECT_SOURCE_DIR}/src/[^.]*.c"
+                       "${PROJECT_SOURCE_DIR}/src/[^.]*.cc"
+               )
+               foreach (INPUT_FILE ${DOC_INPUT_FILES})
+                       string(CONCAT DOXYGEN_INPUT ${DOXYGEN_INPUT} " 
\"${INPUT_FILE}\"")
+               endforeach ()
                configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in 
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
-               add_custom_target(doc ALL
-                       ${DOXYGEN_EXECUTABLE} 
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
-                       WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-                       COMMENT "Generating API documentation with Doxygen" 
VERBATIM)
+               add_custom_command(OUTPUT 
"${PROJECT_BINARY_DIR}/doc/html/index.html"
+                       COMMAND "${DOXYGEN_EXECUTABLE}" 
"${PROJECT_BINARY_DIR}/Doxyfile"
+                       DEPENDS "${PROJECT_BINARY_DIR}/Doxyfile" 
${DOC_INPUT_FILES}
+               )
+               add_custom_target(bzrtp-doc ALL
+                       DEPENDS "${PROJECT_BINARY_DIR}/doc/html/index.html"
+                       COMMENT "Generating API documentation with Doxygen" 
VERBATIM
+               )
                install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/doc/html/"
                        DESTINATION 
"${CMAKE_INSTALL_DATADIR}/doc/bzrtp-${PROJECT_VERSION}")
        endif()
 endif()
 
-if (ENABLE_PACKAGE_SOURCE)
+if(ENABLE_PACKAGE_SOURCE)
        add_subdirectory(build)
 endif()
+
+include(CMakePackageConfigHelpers)
+set(CMAKE_MODULES_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake")
+configure_package_config_file("cmake/${PROJECT_NAME}Config.cmake.in" 
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+       INSTALL_DESTINATION "${CMAKE_MODULES_INSTALL_DIR}"
+       NO_SET_AND_CHECK_MACRO
+)
+write_basic_package_version_file("${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+       VERSION ${PROJECT_VERSION}
+       COMPATIBILITY AnyNewerVersion
+)
+install(FILES
+       "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+       "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
+       DESTINATION ${CMAKE_MODULES_INSTALL_DIR}
+)
+if(ENABLE_PQCRYPTO)
+       install(FILES "cmake/FindPostQuantumCryptoEngine.cmake" DESTINATION 
${CMAKE_MODULES_INSTALL_DIR})
+endif()
+
+install(EXPORT ${PROJECT_NAME}Targets
+       FILE "${PROJECT_NAME}Targets.cmake"
+       DESTINATION ${CMAKE_MODULES_INSTALL_DIR}
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/README.md new/bzrtp-5.3.26/README.md
--- old/bzrtp-5.2.98/README.md  2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/README.md  2023-10-20 15:50:20.000000000 +0200
@@ -90,10 +90,8 @@
 
 * `CMAKE_INSTALL_PREFIX=<string>` : install prefix
 * `CMAKE_PREFIX_PATH=<string>`    : column-separated list of prefixes where to 
search for dependencies
-* `ENABLE_SHARED=NO`              : do not build the shared library
-* `ENABLE_STATIC=NO`              : do not build the static library
 * `ENABLE_STRICT=NO`              : build without the strict compilation flags
-* `ENABLE_TESTS=YES`              : build non-regression tests
+* `ENABLE_UNIT_TESTS=YES`              : build non-regression tests
 * `ENABLE_DOC=NO`                 : generates API documentation
 * `ENABLE_PACKAGE_SOURCE=NO`      : create package source target for source 
archive making
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/build/CMakeLists.txt 
new/bzrtp-5.3.26/build/CMakeLists.txt
--- old/bzrtp-5.2.98/build/CMakeLists.txt       2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/build/CMakeLists.txt       2023-10-20 15:50:20.000000000 
+0200
@@ -1,6 +1,6 @@
 ############################################################################
 # CMakeLists.txt
-# Copyright (C) 2010-2019  Belledonne Communications, Grenoble France
+# Copyright (C) 2010-2023  Belledonne Communications, Grenoble France
 #
 ############################################################################
 #
@@ -20,8 +20,6 @@
 #
 ############################################################################
 
-cmake_minimum_required(VERSION 3.11) # we need CMake 3.11 for defining 
'package_source' target as custom target
-
 if(NOT CPACK_PACKAGE_NAME)
        set(CPACK_PACKAGE_NAME "bzrtp")
 ENDIF()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/cmake/BZRTPConfig.cmake.in 
new/bzrtp-5.3.26/cmake/BZRTPConfig.cmake.in
--- old/bzrtp-5.2.98/cmake/BZRTPConfig.cmake.in 2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/cmake/BZRTPConfig.cmake.in 2023-10-20 15:50:20.000000000 
+0200
@@ -1,6 +1,6 @@
 ############################################################################
 # BZRTPConfig.cmake
-# Copyright (C) 2015  Belledonne Communications, Grenoble France
+# Copyright (C) 2015-2023  Belledonne Communications, Grenoble France
 #
 ############################################################################
 #
@@ -21,20 +21,43 @@
 ############################################################################
 #
 # Config file for the bzrtp package.
-# It defines the following variables:
 #
-#  BZRTP_FOUND - system has bzrtp
-#  BZRTP_INCLUDE_DIRS - the bzrtp include directory
-#  BZRTP_LIBRARIES - The libraries needed to use bzrtp
-#  BZRTP_CPPFLAGS - The compilation flags needed to use bzrtp
+# Targets
+# ^^^^^^^
+#
+# The following targets are defined:
+#  bzrtp - The bzrtp library target
+#
+#
+# Result variables
+# ^^^^^^^^^^^^^^^^
+#
+# This config file will set the following variables in your project:
+#
+#  BZRTP_FOUND - The bzrtp library has been found
+#  BZRTP_TARGET - The name of the CMake target for the bzrtp library
+
+
 @PACKAGE_INIT@
 
-include("${CMAKE_CURRENT_LIST_DIR}/bzrtpTargets.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/BZRTPTargets.cmake")
 
-# We must propagate the dependency on liboqs for static build
-if (@postquantumcryptoengine_FOUND@)
-       include(CMakeFindDependencyMacro)
-       find_dependency(postquantumcryptoengine)
+set(BZRTP_TARGET bzrtp)
+
+# We must propagate the public dependencies and the private dependencies for 
static build
+include(CMakeFindDependencyMacro)
+if(@SQLite3_FOUND@)
+       find_dependency(SQLite3)
+endif()
+if(@BUILD_SHARED_LIBS@)
+else()
+       list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
+       find_dependency(BCToolbox)
+       if(@PostQuantumCryptoEngine_FOUND@)
+               # We must propagate the dependency on postquantumcryptoengine 
for static build
+               include(CMakeFindDependencyMacro)
+               find_dependency(PostQuantumCryptoEngine)
+       endif()
 endif()
 
-check_required_components(bzrtp)
+check_required_components(BZRTP)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/cmake/FindPostQuantumCryptoEngine.cmake 
new/bzrtp-5.3.26/cmake/FindPostQuantumCryptoEngine.cmake
--- old/bzrtp-5.2.98/cmake/FindPostQuantumCryptoEngine.cmake    1970-01-01 
01:00:00.000000000 +0100
+++ new/bzrtp-5.3.26/cmake/FindPostQuantumCryptoEngine.cmake    2023-10-20 
15:50:20.000000000 +0200
@@ -0,0 +1,71 @@
+############################################################################
+# FindPostQuantumCryptoEngine.cmake
+# Copyright (C) 2023  Belledonne Communications, Grenoble France
+#
+############################################################################
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA.
+#
+############################################################################
+#
+# Find the postquantumcryptoengine library.
+#
+# Targets
+# ^^^^^^^
+#
+# The following targets may be defined:
+#
+#  postquantumcryptoengine - If the postquantumcryptoengine library has been 
found
+#
+#
+# Result variables
+# ^^^^^^^^^^^^^^^^
+#
+# This module will set the following variables in your project:
+#
+#  PostQuantumCryptoEngine_FOUND - The postquantumcryptoengine library has 
been found
+#  PostQuantumCryptoEngine_TARGET - The name of the CMake target for the 
postquantumcryptoengine library
+
+
+if(TARGET postquantumcryptoengine)
+
+       include(FindPackageHandleStandardArgs)
+       set(PostQuantumCryptoEngine_TARGET postquantumcryptoengine)
+       set(_PostQuantumCryptoEngine_REQUIRED_VARS 
PostQuantumCryptoEngine_TARGET)
+       set(_PostQuantumCryptoEngine_CACHE_VARS 
${_PostQuantumCryptoEngine_REQUIRED_VARS})
+       find_package_handle_standard_args(PostQuantumCryptoEngine
+               REQUIRED_VARS ${_PostQuantumCryptoEngine_REQUIRED_VARS}
+       )
+       mark_as_advanced(${_PostQuantumCryptoEngine_CACHE_VARS})
+
+else()
+
+       set(_OPTIONS CONFIG)
+       if(PostQuantumCryptoEngine_FIND_REQUIRED)
+               list(APPEND _OPTIONS REQUIRED)
+       endif()
+       if(PostQuantumCryptoEngine_FIND_QUIETLY)
+               list(APPEND _OPTIONS QUIET)
+       endif()
+       if(PostQuantumCryptoEngine_FIND_VERSION)
+               list(PREPEND _OPTIONS "${PostQuantumCryptoEngine_FIND_VERSION}")
+       endif()
+       if(PostQuantumCryptoEngine_FIND_EXACT)
+               list(APPEND _OPTIONS EXACT)
+       endif()
+
+       find_package(PostQuantumCryptoEngine ${_OPTIONS})
+
+endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/cmake/FindSqlite3.cmake 
new/bzrtp-5.3.26/cmake/FindSqlite3.cmake
--- old/bzrtp-5.2.98/cmake/FindSqlite3.cmake    2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/cmake/FindSqlite3.cmake    1970-01-01 01:00:00.000000000 
+0100
@@ -1,57 +0,0 @@
-############################################################################
-# FindSqlite3.cmake
-# Copyright (C) 2014  Belledonne Communications, Grenoble France
-#
-############################################################################
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA.
-#
-############################################################################
-#
-# - Find the sqlite3 include file and library
-#
-#  SQLITE3_FOUND - system has sqlite3
-#  SQLITE3_INCLUDE_DIRS - the sqlite3 include directory
-#  SQLITE3_LIBRARIES - The libraries needed to use sqlite3
-
-if(APPLE AND NOT IOS)
-       set(SQLITE3_HINTS "/usr")
-endif()
-if(SQLITE3_HINTS)
-       set(SQLITE3_LIBRARIES_HINTS "${SQLITE3_HINTS}/lib")
-endif()
-
-find_path(SQLITE3_INCLUDE_DIRS
-       NAMES sqlite3.h
-       HINTS "${SQLITE3_HINTS}"
-       PATH_SUFFIXES include
-)
-
-if(SQLITE3_INCLUDE_DIRS)
-       set(HAVE_SQLITE3_H 1)
-endif()
-
-find_library(SQLITE3_LIBRARIES
-       NAMES sqlite3
-       HINTS "${SQLITE3_LIBRARIES_HINTS}"
-)
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Sqlite3
-       DEFAULT_MSG
-       SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES HAVE_SQLITE3_H
-)
-
-mark_as_advanced(SQLITE3_INCLUDE_DIRS SQLITE3_LIBRARIES HAVE_SQLITE3_H)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/cmake/FindXML2.cmake 
new/bzrtp-5.3.26/cmake/FindXML2.cmake
--- old/bzrtp-5.2.98/cmake/FindXML2.cmake       2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/cmake/FindXML2.cmake       1970-01-01 01:00:00.000000000 
+0100
@@ -1,57 +0,0 @@
-############################################################################
-# FindXML2.txt
-# Copyright (C) 2015  Belledonne Communications, Grenoble France
-#
-############################################################################
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License
-# as published by the Free Software Foundation; either version 2
-# of the License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, 
USA.
-#
-############################################################################
-#
-# - Find the libxml2 include file and library
-#
-#  XML2_FOUND - system has libxml2
-#  XML2_INCLUDE_DIRS - the libxml2 include directory
-#  XML2_LIBRARIES - The libraries needed to use libxml2
-
-if(APPLE AND NOT IOS)
-       set(XML2_HINTS "/usr")
-endif()
-if(XML2_HINTS)
-       set(XML2_LIBRARIES_HINTS "${XML2_HINTS}/lib")
-endif()
-
-find_path(XML2_INCLUDE_DIRS
-       NAMES libxml/xmlreader.h
-       HINTS "${XML2_HINTS}"
-       PATH_SUFFIXES include/libxml2
-)
-
-if(XML2_INCLUDE_DIRS)
-       set(HAVE_LIBXML_XMLREADER_H 1)
-endif()
-
-find_library(XML2_LIBRARIES
-       NAMES xml2
-       HINTS "${XML2_LIBRARIES_HINTS}"
-)
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(XML2
-       DEFAULT_MSG
-       XML2_INCLUDE_DIRS XML2_LIBRARIES
-)
-
-mark_as_advanced(XML2_INCLUDE_DIRS XML2_LIBRARIES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/config.h.cmake 
new/bzrtp-5.3.26/config.h.cmake
--- old/bzrtp-5.2.98/config.h.cmake     2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/config.h.cmake     2023-10-20 15:50:20.000000000 +0200
@@ -25,5 +25,4 @@
 #cmakedefine HAVE_CU_CURSES
 
 #cmakedefine ZIDCACHE_ENABLED
-#cmakedefine HAVE_LIBXML2
 #cmakedefine GOCLEAR_ENABLED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/include/bzrtp/bzrtp.h 
new/bzrtp-5.3.26/include/bzrtp/bzrtp.h
--- old/bzrtp-5.2.98/include/bzrtp/bzrtp.h      2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/include/bzrtp/bzrtp.h      2023-10-20 15:50:20.000000000 
+0200
@@ -75,6 +75,7 @@
 #define ZRTP_AUTHTAG_HS80              0x32
 #define ZRTP_AUTHTAG_SK32              0x33
 #define ZRTP_AUTHTAG_SK64              0x34
+#define ZRTP_AUTHTAG_GCM               0x35
 
 /**
  * WARNING : it is very important to keep the key agreement defined in that 
order
@@ -631,18 +632,6 @@
  */
 BZRTP_EXPORT int bzrtp_cache_read_lock(void *dbPointer, int zuid, const char 
*tableName, const char **columns, uint8_t **values, size_t *lengths, uint8_t 
columnsCount, bctbx_mutex_t *zidCacheMutex);
 
-/**
- * @brief Perform migration from xml version to sqlite3 version of cache
- *     Warning: new version of cache associate a ZID to each local URI, the 
old one did not
- *             the migration function will associate any data in the cache to 
the sip URI given in parameter which shall be the default URI
- * @param[in]          cacheXmlPtr     a pointer to an xmlDocPtr structure 
containing the old cache to be migrated
- * @param[in,out]      cacheSqlite     a pointer to an sqlite3 structure 
containing a cache initialised using bzrtp_cache_init function
- * @param[in]          selfURI         default sip URI for this end point, 
NULL terminated char
- *
- * @return     0 on success, BZRTP_ERROR_CACHEDISABLED when bzrtp was not 
compiled with cache enabled, BZRTP_ERROR_CACHEMIGRATIONFAILED on error during 
migration
- */
-BZRTP_EXPORT int bzrtp_cache_migration(void *cacheXmlPtr, void *cacheSqlite, 
const char *selfURI);
-
 /*
  * @brief  Allow client to compute an exported according to RFC section 4.5.2
  *             Check the context is ready(we already have a master exported 
key and KDF context)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/src/CMakeLists.txt 
new/bzrtp-5.3.26/src/CMakeLists.txt
--- old/bzrtp-5.2.98/src/CMakeLists.txt 2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/src/CMakeLists.txt 2023-10-20 15:50:20.000000000 +0200
@@ -1,6 +1,6 @@
 ############################################################################
 # CMakeLists.txt
-# Copyright (C) 2014  Belledonne Communications, Grenoble France
+# Copyright (C) 2014-2023  Belledonne Communications, Grenoble France
 #
 ############################################################################
 #
@@ -40,47 +40,23 @@
 bc_apply_compile_flags(BZRTP_CPP_SOURCE_FILES STRICT_OPTIONS_CPP 
STRICT_OPTIONS_CXX)
 
 set(BZRTP_SOURCE_FILES ${BZRTP_C_SOURCE_FILES} ${BZRTP_CXX_SOURCE_FILES})
-set(INCLUDE_DIRS )
-set(LIBS )
 
-if(SQLITE3_FOUND)
-       list(APPEND INCLUDE_DIRS ${SQLITE3_INCLUDE_DIRS})
-       list(APPEND LIBS $<BUILD_INTERFACE:${SQLITE3_LIBRARIES}> 
$<INSTALL_INTERFACE:${SQLITE3_LIBRARIES}>)
+add_library(bzrtp ${BZRTP_SOURCE_FILES})
+set_target_properties(bzrtp PROPERTIES VERSION 0)
+target_include_directories(bzrtp PUBLIC
+       $<INSTALL_INTERFACE:include>
+       $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+)
+target_link_libraries(bzrtp PRIVATE ${BCToolbox_TARGET})
+if(SQLite3_FOUND)
+       target_link_libraries(bzrtp PUBLIC ${SQLite3_TARGET})
 endif()
-
-if(XML2_FOUND)
-       list(APPEND INCLUDE_DIRS ${XML2_INCLUDE_DIRS})
-       list(APPEND LIBS $<BUILD_INTERFACE:${XML2_LIBRARIES}>  
$<INSTALL_INTERFACE:${XML2_LIBRARIES}>)
+if(ENABLE_PQCRYPTO)
+       target_link_libraries(bzrtp PRIVATE ${PostQuantumCryptoEngine_TARGET})
 endif()
 
-if(ENABLE_STATIC)
-       add_library(bzrtp STATIC ${BZRTP_SOURCE_FILES})
-       set_target_properties(bzrtp PROPERTIES OUTPUT_NAME bzrtp)
-       target_include_directories(bzrtp INTERFACE
-               $<INSTALL_INTERFACE:include>
-               PRIVATE ${INCLUDE_DIRS})
-       target_link_libraries(bzrtp PRIVATE bctoolbox ${LIBS})
-       if (postquantumcryptoengine_FOUND)
-               target_link_libraries(bzrtp PRIVATE postquantumcryptoengine)
-       endif()
-       install(TARGETS bzrtp EXPORT ${EXPORT_TARGETS_NAME}Targets
-               ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-               PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ 
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-       )
-endif()
-if(ENABLE_SHARED)
-       add_library(bzrtp SHARED ${BZRTP_SOURCE_FILES})
+if(BUILD_SHARED_LIBS)
        target_compile_definitions(bzrtp PRIVATE "-DBZRTP_EXPORTS")
-       set_target_properties(bzrtp PROPERTIES VERSION 0)
-       target_include_directories(bzrtp PUBLIC
-               $<INSTALL_INTERFACE:include>
-               $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
-               PRIVATE ${INCLUDE_DIRS}
-       )
-       target_link_libraries(bzrtp PRIVATE bctoolbox ${LIBS})
-       if (postquantumcryptoengine_FOUND)
-               target_link_libraries(bzrtp PRIVATE postquantumcryptoengine)
-       endif()
        if(MSVC)
                if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE 
STREQUAL "RelWithDebInfo")
                        install(FILES $<TARGET_PDB_FILE:bzrtp>
@@ -89,10 +65,11 @@
                        )
                endif()
        endif()
-       install(TARGETS bzrtp EXPORT ${EXPORT_TARGETS_NAME}Targets
-               RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
-               LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-               ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
-               PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ 
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
-       )
 endif()
+
+install(TARGETS bzrtp EXPORT ${PROJECT_NAME}Targets
+       RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ 
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/src/bzrtp.c new/bzrtp-5.3.26/src/bzrtp.c
--- old/bzrtp-5.2.98/src/bzrtp.c        2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/src/bzrtp.c        2023-10-20 15:50:20.000000000 +0200
@@ -653,26 +653,11 @@
        /* check we have s0 or exportedKey and KDFContext in channel[0] - 
export keys is available only on channel 0 completion - see RFC 4.5.2 */
        bzrtpChannelContext_t *zrtpChannelContext = 
zrtpContext->channelContext[0];
 
-       if (zrtpContext->peerBzrtpVersion == 0x010000) { /* keep compatibility 
with older implementation of bzrtp */
-#ifdef SUPPORT_EXPORTEDKEY_V010000
-               /* before version 1.1.0 (turned into an int MMmmpp -> 010100) 
exported keys wrongly derives from given label and s0 direclty instead of
-               deriving one Exported Key from S0 and then as many as needed 
from the exported key as specified in the RFC section 4.5.2 */
-               if (zrtpChannelContext->s0 == NULL || 
zrtpChannelContext->KDFContext == NULL) {
-                       return BZRTP_ERROR_INVALIDCONTEXT;
-               }
-
-               /* We derive a maximum of hashLength bytes */
-               if (*derivedKeyLength > zrtpChannelContext->hashLength) {
-                       *derivedKeyLength = zrtpChannelContext->hashLength;
-               }
-
-               bzrtp_keyDerivationFunction(zrtpChannelContext->s0, 
zrtpChannelContext->hashLength, (uint8_t *)label, labelLength, 
zrtpChannelContext->KDFContext, zrtpChannelContext->KDFContextLength, 
(uint_t)(*derivedKeyLength), zrtpChannelContext->hmacFunction, derivedKey);
-#else /* SUPPORT_EXPORTEDKEY_V010000 */
+       if (zrtpContext->peerBzrtpVersion == 0x010000) { /* older 
implementation of bzrtp had a bug in key export, retrocompatibility is not 
supported anymore */
                /* We do not support anymore backward compatibility, just do 
nothing but send an error message*/
                if (zrtpContext->zrtpCallbacks.bzrtp_statusMessage!=NULL && 
zrtpContext->zrtpCallbacks.bzrtp_messageLevel>=BZRTP_MESSAGE_ERROR) { /* use 
error level as we explicitely compile with no support for older version */
                        
zrtpContext->zrtpCallbacks.bzrtp_statusMessage(zrtpChannelContext->clientData, 
BZRTP_MESSAGE_ERROR, BZRTP_MESSAGE_PEERVERSIONOBSOLETE, "obsolete bzrtp version 
are not supported anymore");
                }
-#endif /* SUPPORT_EXPORTEDKEY_V010000 */
        } else { /* peer either use version 1.1 of BZRTP or another library, 
just stick to the RFC to create the export key */
                if ((zrtpChannelContext->s0 == NULL && 
zrtpContext->exportedKey) || zrtpChannelContext->KDFContext == NULL) {
                        return BZRTP_ERROR_INVALIDCONTEXT;
@@ -1306,7 +1291,7 @@
 {
        int i;
 
-       for (i=0; i<size; i++) {
+       for (i=0; i<(size&0x07); i++) {
                destination[i] = source[i];
        }
        return size;
@@ -1333,6 +1318,7 @@
        case(ZRTP_AUTHTAG_HS80): return "HMAC-SHA1-80";
        case(ZRTP_AUTHTAG_SK32): return "Skein-32";
        case(ZRTP_AUTHTAG_SK64): return "Skein-64";
+       case(ZRTP_AUTHTAG_GCM): return "GCM";
 
        case(ZRTP_KEYAGREEMENT_DH2k): return "DHM-2048";
        case(ZRTP_KEYAGREEMENT_EC25): return "ECDH-256";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/src/cryptoUtils.cc 
new/bzrtp-5.3.26/src/cryptoUtils.cc
--- old/bzrtp-5.2.98/src/cryptoUtils.cc 2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/src/cryptoUtils.cc 2023-10-20 15:50:20.000000000 +0200
@@ -49,9 +49,10 @@
                availableTypes[1] = ZRTP_CIPHER_AES3;
                return 2;
        case ZRTP_AUTHTAG_TYPE:
-               availableTypes[0] = ZRTP_AUTHTAG_HS32;
-               availableTypes[1] = ZRTP_AUTHTAG_HS80;
-               return 2;
+               availableTypes[0] = ZRTP_AUTHTAG_GCM;
+               availableTypes[1] = ZRTP_AUTHTAG_HS32;
+               availableTypes[2] = ZRTP_AUTHTAG_HS80;
+               return 3;
        case ZRTP_KEYAGREEMENT_TYPE:
        {
                /* get availables types from bctoolbox */
@@ -846,6 +847,8 @@
                        return ZRTP_AUTHTAG_SK32;
                } else if (memcmp(algoType, "SK64", 4) == 0) {
                        return ZRTP_AUTHTAG_SK64;
+               } else if (memcmp(algoType, "GCM ", 4) == 0) {
+                       return ZRTP_AUTHTAG_GCM;
                }
                return ZRTP_UNSET_ALGO;
        }
@@ -975,6 +978,9 @@
        case ZRTP_AUTHTAG_SK64:
                memcpy(algoTypeString, "SK64", 4);
                break;
+       case ZRTP_AUTHTAG_GCM:
+               memcpy(algoTypeString, "GCM ", 4);
+               break;
        case ZRTP_KEYAGREEMENT_DH2k:
                memcpy(algoTypeString, "DH2k", 4);
                break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/src/stateMachine.c 
new/bzrtp-5.3.26/src/stateMachine.c
--- old/bzrtp-5.2.98/src/stateMachine.c 2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/src/stateMachine.c 2023-10-20 15:50:20.000000000 +0200
@@ -2622,18 +2622,21 @@
        /* allocate memory */
        uint8_t *srtpkeyi = (uint8_t 
*)malloc(zrtpChannelContext->cipherKeyLength*sizeof(uint8_t));
        uint8_t *srtpkeyr = (uint8_t 
*)malloc(zrtpChannelContext->cipherKeyLength*sizeof(uint8_t));
-       uint8_t *srtpsalti = (uint8_t *)malloc(14*sizeof(uint8_t));/* salt 
length is defined to be 112 bits(14 bytes) in rfc section 4.5.3 */
-       uint8_t *srtpsaltr = (uint8_t *)malloc(14*sizeof(uint8_t));/* salt 
length is defined to be 112 bits(14 bytes) in rfc section 4.5.3 */
+       /* master salt size for srtp GCM auth tag in srtp is 12 bytes when 
using GCM authentication
+        * 14 otherwise (RFC section 4.5.3) - GCM support is not in the 
original RFC */
+       uint8_t srtpsaltlength = (zrtpChannelContext->authTagAlgo == 
ZRTP_AUTHTAG_GCM)?12:14;
+       uint8_t *srtpsalti = (uint8_t *)malloc(srtpsaltlength*sizeof(uint8_t));
+       uint8_t *srtpsaltr = (uint8_t *)malloc(srtpsaltlength*sizeof(uint8_t));
        /* compute keys and salts according to rfc section 4.5.3 */
        /* srtpkeyi = KDF(s0, "Initiator SRTP master key", KDF_Context, 
negotiated AES key length) */
        retval = bzrtp_keyDerivationFunction(zrtpChannelContext->s0, 
zrtpChannelContext->hashLength, (uint8_t *)"Initiator SRTP master key", 25, 
zrtpChannelContext->KDFContext, zrtpChannelContext->KDFContextLength, 
zrtpChannelContext->cipherKeyLength, zrtpChannelContext->hmacFunction, 
srtpkeyi);
        /* srtpsalti = KDF(s0, "Initiator SRTP master salt", KDF_Context, 112) 
*/
-       retval += bzrtp_keyDerivationFunction(zrtpChannelContext->s0, 
zrtpChannelContext->hashLength, (uint8_t *)"Initiator SRTP master salt", 26, 
zrtpChannelContext->KDFContext, zrtpChannelContext->KDFContextLength, 14, 
zrtpChannelContext->hmacFunction, srtpsalti);
+       retval += bzrtp_keyDerivationFunction(zrtpChannelContext->s0, 
zrtpChannelContext->hashLength, (uint8_t *)"Initiator SRTP master salt", 26, 
zrtpChannelContext->KDFContext, zrtpChannelContext->KDFContextLength, 
srtpsaltlength, zrtpChannelContext->hmacFunction, srtpsalti);
 
        /* srtpkeyr = KDF(s0, "Responder SRTP master key", KDF_Context, 
negotiated AES key length) */
        retval += bzrtp_keyDerivationFunction(zrtpChannelContext->s0, 
zrtpChannelContext->hashLength, (uint8_t *)"Responder SRTP master key", 25, 
zrtpChannelContext->KDFContext, zrtpChannelContext->KDFContextLength, 
zrtpChannelContext->cipherKeyLength, zrtpChannelContext->hmacFunction, 
srtpkeyr);
        /* srtpsaltr = KDF(s0, "Responder SRTP master salt", KDF_Context, 112) 
*/
-       retval += bzrtp_keyDerivationFunction(zrtpChannelContext->s0, 
zrtpChannelContext->hashLength, (uint8_t *)"Responder SRTP master salt", 26, 
zrtpChannelContext->KDFContext, zrtpChannelContext->KDFContextLength, 14, 
zrtpChannelContext->hmacFunction, srtpsaltr);
+       retval += bzrtp_keyDerivationFunction(zrtpChannelContext->s0, 
zrtpChannelContext->hashLength, (uint8_t *)"Responder SRTP master salt", 26, 
zrtpChannelContext->KDFContext, zrtpChannelContext->KDFContextLength, 
srtpsaltlength, zrtpChannelContext->hmacFunction, srtpsaltr);
 
        if (retval!=0) {
                free(srtpkeyi);
@@ -2659,9 +2662,9 @@
 
        /* Set the length in secrets structure */
        zrtpChannelContext->srtpSecrets.selfSrtpKeyLength = 
zrtpChannelContext->cipherKeyLength;
-       zrtpChannelContext->srtpSecrets.selfSrtpSaltLength = 14; /* salt length 
is defined to be 112 bits(14 bytes) in rfc section 4.5.3 */
+       zrtpChannelContext->srtpSecrets.selfSrtpSaltLength = srtpsaltlength;
        zrtpChannelContext->srtpSecrets.peerSrtpKeyLength = 
zrtpChannelContext->cipherKeyLength;
-       zrtpChannelContext->srtpSecrets.peerSrtpSaltLength = 14; /* salt length 
is defined to be 112 bits(14 bytes) in rfc section 4.5.3 */
+       zrtpChannelContext->srtpSecrets.peerSrtpSaltLength = srtpsaltlength;
 
        /* Set the used algo in secrets structure */
        zrtpChannelContext->srtpSecrets.cipherAlgo = 
zrtpChannelContext->cipherAlgo;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/src/zidCache.c 
new/bzrtp-5.3.26/src/zidCache.c
--- old/bzrtp-5.2.98/src/zidCache.c     2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/src/zidCache.c     2023-10-20 15:50:20.000000000 +0200
@@ -26,10 +26,6 @@
 
 #ifdef ZIDCACHE_ENABLED
 #include "sqlite3.h"
-#ifdef HAVE_LIBXML2
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-#endif /* HAVE_LIBXML2 */
 
 #ifdef _WIN32
 #include <malloc.h>
@@ -97,7 +93,6 @@
  *
  * All values except zuid in the following tables are blob, actual integers 
are split and stored in big endian by callers
  * zrtp : zuid(as foreign key) | rs1 | rs2 | aux secret | pbx secret | pvs flag
- * lime : zuid(as foreign key) | sndKey | rcvKey | sndSId | rcvSId | snd Index 
| rcv Index | valid
  */
 static int bzrtp_initCache_impl(void *dbPointer) {
        char* errmsg=NULL;
@@ -209,20 +204,6 @@
                return BZRTP_ZIDCACHE_UNABLETOUPDATE;
        }
 
-       /* check/create the lime table */
-       ret=sqlite3_exec(db,"CREATE TABLE IF NOT EXISTS lime ("
-                                                       "zuid           INTEGER 
NOT NULL DEFAULT 0 UNIQUE,"
-                                                       "sndKey         BLOB 
DEFAULT NULL,"
-                                                       "rcvKey         BLOB 
DEFAULT NULL,"
-                                                       "sndSId         BLOB 
DEFAULT NULL,"
-                                                       "rcvSId         BLOB 
DEFAULT NULL,"
-                                                       "sndIndex       BLOB 
DEFAULT NULL,"
-                                                       "rcvIndex       BLOB 
DEFAULT NULL,"
-                                                       "valid          BLOB 
DEFAULT NULL,"
-                                                       "FOREIGN KEY(zuid) 
REFERENCES ziduri(zuid) ON UPDATE CASCADE ON DELETE CASCADE"
-
-                                               ");",
-                       0,0,&errmsg);
        if(ret != SQLITE_OK) {
                sqlite3_free(errmsg);
                return BZRTP_ZIDCACHE_UNABLETOUPDATE;
@@ -960,194 +941,6 @@
        }
 }
 
-/**
- * @brief Perform migration from xml version to sqlite3 version of cache
- *     Warning: new version of cache associate a ZID to each local URI, the 
old one did not
- *             the migration function will associate any data in the cache to 
the sip URI given in parameter which shall be the default URI
- * @param[in]          cacheXml        a pointer to an xmlDocPtr structure 
containing the old cache to be migrated
- * @param[in/out]      cacheSqlite     a pointer to an sqlite3 structure 
containing a cache initialised using bzrtp_cache_init function
- * @param[in]          selfURI         default sip URI for this end point, 
NULL terminated char
- *
- * @return     0 on success, BZRTP_ERROR_CACHEDISABLED when bzrtp was not 
compiled with cache enabled, BZRTP_ERROR_CACHEMIGRATIONFAILED on error during 
migration
- */
-int bzrtp_cache_migration(void *cacheXmlPtr, void *cacheSqlite, const char 
*selfURI) {
-#ifdef HAVE_LIBXML2
-       if (cacheXmlPtr) {
-               xmlDocPtr cacheXml = (xmlDocPtr)cacheXmlPtr;
-               xmlNodePtr cur;
-               xmlChar *selfZidHex=NULL;
-               uint8_t selfZID[12];
-               sqlite3 *db = (sqlite3 *)cacheSqlite;
-               sqlite3_stmt *sqlStmt = NULL;
-               int ret;
-
-               /* parse the cache to get the selfZID and insert it in sqlcache 
*/
-               cur = xmlDocGetRootElement(cacheXml);
-               /* if we found a root element, parse its children node */
-               if (cur!=NULL)
-               {
-                       cur = cur->xmlChildrenNode;
-               }
-               selfZidHex = NULL;
-               while (cur!=NULL) {
-                       if ((!xmlStrcmp(cur->name, (const xmlChar 
*)"selfZID"))){ /* self ZID found, extract it */
-                               selfZidHex = xmlNodeListGetString(cacheXml, 
cur->xmlChildrenNode, 1);
-                               bctbx_str_to_uint8(selfZID, selfZidHex, 24);
-                               break;
-                       }
-                       cur = cur->next;
-               }
-               /* did we found a self ZID? */
-               if (selfZidHex == NULL) {
-                       bctbx_warning("ZRTP/LIME cache migration: Failed to 
parse selfZID");
-                       return BZRTP_ERROR_CACHEMIGRATIONFAILED;
-               }
-
-               /* insert the selfZID in cache, associate it to default local 
sip:uri in case we have more than one */
-               bctbx_message("ZRTP/LIME cache migration: found selfZID %.24s 
link it to default URI %s in SQL cache", selfZidHex, selfURI);
-               xmlFree(selfZidHex);
-
-               ret = sqlite3_prepare_v2(db, "INSERT INTO ziduri 
(zid,selfuri,peeruri) VALUES(?,?,?);", -1, &sqlStmt, NULL);
-               if (ret != SQLITE_OK) {
-                       bctbx_warning("ZRTP/LIME cache migration: Failed to 
insert selfZID");
-                       return BZRTP_ERROR_CACHEMIGRATIONFAILED;
-               }
-               sqlite3_bind_blob(sqlStmt, 1, selfZID, 12, SQLITE_TRANSIENT);
-               sqlite3_bind_text(sqlStmt, 2, selfURI,-1,SQLITE_TRANSIENT);
-               sqlite3_bind_text(sqlStmt, 3, "self",-1,SQLITE_TRANSIENT);
-
-               ret = sqlite3_step(sqlStmt);
-               if (ret!=SQLITE_DONE) {
-                       bctbx_warning("ZRTP/LIME cache migration: Failed to 
insert selfZID");
-                       return BZRTP_ERROR_CACHEMIGRATIONFAILED;
-               }
-               sqlite3_finalize(sqlStmt);
-
-               /* loop over all the peer node in the xml cache and get from 
them : uri(can be more than one), ZID, rs1, rs2, pvs, sndKey, rcvKey, sndSId, 
rcvSId, sndIndex, rcvIndex, valid */
-               /* some of these may be missing(pvs, valid, rs2) but we'll 
consider them NULL */
-               /* aux and pbx secrets were not used, so don't even bother 
looking for them */
-               cur = xmlDocGetRootElement(cacheXml)->xmlChildrenNode;
-
-               while (cur!=NULL) { /* loop on all peer nodes */
-                       if ((!xmlStrcmp(cur->name, (const xmlChar *)"peer"))) { 
/* found a peer node, check if there is a sipURI node in it (other nodes are 
just ignored) */
-                               int i;
-                               xmlNodePtr peerNodeChildren = 
cur->xmlChildrenNode;
-                               xmlChar *nodeContent = NULL;
-                               xmlChar *peerZIDString = NULL;
-                               uint8_t peerZID[12];
-                               uint8_t peerZIDFound=0;
-                               xmlChar *peerUri[128]; /* array to contain all 
the peer uris found in one node */
-                               /* hopefully they won't be more than 128(it 
would mean some peer has more than 128 accounts and we called all of them...) */
-                               int peerUriIndex=0; /* index of previous array 
*/
-                               const char *zrtpColNames[] = {"rs1", "rs2", 
"pvs"};
-                               uint8_t *zrtpColValues[] = {NULL, NULL, NULL};
-                               size_t zrtpColExpectedLengths[] = {32,32,1};
-                               size_t zrtpColLengths[] = {0,0,0};
-
-                               const char *limeColNames[] = {"sndKey", 
"rcvKey", "sndSId", "rcvSId", "sndIndex", "rcvIndex", "valid"};
-                               uint8_t *limeColValues[] = {NULL, NULL, NULL, 
NULL, NULL, NULL, NULL};
-                               size_t limeColExpectedLengths[] = 
{32,32,32,32,4,4,8};
-                               size_t limeColLengths[] = {0,0,0,0,0,0,0};
-
-                               /* check all the children nodes to retrieve all 
information we may get */
-                               while (peerNodeChildren!=NULL && 
peerUriIndex<128) {
-                                       if (!xmlStrcmp(peerNodeChildren->name, 
(const xmlChar *)"uri")) { /* found a peer an URI node, get the content */
-                                               peerUri[peerUriIndex] = 
xmlNodeListGetString(cacheXml, peerNodeChildren->xmlChildrenNode, 1);
-                                               peerUriIndex++;
-                                       }
-
-                                       if (!xmlStrcmp(peerNodeChildren->name, 
(const xmlChar *)"ZID")) {
-                                               peerZIDString = 
xmlNodeListGetString(cacheXml, peerNodeChildren->xmlChildrenNode, 1);
-                                               bctbx_str_to_uint8(peerZID, 
peerZIDString, 24);
-
-                                               peerZIDFound=1;
-                                       }
-
-                                       for (i=0; i<3; i++) {
-                                               if 
(!xmlStrcmp(peerNodeChildren->name, (const xmlChar *)zrtpColNames[i])) {
-                                                       nodeContent = 
xmlNodeListGetString(cacheXml, peerNodeChildren->xmlChildrenNode, 1);
-                                                       zrtpColValues[i] = 
(uint8_t *)bctbx_malloc(zrtpColExpectedLengths[i]);
-                                                       
bctbx_str_to_uint8(zrtpColValues[i], nodeContent, 2*zrtpColExpectedLengths[i]);
-                                                       
zrtpColLengths[i]=zrtpColExpectedLengths[i];
-                                               }
-                                       }
-
-                                       for (i=0; i<7; i++) {
-                                               if 
(!xmlStrcmp(peerNodeChildren->name, (const xmlChar *)limeColNames[i])) {
-                                                       nodeContent = 
xmlNodeListGetString(cacheXml, peerNodeChildren->xmlChildrenNode, 1);
-                                                       limeColValues[i] = 
(uint8_t *)bctbx_malloc(limeColExpectedLengths[i]);
-                                                       
bctbx_str_to_uint8(limeColValues[i], nodeContent, 2*limeColExpectedLengths[i]);
-                                                       
limeColLengths[i]=limeColExpectedLengths[i];
-                                               }
-                                       }
-
-                                       peerNodeChildren = 
peerNodeChildren->next;
-                                       xmlFree(nodeContent);
-                                       nodeContent=NULL;
-                               }
-
-                               if (peerUriIndex>0 && peerZIDFound==1) { /* we 
found at least an uri in this peer node, extract the keys all other 
informations */
-                                       /* retrieve all the informations */
-
-                                       /* loop over all the uri founds */
-                                       for (i=0; i<peerUriIndex; i++) {
-                                               char *stmt = NULL;
-                                               int zuid;
-                                               /* create the entry in the 
ziduri table (it will give us the zuid to be used to insert infos in lime and 
zrtp tables) */
-                                               /* we could use directly the 
bzrtp_cache_getZuid function, but avoid useless query by directly inserting the 
data */
-                                               stmt = sqlite3_mprintf("INSERT 
INTO ziduri (zid,selfuri,peeruri) VALUES(?,?,?);");
-                                               ret = sqlite3_prepare_v2(db, 
stmt, -1, &sqlStmt, NULL);
-                                               if (ret != SQLITE_OK) {
-                                                       
bctbx_warning("ZRTP/LIME cache migration: Failed to insert peer ZID %s", 
peerUri[i]);
-                                                       return 
BZRTP_ERROR_CACHEMIGRATIONFAILED;
-                                               }
-                                               sqlite3_free(stmt);
-
-                                               sqlite3_bind_blob(sqlStmt, 1, 
peerZID, 12, SQLITE_TRANSIENT);
-                                               sqlite3_bind_text(sqlStmt, 2, 
selfURI, -1, SQLITE_TRANSIENT);
-                                               sqlite3_bind_text(sqlStmt, 3, 
(const char *)(peerUri[i]), -1, SQLITE_TRANSIENT);
-
-                                               ret = sqlite3_step(sqlStmt);
-                                               if (ret!=SQLITE_DONE) {
-                                                       
bctbx_warning("ZRTP/LIME cache migration: Failed to insert peer ZID %s", 
peerUri[i]);
-                                                       return 
BZRTP_ERROR_CACHEMIGRATIONFAILED;
-                                               }
-                                               sqlite3_finalize(sqlStmt);
-                                               /* get the zuid created */
-                                               zuid = 
(int)sqlite3_last_insert_rowid(db);
-
-                                               bctbx_message("ZRTP/LIME cache 
migration: Inserted self %s peer %s ZID %s sucessfully with zuid %d\n", 
selfURI, peerUri[i], peerZIDString, zuid);
-                                               xmlFree(peerUri[i]);
-                                               peerUri[i]=NULL;
-
-                                               /* now insert data in the zrtp 
and lime table, keep going even if it fails */
-                                               if 
((ret=bzrtp_cache_write_impl(db, zuid, "zrtp", zrtpColNames, zrtpColValues, 
zrtpColLengths, 3)) != 0) {
-                                                       bctbx_error("ZRTP/LIME 
cache migration: could not insert data in zrtp table, return value %x", ret);
-                                               }
-                                               if 
((ret=bzrtp_cache_write_impl(db, zuid, "lime", limeColNames, limeColValues, 
limeColLengths, 7)) != 0) {
-                                                       bctbx_error("ZRTP/LIME 
cache migration: could not insert data in lime table, return value %x", ret);
-                                               }
-                                       }
-                               }
-                               bctbx_free(zrtpColValues[0]);
-                               bctbx_free(zrtpColValues[1]);
-                               bctbx_free(zrtpColValues[2]);
-                               for (i=0; i<7; i++) {
-                                       bctbx_free(limeColValues[i]);
-                               }
-                               xmlFree(peerZIDString);
-                       }
-                       cur = cur->next;
-               }
-               return 0;
-       }
-       return BZRTP_ERROR_CACHEMIGRATIONFAILED;
-#else /* HAVE_LIBXML2 */
-       bctbx_error("ZRTP/LIME cache migration: could not perform migration as 
LIBMXL2 is not linked to bzrtp.");
-       return BZRTP_ERROR_CACHEMIGRATIONFAILED;
-#endif /* HAVE_LIBXML2 */
-}
-
 /*
  * @brief Retrieve from bzrtp cache the trust status(based on the previously 
verified flag) of a peer URI
  *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/test/CMakeLists.txt 
new/bzrtp-5.3.26/test/CMakeLists.txt
--- old/bzrtp-5.2.98/test/CMakeLists.txt        2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/test/CMakeLists.txt        2023-10-20 15:50:20.000000000 
+0200
@@ -1,6 +1,6 @@
 ############################################################################
 # CMakeLists.txt
-# Copyright (C) 2014  Belledonne Communications, Grenoble France
+# Copyright (C) 2014-2023  Belledonne Communications, Grenoble France
 #
 ############################################################################
 #
@@ -38,36 +38,18 @@
 bc_apply_compile_flags(BZRTP_TEST_C_SOURCES STRICT_OPTIONS_CPP 
STRICT_OPTIONS_C)
 bc_apply_compile_flags(BZRTP_TEST_CXX_SOURCES STRICT_OPTIONS_CPP 
STRICT_OPTIONS_CXX)
 
-add_executable(bzrtpTest ${BZRTP_TEST_C_SOURCES} ${BZRTP_TEST_CXX_SOURCES})
-set_target_properties(bzrtpTest PROPERTIES LINK_FLAGS "${LINK_FLAGS}")
-set_target_properties(bzrtpTest PROPERTIES LINKER_LANGUAGE CXX)
-
-target_link_libraries(bzrtpTest PRIVATE bctoolbox bctoolbox-tester)
-
-if(ENABLE_STATIC)
-       target_link_libraries(bzrtpTest PRIVATE bzrtp)
-else()
-       target_link_libraries(bzrtpTest PRIVATE bzrtp)
-endif()
-if(SQLITE3_FOUND)
-       target_include_directories(bzrtpTest PRIVATE ${SQLITE3_INCLUDE_DIRS})
-       target_link_libraries(bzrtpTest PRIVATE ${SQLITE3_LIBRARIES})
-endif()
-if(XML2_FOUND)
-       target_include_directories(bzrtpTest PRIVATE ${XML2_INCLUDE_DIRS})
-       target_link_libraries(bzrtpTest PRIVATE ${XML2_LIBRARIES})
+add_executable(bzrtp-tester ${BZRTP_TEST_C_SOURCES} ${BZRTP_TEST_CXX_SOURCES})
+set_target_properties(bzrtp-tester PROPERTIES LINK_FLAGS "${LINK_FLAGS}")
+set_target_properties(bzrtp-tester PROPERTIES LINKER_LANGUAGE CXX)
+target_link_libraries(bzrtp-tester PRIVATE ${BCToolbox_tester_TARGET} bzrtp)
+if(HAVE_SQRT AND NOT WIN32)
+       target_link_libraries(bzrtp-tester PRIVATE m)
 endif()
 
-if(HAVE_SQRT)
-       target_link_libraries(bzrtpTest PRIVATE m)
-endif()
-
-unset(PATTERN_FILES_IN_TEST_DIR CACHE)
-find_file(PATTERN_FILES_IN_TEST_DIR
-       patternZIDAlice.sqlite ${CMAKE_CURRENT_BINARY_DIR}
+install(TARGETS bzrtp-tester
+       RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+       LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+       PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ 
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
 )
-if (NOT PATTERN_FILES_IN_TEST_DIR)
-       file(COPY patternZIDAlice.sqlite DESTINATION 
${CMAKE_CURRENT_BINARY_DIR})
-endif()
-
-add_test(NAME bzrtpTest COMMAND bzrtpTest --resource-dir .)
+install(FILES patternZIDAlice.sqlite DESTINATION 
"${CMAKE_INSTALL_DATADIR}/bzrtp-tester")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/test/bzrtpConfigsTest.c 
new/bzrtp-5.3.26/test/bzrtpConfigsTest.c
--- old/bzrtp-5.2.98/test/bzrtpConfigsTest.c    2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/test/bzrtpConfigsTest.c    2023-10-20 15:50:20.000000000 
+0200
@@ -21,6 +21,7 @@
 #include <time.h>
 
 #include <bctoolbox/defs.h>
+#include <bctoolbox/port.h>
 
 #include "bzrtp/bzrtp.h"
 #include "zidCache.h"
@@ -82,8 +83,8 @@
 #define ALICE_SSRC_BASE 0x12345000
 #define BOB_SSRC_BASE 0x87654000
 
-static cryptoParams_t withoutX255 = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0};
-static cryptoParams_t withX255 = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0};
+static cryptoParams_t withoutX255 = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0};
+static cryptoParams_t withX255 = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0};
 cryptoParams_t *defaultCryptoAlgoSelection(void) {
        if (bctbx_key_agreement_algo_list()&BCTBX_ECDH_X25519) {
                return &withX255;
@@ -91,8 +92,8 @@
        return &withoutX255;
 }
 
-static cryptoParams_t withoutX255noSAS = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,1};
-static cryptoParams_t withX255noSAS = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,1};
+static cryptoParams_t withoutX255noSAS = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,1};
+static cryptoParams_t withX255noSAS = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,1};
 cryptoParams_t *defaultCryptoAlgoSelectionNoSASValidation(void) {
        if (bctbx_key_agreement_algo_list()&BCTBX_ECDH_X25519) {
                return &withX255noSAS;
@@ -100,8 +101,8 @@
        return &withoutX255noSAS;
 }
 
-static cryptoParams_t withoutX255resetSAS = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,2};
-static cryptoParams_t withX255resetSAS = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,2};
+static cryptoParams_t withoutX255resetSAS = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,2};
+static cryptoParams_t withX255resetSAS = 
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,2};
 cryptoParams_t *defaultCryptoAlgoSelectionResetSAS(void) {
        if (bctbx_key_agreement_algo_list()&BCTBX_ECDH_X25519) {
                return &withX255resetSAS;
@@ -149,7 +150,7 @@
        if (loosePacketPercentage > 0) {
                totalPacketSent++; // Stats on packets sent only when we can 
loose packets
                /* make sure we cannot loose 10 packets in a row from the same 
sender */
-               if ((continuousPacketLost<10) && ((float)((rand()%100 )) < 
loosePacketPercentage-((clientContext->id == 
ALICE)?fadingLostAlice:fadingLostBob))) { /* randomly discard packets */
+               if ((continuousPacketLost<10) && ((float)((bctbx_random()%100 
)) < loosePacketPercentage-((clientContext->id == 
ALICE)?fadingLostAlice:fadingLostBob))) { /* randomly discard packets */
                        //bzrtp_message("%d Loose %.8s from %s - LC %d\n", 
msSTC, packetString+16, (clientContext->id==ALICE?"Alice":"Bob"), 
totalPacketLost);
 
                        if (clientContext->id == ALICE) {
@@ -695,43 +696,59 @@
        cryptoParams_t patterns[] = {
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH3k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_DH2k},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                {{0},0,{0},0,{0},0,{0},0,{0},0,0}, /* this pattern will end the 
run because cipher nb is 0 */
                };
@@ -741,73 +758,89 @@
 
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X448},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS32},1,0},
                
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S384},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_HS80},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_X255},1,{ZRTP_SAS_B256},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                {{0},0,{0},0,{0},0,{0},0,{0},0,0}, /* this pattern will end the 
run because cipher nb is 0 */
        };
 
        /* serie tested only if OQS PQC KEM are available */
        cryptoParams_t kem_patterns[] = {
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_KYB1},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_KYB2},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_KYB3},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_HQC1},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_HQC2},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_HQC3},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_K255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
 /* K255 and K448 are available only if OQS is available */
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_K448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_KYB1},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_KYB2},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_KYB3},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_HQC1},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_HQC2},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_HQC3},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_K255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
 /* K255 and K448 are available only if OQS is available */
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K255},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES1},1,{ZRTP_HASH_S256},1,{ZRTP_KEYAGREEMENT_K448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K448},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
 
                {{0},0,{0},0,{0},0,{0},0,{0},0,0}, /* this pattern will end the 
run because cipher nb is 0 */
        };
 
        /* serie tested only when both ECDH and OQS PQC KEM available */
        cryptoParams_t hybrid_kem_patterns[] = {
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K255_KYB512},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K255_HQC128},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K448_KYB1024},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K448_HQC256},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K255_KYB512_HQC128},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
-               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K448_KYB1024_HQC256},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_HS32},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K255_KYB512},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K255_HQC128},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K448_KYB1024},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K448_HQC256},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K255_KYB512_HQC128},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
+               
{{ZRTP_CIPHER_AES3},1,{ZRTP_HASH_S512},1,{ZRTP_KEYAGREEMENT_K448_KYB1024_HQC256},1,{ZRTP_SAS_B32},1,{ZRTP_AUTHTAG_GCM},1,0},
                
                {{0},0,{0},0,{0},0,{0},0,{0},0,0}, /* this pattern will end the 
run because cipher nb is 0 */
        };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/test/bzrtpCryptoTest.cc 
new/bzrtp-5.3.26/test/bzrtpCryptoTest.cc
--- old/bzrtp-5.2.98/test/bzrtpCryptoTest.cc    2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/test/bzrtpCryptoTest.cc    2023-10-20 15:50:20.000000000 
+0200
@@ -148,17 +148,17 @@
 static int compareAllAlgoTypesWithExpectedChangedOnly(bzrtpChannelContext_t 
*zrtpChannelContext, uint8_t expectedAlgoType, uint8_t expectedType) {
        switch(expectedAlgoType) {
                case ZRTP_HASH_TYPE:
-                       return compareAllAlgoTypes(zrtpChannelContext, 
expectedType,   ZRTP_CIPHER_AES1, ZRTP_AUTHTAG_HS32, 
getDefaultKeyAgreementAlgo(), ZRTP_SAS_B32);
+                       return compareAllAlgoTypes(zrtpChannelContext, 
expectedType,   ZRTP_CIPHER_AES1, ZRTP_AUTHTAG_GCM, 
getDefaultKeyAgreementAlgo(), ZRTP_SAS_B32);
                case ZRTP_CIPHERBLOCK_TYPE:
-                       return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, expectedType,     ZRTP_AUTHTAG_HS32, 
getDefaultKeyAgreementAlgo(), ZRTP_SAS_B32);
+                       return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, expectedType,     ZRTP_AUTHTAG_GCM, 
getDefaultKeyAgreementAlgo(), ZRTP_SAS_B32);
                case ZRTP_AUTHTAG_TYPE:
                        return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, ZRTP_CIPHER_AES1, expectedType,      
getDefaultKeyAgreementAlgo(), ZRTP_SAS_B32);
                case ZRTP_KEYAGREEMENT_TYPE:
-                       return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, ZRTP_CIPHER_AES1, ZRTP_AUTHTAG_HS32, expectedType,           
ZRTP_SAS_B32);
+                       return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, ZRTP_CIPHER_AES1, ZRTP_AUTHTAG_GCM, expectedType,           
ZRTP_SAS_B32);
                case ZRTP_SAS_TYPE:
-                       return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, ZRTP_CIPHER_AES1, ZRTP_AUTHTAG_HS32, 
getDefaultKeyAgreementAlgo(), expectedType);
+                       return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, ZRTP_CIPHER_AES1, ZRTP_AUTHTAG_GCM, 
getDefaultKeyAgreementAlgo(), expectedType);
                default:
-                       return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, ZRTP_CIPHER_AES1, ZRTP_AUTHTAG_HS32, 
getDefaultKeyAgreementAlgo(), ZRTP_SAS_B32);
+                       return compareAllAlgoTypes(zrtpChannelContext, 
ZRTP_HASH_S256, ZRTP_CIPHER_AES1, ZRTP_AUTHTAG_GCM, 
getDefaultKeyAgreementAlgo(), ZRTP_SAS_B32);
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/test/bzrtpTest.c 
new/bzrtp-5.3.26/test/bzrtpTest.c
--- old/bzrtp-5.2.98/test/bzrtpTest.c   2023-07-27 15:59:09.000000000 +0200
+++ new/bzrtp-5.3.26/test/bzrtpTest.c   2023-10-20 15:50:20.000000000 +0200
@@ -86,7 +86,7 @@
        bc_tester_set_verbose_func(verbose_arg_func);
        bc_tester_set_logfile_func(logfile_arg_func);
        if (ftester_printf == NULL) ftester_printf = log_handler;
-       bc_tester_init(ftester_printf, BCTBX_LOG_MESSAGE, BCTBX_LOG_ERROR, 
NULL);
+       bc_tester_init(ftester_printf, BCTBX_LOG_MESSAGE, BCTBX_LOG_ERROR, 
"patternZIDAlice.sqlite");
 
        bc_tester_add_suite(&crypto_utils_test_suite);
        bc_tester_add_suite(&packet_parser_test_suite);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bzrtp-5.2.98/test/bzrtpZidCacheTest.c 
new/bzrtp-5.3.26/test/bzrtpZidCacheTest.c
--- old/bzrtp-5.2.98/test/bzrtpZidCacheTest.c   2023-07-27 15:59:09.000000000 
+0200
+++ new/bzrtp-5.3.26/test/bzrtpZidCacheTest.c   2023-10-20 15:50:20.000000000 
+0200
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014-2019 Belledonne Communications SARL.
+ * Copyright (c) 2014-2023 Belledonne Communications SARL.
  *
  * This file is part of bzrtp.
  *
@@ -26,12 +26,6 @@
 
 #ifdef ZIDCACHE_ENABLED
 #include "sqlite3.h"
-#ifdef HAVE_LIBXML2
-#include <libxml/tree.h>
-#include <libxml/parser.h>
-
-static const char *xmlCacheMigration = "<?xml version=\"1.0\" 
encoding=\"UTF-8\"?>\n<cache><selfZID>00112233445566778899aabb</selfZID><peer><ZID>99887766554433221100ffee</ZID><rs1>c4274f13a2b6fa05c15ec93158f930e7264b0a893393376dbc80c6eb1cccdc5a</rs1><uri>sip:[email protected]</uri><sndKey>219d9e445d10d4ed64083c7ccbb83a23bc17a97df0af5de4261f3fe026b05b0b</sndKey><rcvKey>747e72a5cc996413cb9fa6e3d18d8b370436e274cd6ba4efc1a4580340af57ca</rcvKey><sndSId>df2bf38e719fa89e17332cf8d5e774ee70d347baa74d16dee01f306c54789869</sndSId><rcvSId>928ce78b0bfc30427a02b1b668b2b3b0496d5664d7e89b75ed292ee97e3fc850</rcvSId><sndIndex>496bcc89</sndIndex><rcvIndex>59337abe</rcvIndex><rs2>5dda11f388384b349d210612f30824268a3753a7afa52ef6df5866dca76315c4</rs2><uri>sip:[email protected]</uri></peer><peer><ZID>ffeeddccbbaa987654321012</ZID><rs1>858b495dfad483af3c088f26d68c4beebc638bd44feae45aea726a771727235e</rs1><uri>sip:[email protected]</uri><sndKey>b6aac945057bc4466bfe9a23771c6a1b3b8d72ec3e7d8f30ed63c
 
bc5a9479a25</sndKey><rcvKey>bea5ac3225edd0545b816f061a8190370e3ee5160e75404846a34d1580e0c263</rcvKey><sndSId>17ce70fdf12e500294bcb5f2ffef53096761bb1c912b21e972ae03a5a9f05c47</sndSId><rcvSId>7e13a20e15a517700f0be0921f74b96d4b4a0c539d5e14d5cdd8706441874ac0</rcvSId><sndIndex>75e18caa</sndIndex><rcvIndex>2cfbbf06</rcvIndex><rs2>1533dee20c8116dc2c282cae9adfea689b87bc4c6a4e18a846f12e3e7fea3959</rs2></peer><peer><ZID>0987654321fedcba5a5a5a5a</ZID><rs1>cb6ecc87d1dd87b23f225eec53a26fc541384917623e0c46abab8c0350c6929e</rs1><sndKey>92bb03988e8f0ccfefa37a55fd7c5893bea3bfbb27312f49dd9b10d0e3c15fc7</sndKey><rcvKey>2315705a5830b98f68458fcd49623144cb34a667512c4d44686aee125bb8b622</rcvKey><sndSId>94c56eea0dd829379263b6da3f6ac0a95388090f168a3568736ca0bd9f8d595f</sndSId><rcvSId>c319ae0d41183fec90afc412d42253c5b456580f7a463c111c7293623b8631f4</rcvSId><uri>sip:[email protected]</uri><sndIndex>2c46ddcc</sndIndex><rcvIndex>15f5779e</rcvIndex><valid>0000000058f095bf</valid><pvs>01</pvs></peer></cache>";
-#endif /* HAVE_LIBXML2 */
 #endif /* ZIDCACHE_ENABLED */
 
 
@@ -205,49 +199,9 @@
 #endif /* ZIDCACHE_ENABLED */
 }
 
-static void test_cache_migration(void) {
-#ifdef ZIDCACHE_ENABLED
-#ifdef HAVE_LIBXML2
-       uint8_t pattern_selfZIDalice[12] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 
0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb};
-       uint8_t selfZIDalice[12];
-       char *aliceCacheFile = 
bc_tester_file("tmpZIDAlice_cache_migration.sqlite");;
-
-       sqlite3 *aliceDB=NULL;
-       /* Parse the xmlCache */
-       xmlDocPtr cacheXml = xmlParseDoc((xmlChar*)xmlCacheMigration);
-
-       /* create a new DB file */
-       remove(aliceCacheFile);
-       bzrtptester_sqlite3_open(aliceCacheFile, &aliceDB);
-       BC_ASSERT_EQUAL(bzrtp_initCache_lock((void *)aliceDB, NULL), 
BZRTP_CACHE_SETUP, int, "%x");
-
-       /* perform migration */
-       BC_ASSERT_EQUAL(bzrtp_cache_migration((void *)cacheXml, (void 
*)aliceDB, "sip:[email protected]"), 0, int, "%x");
-
-       /* check values in new cache */
-       BC_ASSERT_EQUAL(bzrtp_getSelfZID_lock(aliceDB, 
"sip:[email protected]", selfZIDalice, NULL, NULL), 0, int, "%x");
-       BC_ASSERT_EQUAL(memcmp(pattern_selfZIDalice, selfZIDalice, 12), 0, int, 
"%d");
-       /* TODO: read values from sql cache lime and zrtp tables and check they 
are the expected ones */
-
-       /* cleaning */
-       sqlite3_close(aliceDB);
-       xmlFreeDoc(cacheXml);
-       xmlCleanupParser();
-       remove(aliceCacheFile);
-       bc_free(aliceCacheFile);
-
-#else /* HAVE_LIBXML2 */
-       bzrtp_message("Test skipped as LibXML2 not present\n");
-#endif /* HAVE_LIBXML2 */
-#else /* ZIDCACHE_ENABLED */
-       bzrtp_message("Test skipped as ZID cache is disabled\n");
-#endif /* ZIDCACHE_ENABLED */
-}
-
 static test_t zidcache_tests[] = {
        TEST_NO_TAG("SelfZID", test_cache_getSelfZID),
        TEST_NO_TAG("ZRTP secrets", test_cache_zrtpSecrets),
-       TEST_NO_TAG("Migration", test_cache_migration),
 };
 
 test_suite_t zidcache_test_suite = {

++++++ bzrtp-fix-pkgconfig.patch ++++++
--- /var/tmp/diff_new_pack.Md6wvk/_old  2024-03-14 17:46:21.852261353 +0100
+++ /var/tmp/diff_new_pack.Md6wvk/_new  2024-03-14 17:46:21.856261500 +0100
@@ -1,6 +1,8 @@
---- bzrtp-5.2.6/CMakeLists.txt.orig    2023-01-04 12:21:34.984376758 +0100
-+++ bzrtp-5.2.6/CMakeLists.txt 2023-01-04 12:21:49.892454977 +0100
-@@ -80,6 +80,14 @@
+Index: bzrtp-5.3.7/CMakeLists.txt
+===================================================================
+--- bzrtp-5.3.7.orig/CMakeLists.txt
++++ bzrtp-5.3.7/CMakeLists.txt
+@@ -58,6 +58,14 @@ configure_file(${CMAKE_CURRENT_SOURCE_DI
  set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/config.h PROPERTIES 
GENERATED ON)
  add_definitions("-DHAVE_CONFIG_H")
  
@@ -13,6 +15,6 @@
 +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libbzrtp.pc DESTINATION 
"${CMAKE_INSTALL_LIBDIR}/pkgconfig")
 +
  bc_init_compilation_flags(STRICT_OPTIONS_CPP STRICT_OPTIONS_C 
STRICT_OPTIONS_CXX ENABLE_STRICT)
- if(CMAKE_VERSION VERSION_LESS 3.1 AND NOT APPLE AND NOT MSVC)
-       list(APPEND STRICT_OPTIONS_CXX "-std=c++11")
+ 
+ set(BZRTP_CPPFLAGS ${BCTOOLBOX_CPPFLAGS})
 

++++++ set_current_version.patch ++++++
--- /var/tmp/diff_new_pack.Md6wvk/_old  2024-03-14 17:46:21.872262089 +0100
+++ /var/tmp/diff_new_pack.Md6wvk/_new  2024-03-14 17:46:21.872262089 +0100
@@ -1,12 +1,14 @@
---- bzrtp-5.2.30/CMakeLists.txt.orig   2023-03-08 08:57:00.053520234 +0100
-+++ bzrtp-5.2.30/CMakeLists.txt        2023-03-08 08:57:06.909556904 +0100
-@@ -28,7 +28,7 @@
-     cmake_policy(SET CMP0077 NEW)
- endif()
+Index: bzrtp-5.3.7/CMakeLists.txt
+===================================================================
+--- bzrtp-5.3.7.orig/CMakeLists.txt
++++ bzrtp-5.3.7/CMakeLists.txt
+@@ -22,7 +22,7 @@
  
--project(bzrtp VERSION 5.2.0 LANGUAGES C CXX)
-+project(bzrtp VERSION 5.2.98 LANGUAGES C CXX)
+ cmake_minimum_required(VERSION 3.22)
  
- option(ENABLE_SHARED "Build shared library." YES)
- option(ENABLE_STATIC "Build static library." YES)
+-project(BZRTP VERSION 5.3.0 LANGUAGES C CXX)
++project(BZRTP VERSION 5.3.26 LANGUAGES C CXX)
+ 
+ option(ENABLE_ZIDCACHE "Turn on compilation of ZID cache, request sqlite" YES)
+ option(ENABLE_STRICT "Build with strict compile options." YES)
 

Reply via email to