Hello community,

here is the log from the commit of package xmltooling for openSUSE:Factory 
checked in at 2020-12-02 15:05:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xmltooling (Old)
 and      /work/SRC/openSUSE:Factory/.xmltooling.new.5913 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xmltooling"

Wed Dec  2 15:05:47 2020 rev:13 rq:852605 version:3.1.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/xmltooling/xmltooling.changes    2019-03-22 
15:09:12.373399072 +0100
+++ /work/SRC/openSUSE:Factory/.xmltooling.new.5913/xmltooling.changes  
2020-12-02 15:05:48.997614645 +0100
@@ -1,0 +2,8 @@
+Tue Dec  1 13:13:07 UTC 2020 - Kristyna Streitova <kstreit...@suse.com>
+
+- Update to 3.1.0
+  * [CPPXT-145] - DataSealer is sharing non-thread safe keys
+- update lib version to 9
+- run spec-cleaner
+
+-------------------------------------------------------------------

Old:
----
  xmltooling-3.0.4.tar.bz2
  xmltooling-3.0.4.tar.bz2.asc

New:
----
  xmltooling-3.1.0.tar.bz2
  xmltooling-3.1.0.tar.bz2.asc

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

Other differences:
------------------
++++++ xmltooling.spec ++++++
--- /var/tmp/diff_new_pack.IdCS57/_old  2020-12-02 15:05:49.645615305 +0100
+++ /var/tmp/diff_new_pack.IdCS57/_new  2020-12-02 15:05:49.649615310 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package xmltooling
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,15 +12,15 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
-%define libvers 8
-%define opensaml_version 3.0.1
+%define libvers 9
+%define opensaml_version 3.1.0
 %define pkgdocdir %{_docdir}/%{name}
 Name:           xmltooling
-Version:        3.0.4
+Version:        3.1.0
 Release:        0
 Summary:        OpenSAML XML Processing library
 License:        Apache-2.0
@@ -84,7 +84,6 @@
 
 This package contains just the shared library.
 
-
 %package -n libxmltooling-devel
 Summary:        XMLTooling development Headers
 Group:          Development/Libraries/C and C++
@@ -132,7 +131,7 @@
 %build
 autoreconf -fiv
 %configure
-make %{?_smp_mflags}
+%make_build
 
 %install
 make install DESTDIR=%{buildroot} pkgdocdir=%{pkgdocdir}
@@ -142,11 +141,10 @@
 rm -f %{buildroot}/%{_libdir}/libxmltooling-lite.la
 
 %check
-make %{?_smp_mflags} check
+%make_build check
 
 %post -n libxmltooling%{libvers} -p /sbin/ldconfig
 %post -n libxmltooling-lite%{libvers} -p /sbin/ldconfig
-
 %postun -n libxmltooling%{libvers} -p /sbin/ldconfig
 %postun -n libxmltooling-lite%{libvers} -p /sbin/ldconfig
 

++++++ xmltooling-3.0.4.tar.bz2 -> xmltooling-3.1.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xmltooling-3.0.4/Projects/vc15/xmltooling/xmltooling-lite.vcxproj 
new/xmltooling-3.1.0/Projects/vc15/xmltooling/xmltooling-lite.vcxproj
--- old/xmltooling-3.0.4/Projects/vc15/xmltooling/xmltooling-lite.vcxproj       
2018-11-01 15:08:56.000000000 +0100
+++ new/xmltooling-3.1.0/Projects/vc15/xmltooling/xmltooling-lite.vcxproj       
2020-02-06 01:20:34.000000000 +0100
@@ -89,10 +89,10 @@
     <CodeAnalysisRuleSet 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
     <CodeAnalysisRules 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
     <CodeAnalysisRuleAssemblies 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)3_0</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)3_0</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)3_0D</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)3_0D</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)3_1</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)3_1</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)3_1D</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)3_1D</TargetName>
   </PropertyGroup>
   <ItemDefinitionGroup 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
@@ -161,7 +161,6 @@
       <PrecompiledHeaderFile>
       </PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <DisableSpecificWarnings>4275</DisableSpecificWarnings>
       <ConformanceMode>true</ConformanceMode>
     </ClCompile>
@@ -192,7 +191,6 @@
       <PrecompiledHeaderFile>
       </PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <DisableSpecificWarnings>4275</DisableSpecificWarnings>
       <ConformanceMode>true</ConformanceMode>
     </ClCompile>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xmltooling-3.0.4/Projects/vc15/xmltooling/xmltooling.vcxproj 
new/xmltooling-3.1.0/Projects/vc15/xmltooling/xmltooling.vcxproj
--- old/xmltooling-3.0.4/Projects/vc15/xmltooling/xmltooling.vcxproj    
2018-11-01 15:08:56.000000000 +0100
+++ new/xmltooling-3.1.0/Projects/vc15/xmltooling/xmltooling.vcxproj    
2020-02-06 01:20:34.000000000 +0100
@@ -87,10 +87,10 @@
     <CodeAnalysisRuleSet 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
     <CodeAnalysisRules 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
     <CodeAnalysisRuleAssemblies 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)3_0D</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)3_0D</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)3_0</TargetName>
-    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)3_0</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)3_1D</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectName)3_1D</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectName)3_1</TargetName>
+    <TargetName 
Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)3_1</TargetName>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     
<IntDir>$(SolutionDir)..\..\Build\VC15\$(projectName)\$(Platform)\$(Configuration)\</IntDir>
@@ -162,7 +162,6 @@
       <PrecompiledHeaderFile>
       </PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <DisableSpecificWarnings>4275</DisableSpecificWarnings>
       <ConformanceMode>true</ConformanceMode>
     </ClCompile>
@@ -187,7 +186,6 @@
       <PrecompiledHeaderFile>
       </PrecompiledHeaderFile>
       <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <DisableSpecificWarnings>4275</DisableSpecificWarnings>
       <ConformanceMode>true</ConformanceMode>
     </ClCompile>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xmltooling-3.0.4/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj 
new/xmltooling-3.1.0/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj
--- old/xmltooling-3.0.4/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj    
2018-11-01 15:08:56.000000000 +0100
+++ new/xmltooling-3.1.0/Projects/vc15/xmltoolingtest/xmltoolingtest.vcxproj    
2019-09-27 21:29:32.000000000 +0200
@@ -148,7 +148,6 @@
       
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <DisableSpecificWarnings>4275</DisableSpecificWarnings>
       <ConformanceMode>true</ConformanceMode>
     </ClCompile>
@@ -173,7 +172,6 @@
       
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;_CRT_SECURE_NO_DEPRECATE=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
       <DisableSpecificWarnings>4275</DisableSpecificWarnings>
       <ConformanceMode>true</ConformanceMode>
     </ClCompile>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/config_win32.h 
new/xmltooling-3.1.0/config_win32.h
--- old/xmltooling-3.0.4/config_win32.h 2019-03-08 15:44:44.000000000 +0100
+++ new/xmltooling-3.1.0/config_win32.h 2020-02-06 01:20:34.000000000 +0100
@@ -106,13 +106,13 @@
 #define PACKAGE_NAME "xmltooling"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "xmltooling 3.0.4"
+#define PACKAGE_STRING "xmltooling 3.1.0"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "xmltooling"
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "3.0.4"
+#define PACKAGE_VERSION "3.1.0"
 
 /* Define to the necessary symbol if this constant uses a non-standard name on
    your system. */
@@ -125,7 +125,7 @@
 /* #undef TM_IN_SYS_TIME */
 
 /* Version number of package */
-#define VERSION "3.0.4"
+#define VERSION "3.1.0"
 
 /* Define if you wish to disable XML-Security-dependent features. */
 /* #undef XMLTOOLING_NO_XMLSEC */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/configure 
new/xmltooling-3.1.0/configure
--- old/xmltooling-3.0.4/configure      2019-03-08 15:45:41.000000000 +0100
+++ new/xmltooling-3.1.0/configure      2020-03-06 17:33:38.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for xmltooling 3.0.4.
+# Generated by GNU Autoconf 2.69 for xmltooling 3.1.0.
 #
 # Report bugs to <https://issues.shibboleth.net/>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='xmltooling'
 PACKAGE_TARNAME='xmltooling'
-PACKAGE_VERSION='3.0.4'
-PACKAGE_STRING='xmltooling 3.0.4'
+PACKAGE_VERSION='3.1.0'
+PACKAGE_STRING='xmltooling 3.1.0'
 PACKAGE_BUGREPORT='https://issues.shibboleth.net/'
 PACKAGE_URL=''
 
@@ -1449,7 +1449,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 xmltooling 3.0.4 to adapt to many kinds of systems.
+\`configure' configures xmltooling 3.1.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1519,7 +1519,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xmltooling 3.0.4:";;
+     short | recursive ) echo "Configuration of xmltooling 3.1.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1687,7 +1687,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xmltooling configure 3.0.4
+xmltooling configure 3.1.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2422,7 +2422,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xmltooling $as_me 3.0.4, which was
+It was created by xmltooling $as_me 3.1.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3287,7 +3287,7 @@
 
 # Define the identity of the package.
  PACKAGE='xmltooling'
- VERSION='3.0.4'
+ VERSION='3.1.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -21853,7 +21853,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xmltooling $as_me 3.0.4, which was
+This file was extended by xmltooling $as_me 3.1.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21919,7 +21919,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-xmltooling config.status 3.0.4
+xmltooling config.status 3.1.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/configure.ac 
new/xmltooling-3.1.0/configure.ac
--- old/xmltooling-3.0.4/configure.ac   2019-03-08 15:44:44.000000000 +0100
+++ new/xmltooling-3.1.0/configure.ac   2020-02-06 01:20:34.000000000 +0100
@@ -1,6 +1,6 @@
 # Process this file with autoreconf
 AC_PREREQ([2.50])
-AC_INIT([xmltooling],[3.0.4],[https://issues.shibboleth.net/],[xmltooling])
+AC_INIT([xmltooling],[3.1.0],[https://issues.shibboleth.net/],[xmltooling])
 AC_CONFIG_SRCDIR(xmltooling)
 AC_CONFIG_AUX_DIR(build-aux)
 AC_CONFIG_MACRO_DIR(m4)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling/Makefile.am 
new/xmltooling-3.1.0/xmltooling/Makefile.am
--- old/xmltooling-3.0.4/xmltooling/Makefile.am 2019-03-08 15:44:44.000000000 
+0100
+++ new/xmltooling-3.1.0/xmltooling/Makefile.am 2020-02-06 01:20:34.000000000 
+0100
@@ -229,7 +229,7 @@
        $(PTHREAD_LIBS) \
        $(dlopen_LIBS)
 
-AM_LDFLAGS = -version-info 8:4:0
+AM_LDFLAGS = -version-info 9:0:0
 
 libxmltooling_lite_la_SOURCES = \
        ${common_sources}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling/Makefile.in 
new/xmltooling-3.1.0/xmltooling/Makefile.in
--- old/xmltooling-3.0.4/xmltooling/Makefile.in 2019-03-08 15:45:41.000000000 
+0100
+++ new/xmltooling-3.1.0/xmltooling/Makefile.in 2020-03-06 17:33:37.000000000 
+0100
@@ -913,7 +913,7 @@
        $(PTHREAD_LIBS) \
        $(dlopen_LIBS)
 
-AM_LDFLAGS = -version-info 8:4:0
+AM_LDFLAGS = -version-info 9:0:0
 libxmltooling_lite_la_SOURCES = \
        ${common_sources}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling/io/HTTPRequest.cpp 
new/xmltooling-3.1.0/xmltooling/io/HTTPRequest.cpp
--- old/xmltooling-3.0.4/xmltooling/io/HTTPRequest.cpp  2018-07-10 
03:00:14.000000000 +0200
+++ new/xmltooling-3.1.0/xmltooling/io/HTTPRequest.cpp  2020-04-02 
15:59:58.000000000 +0200
@@ -223,6 +223,9 @@
         split(nvpair, s, is_any_of("="));
         if (nvpair.size() == 2) {
             trim(nvpair[0]);
+            if (ends_with(nvpair[0], "_fgwars")) {
+                nvpair[0].erase(nvpair[0].end() - 7, nvpair[0].end());
+            }
             cookieMap[nvpair[0]] = nvpair[1];
         }
     }
@@ -234,13 +237,26 @@
         string cookies=getHeader("Cookie");
         vector<string> nvpair;
         tokenizer< char_separator<char> > nvpairs(cookies, 
char_separator<char>(";"));
-        for_each(nvpairs.begin(), nvpairs.end(), boost::bind(handle_cookie_fn, 
boost::ref(m_cookieMap), boost::ref(nvpair), _1));
+        for_each(nvpairs.begin(), nvpairs.end(),
+            boost::bind(handle_cookie_fn, boost::ref(m_cookieMap), 
boost::ref(nvpair), _1));
     }
     return m_cookieMap;
 }
 
 const char* HTTPRequest::getCookie(const char* name) const
 {
+    return getCookie(name, false);
+}
+
+const char* HTTPRequest::getCookie(const char* name, bool) const
+{
+    // The fallback support is implemented via the getCookies() load above
+    // so we ignore it here.
+
     map<string,string>::const_iterator lookup = getCookies().find(name);
-    return (lookup==m_cookieMap.end()) ? nullptr : lookup->second.c_str();
+    if (lookup != m_cookieMap.end()) {
+        return lookup->second.c_str();
+    }
+
+    return nullptr;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling/io/HTTPRequest.h 
new/xmltooling-3.1.0/xmltooling/io/HTTPRequest.h
--- old/xmltooling-3.0.4/xmltooling/io/HTTPRequest.h    2018-07-10 
03:00:14.000000000 +0200
+++ new/xmltooling-3.1.0/xmltooling/io/HTTPRequest.h    2020-03-06 
17:33:23.000000000 +0100
@@ -94,12 +94,25 @@
         virtual std::string getHeader(const char* name) const=0;
 
         /**
+        * Get a cookie value supplied by the client.
+        * 
+        * @param name  name of cookie
+        * @return  cookie value or nullptr
+        */
+        virtual const char* getCookie(const char* name) const;
+
+        /**
          * Get a cookie value supplied by the client.
+         *
+         * The boolean flag enables the workaround for older clients with
+         * broken SameSite support by looking for a second cookie with
+         * a decorated name that would not carry the SameSite flag.
          * 
          * @param name  name of cookie
+         * @param sameSiteFallback enables lookaside to fallback cookie name
          * @return  cookie value or nullptr
          */
-        virtual const char* getCookie(const char* name) const;
+        virtual const char* getCookie(const char* name, bool sameSiteFallback) 
const;
 
         /**
          * Gets all the cookies supplied by the client.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling/io/HTTPResponse.cpp 
new/xmltooling-3.1.0/xmltooling/io/HTTPResponse.cpp
--- old/xmltooling-3.0.4/xmltooling/io/HTTPResponse.cpp 2018-07-10 
03:00:14.000000000 +0200
+++ new/xmltooling-3.1.0/xmltooling/io/HTTPResponse.cpp 2020-03-06 
17:33:23.000000000 +0100
@@ -86,11 +86,59 @@
     setResponseHeader("Content-Type", type);
 }
 
-void HTTPResponse::setCookie(const char* name, const char* value)
+void HTTPResponse::setCookie(const char* name, const char* value, time_t 
expires, samesite_t sameSiteValue)
 {
-    string cookie(name);
-    cookie = cookie + '=' + value;
-    setResponseHeader("Set-Cookie", cookie.c_str());
+    setCookie(name, value, expires, sameSiteValue, false);
+}
+
+void HTTPResponse::setCookie(const char* name, const char* value, time_t 
expires, samesite_t sameSiteValue, bool sameSiteFallback)
+{
+    string decoratedValue;
+    if (!value) {
+        decoratedValue += "; expires=Mon, 01 Jan 2001 00:00:00 GMT";
+    }
+    else {
+        decoratedValue = value;
+        if (expires > 0) {
+            expires += time(nullptr);
+#ifndef HAVE_GMTIME_R
+            struct tm* ptime = gmtime(&expires);
+#else
+            struct tm res;
+            struct tm* ptime = gmtime_r(&expires, &res);
+#endif
+            char cookietimebuf[64];
+            strftime(cookietimebuf, 64, "; expires=%a, %d %b %Y %H:%M:%S GMT", 
ptime);
+            decoratedValue.append(cookietimebuf);
+        }
+    }
+
+    if (sameSiteValue != SAMESITE_ABSENT) {
+        // Add SameSite to the primary cookie and optionally set a fallback 
cookie without SameSite.
+        switch (sameSiteValue) {
+            case SAMESITE_NONE:
+                if (sameSiteFallback) {
+                    string hackedName(name);
+                    setResponseHeader("Set-Cookie", 
hackedName.append("_fgwars=").append(decoratedValue).c_str());
+                }
+                decoratedValue.append("; SameSite=None");
+                break;
+            case SAMESITE_LAX:
+                decoratedValue.append("; SameSite=Lax");
+                break;
+            case SAMESITE_STRICT:
+                decoratedValue.append("; SameSite=Strict");
+                break;
+            default:
+                throw IOException("Invalid SameSite value supplied");
+        }
+        string header(name);
+        setResponseHeader("Set-Cookie", 
header.append("=").append(decoratedValue).c_str());
+    }
+    else {
+        string header(name);
+        setResponseHeader("Set-Cookie", 
header.append("=").append(decoratedValue).c_str());
+    }
 }
 
 void HTTPResponse::setResponseHeader(const char* name, const char* value, bool 
replace)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling/io/HTTPResponse.h 
new/xmltooling-3.1.0/xmltooling/io/HTTPResponse.h
--- old/xmltooling-3.0.4/xmltooling/io/HTTPResponse.h   2018-07-10 
03:00:14.000000000 +0200
+++ new/xmltooling-3.1.0/xmltooling/io/HTTPResponse.h   2020-03-06 
17:33:23.000000000 +0100
@@ -65,14 +65,50 @@
          */
         virtual void setResponseHeader(const char* name, const char* value, 
bool replace = false);
 
+        /** Cookie SameSite values. */
+        enum samesite_t {
+            SAMESITE_ABSENT = 0,
+            SAMESITE_NONE = 1,
+            SAMESITE_LAX = 2,
+            SAMESITE_STRICT = 3
+        };
+
         /**
-         * Sets a client cookie.
-         * 
+        * Sets or unsets a client cookie.
+        * 
+        * <p>The boolean flag enables the workaround for older clients with
+        * broken SameSite support by setting a second cookie with
+        * a decorated name that would not carry the SameSite flag.</p>
+        *
+        * @param name  cookie name
+        * @param value value to set, or nullptr to clear
+        * @param expires optional expiration time for the cookie, 0 means 
session
+        * @param sameSiteValue the SameSite value to apply to the cookie
+        * @param sameSiteFallback enables setting of a fallback cookie
+        */
+        virtual void setCookie(
+            const char* name,
+            const char* value,
+            time_t expires,
+            samesite_t sameSiteValue,
+            bool sameSiteFallback);
+
+        /**
+         * Sets or unsets a client cookie.
+         *
+         * <p>Now defaults to calling the new version with a false flag.</p>
+         *
          * @param name  cookie name
          * @param value value to set, or nullptr to clear
+         * @param expires optional expiration time for the cookie, 0 means 
session
+         * @param sameSiteValue the SameSite value to apply to the cookie
          */
-        virtual void setCookie(const char* name, const char* value);
-        
+        virtual void setCookie(
+            const char* name,
+            const char* value,
+            time_t expires = 0,
+            samesite_t sameSiteValue = SAMESITE_ABSENT);
+
         /**
          * Redirect the client to the specified URL and complete the response.
          * 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/xmltooling-3.0.4/xmltooling/security/impl/DataSealer.cpp 
new/xmltooling-3.1.0/xmltooling/security/impl/DataSealer.cpp
--- old/xmltooling-3.0.4/xmltooling/security/impl/DataSealer.cpp        
2018-11-01 15:08:56.000000000 +0100
+++ new/xmltooling-3.1.0/xmltooling/security/impl/DataSealer.cpp        
2020-01-24 14:36:03.000000000 +0100
@@ -156,8 +156,10 @@
 
     safeBuffer ciphertext;
     try {
+        // Keys are not threadsafe, use a clone to encrypt.
+        scoped_ptr<XSECCryptoKey> clonedKey(defaultKey.second->clone());
         scoped_ptr<XENCEncryptionMethod> 
method(XENCEncryptionMethod::create(env.get(), algorithm));
-        if (!handler->encryptToSafeBuffer(&tx, method.get(), 
defaultKey.second, dummydoc, ciphertext)) {
+        if (!handler->encryptToSafeBuffer(&tx, method.get(), clonedKey.get(), 
dummydoc, ciphertext)) {
             throw XMLSecurityException("Data encryption failed.");
         }
     }
@@ -235,8 +237,10 @@
     unsigned int len = 0;
     safeBuffer plaintext;
     try {
+        // Keys are not threadsafe, use a clone to decrypt.
+        scoped_ptr<XSECCryptoKey> clonedKey(requiredKey.second->clone());
         scoped_ptr<XENCEncryptionMethod> 
method(XENCEncryptionMethod::create(env.get(), algorithm));
-        len = handler->decryptToSafeBuffer(&tx, method.get(), 
requiredKey.second, dummydoc, plaintext);
+        len = handler->decryptToSafeBuffer(&tx, method.get(), clonedKey.get(), 
dummydoc, plaintext);
     }
     catch (const XSECException& ex) {
         auto_ptr_char msg(ex.getMsg());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling/version.h 
new/xmltooling-3.1.0/xmltooling/version.h
--- old/xmltooling-3.0.4/xmltooling/version.h   2019-03-08 15:44:44.000000000 
+0100
+++ new/xmltooling-3.1.0/xmltooling/version.h   2020-02-06 01:20:34.000000000 
+0100
@@ -43,8 +43,8 @@
  */
 
 #define XMLTOOLING_VERSION_MAJOR 3
-#define XMLTOOLING_VERSION_MINOR 0
-#define XMLTOOLING_VERSION_REVISION 4
+#define XMLTOOLING_VERSION_MINOR 1
+#define XMLTOOLING_VERSION_REVISION 0
 
 /** DO NOT MODIFY BELOW THIS LINE */
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling/xmltooling.rc 
new/xmltooling-3.1.0/xmltooling/xmltooling.rc
--- old/xmltooling-3.0.4/xmltooling/xmltooling.rc       2019-03-08 
15:44:44.000000000 +0100
+++ new/xmltooling-3.1.0/xmltooling/xmltooling.rc       2020-02-06 
01:20:34.000000000 +0100
@@ -28,8 +28,8 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 3,0,4,0
- PRODUCTVERSION 3,0,1,0
+ FILEVERSION 3,1,0,0
+ PRODUCTVERSION 3,1,0,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -51,38 +51,38 @@
 #else
             VALUE "FileDescription", "OpenSAML XMLTooling Library\0"
 #endif
-            VALUE "FileVersion", "3, 0, 4, 0\0"
+            VALUE "FileVersion", "3, 1, 0, 0\0"
 #ifdef XMLTOOLING_LITE
 #ifdef _DEBUG
-            VALUE "InternalName", "xmltooling-lite3_0D\0"
+            VALUE "InternalName", "xmltooling-lite3_1D\0"
 #else
-            VALUE "InternalName", "xmltooling-lite3_0\0"
+            VALUE "InternalName", "xmltooling-lite3_1\0"
 #endif
 #else
 #ifdef _DEBUG
-            VALUE "InternalName", "xmltooling3_0D\0"
+            VALUE "InternalName", "xmltooling3_1D\0"
 #else
-            VALUE "InternalName", "xmltooling3_0\0"
+            VALUE "InternalName", "xmltooling3_1\0"
 #endif
 #endif
-            VALUE "LegalCopyright", "Copyright 2019 UCAID\0"
+            VALUE "LegalCopyright", "Copyright 2020 Various\0"
             VALUE "LegalTrademarks", "\0"
 #ifdef XMLTOOLING_LITE
 #ifdef _DEBUG
-            VALUE "OriginalFilename", "xmltooling-lite3_0D.dll\0"
+            VALUE "OriginalFilename", "xmltooling-lite3_1D.dll\0"
 #else
-            VALUE "OriginalFilename", "xmltooling-lite3_0.dll\0"
+            VALUE "OriginalFilename", "xmltooling-lite3_1.dll\0"
 #endif
 #else
 #ifdef _DEBUG
-            VALUE "OriginalFilename", "xmltooling3_0.dll\0"
+            VALUE "OriginalFilename", "xmltooling3_1.dll\0"
 #else
-            VALUE "OriginalFilename", "xmltooling3_0.dll\0"
+            VALUE "OriginalFilename", "xmltooling3_1.dll\0"
 #endif
 #endif
             VALUE "PrivateBuild", "\0"
-            VALUE "ProductName", "OpenSAML 3.0.1\0"
-            VALUE "ProductVersion", "3, 0, 1, 0\0"
+            VALUE "ProductName", "OpenSAML 3.1.0\0"
+            VALUE "ProductVersion", "3, 1, 0, 0\0"
             VALUE "SpecialBuild", "\0"
         END
     END
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/xmltooling-3.0.4/xmltooling.spec.in 
new/xmltooling-3.1.0/xmltooling.spec.in
--- old/xmltooling-3.0.4/xmltooling.spec.in     2018-07-10 03:00:14.000000000 
+0200
+++ new/xmltooling-3.1.0/xmltooling.spec.in     2020-04-02 15:47:35.000000000 
+0200
@@ -13,7 +13,7 @@
 %{?_with_log4cpp:BuildRequires: liblog4cpp-devel >= 1.0}
 %{!?_with_log4cpp:BuildRequires: liblog4shib-devel >= 1.0.4}
 BuildRequires: gcc-c++, pkgconfig, zlib-devel, openssl-devel, boost-devel >= 
1.32.0
-%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 && 0%{?rhel} == 7 || 0%{?amzn} >= 1
 BuildRequires: libcurl-openssl-devel >= 7.21.7
 Requires: libcurl-openssl >= 7.21.7
 %else
@@ -24,6 +24,10 @@
 BuildRequires: redhat-rpm-config
 %endif
 
+%if 0%{?rhel} == 8
+BuildRequires: gdb
+%endif
+
 %if "%{_vendor}" == "suse"
 %define pkgdocdir %{_docdir}/%{name}
 %else
@@ -31,7 +35,7 @@
 %endif
 
 # Prevent the RHEL/etc 6+ package from requiring a vanilla libcurl.
-%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 && 0%{?rhel} == 7 || 0%{?amzn} >= 1
 %filter_from_requires /libcurl\.so\..*/d
 %filter_setup
 %endif
@@ -43,16 +47,16 @@
 classes to add value around the DOM, as well as signing and encryption
 support.
 
-%package -n lib@PACKAGE_NAME@8
+%package -n lib@PACKAGE_NAME@9
 Summary:    OpenSAML XMLTooling library
 Group:      Development/Libraries/C and C++
 Provides:   @PACKAGE_NAME@ = %{version}-%{release}
 Obsoletes:  @PACKAGE_NAME@ < %{version}-%{release}
-%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 && 0%{?rhel} == 7 || 0%{?amzn} >= 1
 Requires: libcurl-openssl >= 7.21.7
 %endif
 
-%description -n lib@PACKAGE_NAME@8
+%description -n lib@PACKAGE_NAME@9
 The XMLTooling library contains generic XML parsing and processing
 classes based on the Xerces-C DOM. It adds more powerful facilities
 for declaring element- and type-specific API and implementation
@@ -64,7 +68,7 @@
 %package -n lib@PACKAGE_NAME@-devel
 Summary:       XMLTooling development Headers
 Group:         Development/Libraries/C and C++
-Requires:      lib@PACKAGE_NAME@8 = %{version}-%{release}
+Requires:      lib@PACKAGE_NAME@9 = %{version}-%{release}
 Provides:      @PACKAGE_NAME@-devel = %{version}-%{release}
 Obsoletes:     @PACKAGE_NAME@-devel < %{version}-%{release}
 Requires:  libxerces-c-devel >= 3.2
@@ -72,7 +76,7 @@
 %{?_with_log4cpp:Requires: liblog4cpp-devel >= 1.0}
 %{!?_with_log4cpp:Requires: liblog4shib-devel >= 1.0.4}
 Requires: openssl-devel, boost-devel >= 1.32.0
-%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 && 0%{?rhel} == 7 || 0%{?amzn} >= 1
 Requires: libcurl-openssl-devel >= 7.21.7
 %else
 Requires: curl-devel >= 7.10.6
@@ -104,7 +108,7 @@
 %setup -q
 
 %build
-%if 0%{?rhel} >= 6 || 0%{?centos_version} >= 600 || 0%{?amzn} >= 1
+%if 0%{?rhel} == 6 && 0%{?rhel} == 7 || 0%{?amzn} >= 1
 %configure %{?@PACKAGE_NAME@_options} %{!?_without_xmlsec: --with-xmlsec} 
PKG_CONFIG_PATH=/opt/shibboleth/%{_lib}/pkgconfig
 %else
 %configure %{?@PACKAGE_NAME@_options} %{!?_without_xmlsec: --with-xmlsec}
@@ -122,15 +126,11 @@
 %clean
 [ "$RPM_BUILD_ROOT" != "/" ] && %{__rm} -rf $RPM_BUILD_ROOT
 
-%ifnos solaris2.8 solaris2.9 solaris2.10
-%post -n lib@PACKAGE_NAME@8 -p /sbin/ldconfig
-%endif
+%post -n lib@PACKAGE_NAME@9 -p /sbin/ldconfig
 
-%ifnos solaris2.8 solaris2.9 solaris2.10
-%postun -n lib@PACKAGE_NAME@8 -p /sbin/ldconfig
-%endif
+%postun -n lib@PACKAGE_NAME@9 -p /sbin/ldconfig
 
-%files -n lib@PACKAGE_NAME@8
+%files -n lib@PACKAGE_NAME@9
 %defattr(-,root,root,-)
 %{_libdir}/*.so.*
 %exclude %{_libdir}/*.la
@@ -149,6 +149,12 @@
 %doc %{pkgdocdir}
 
 %changelog
+* Mon Feb 3 2020 Scott Cantor <canto...@osu.edu> - 3.1.0-1
+- Version and lib bump
+
+* Mon Sep 30 2019 Scott Cantor <canto...@osu.edu> - 3.0.4-1
+- CentOS 8 cleanup
+
 * Tue Nov 21 2017 Scott Cantor <canto...@osu.edu> - 3.0.0-1
 - Update soname
 - Require Xerces 3.2 as shipped by me on all platforms
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to