https://issues.shibboleth.net/jira/browse/CPPXT-66
authorScott Cantor <cantor.2@osu.edu>
Fri, 12 Nov 2010 17:26:05 +0000 (17:26 +0000)
committerScott Cantor <cantor.2@osu.edu>
Fri, 12 Nov 2010 17:26:05 +0000 (17:26 +0000)
config_win32.h
configure.ac
xmltooling/util/ReloadableXMLFile.cpp

index 8a14f8c..f68947b 100644 (file)
 
 #ifndef XMLTOOLING_NO_XMLSEC
 # include <xsec/framework/XSECDefs.hpp>
+# if (_XSEC_VERSION_FULL >= 10500)
+#  define XMLTOOLING_XMLSEC_C14N11 1
+# endif
 # if (_XSEC_VERSION_FULL >= 10600)
 #  define XMLTOOLING_XMLSEC_MULTIPLECRL 1
 #  define XMLTOOLING_XMLSEC_SIGALGORITHM 1
index dac0572..03d85e2 100644 (file)
@@ -323,6 +323,13 @@ int i = 0;
         [AC_MSG_RESULT([yes])AC_DEFINE([XMLTOOLING_XMLSEC_ECC],[1],[Define to 1 if XML-Security-C includes ECC support.])],
         [AC_MSG_RESULT([no])])
 
+    AC_MSG_CHECKING([whether XML-Security-C includes C14N 1.1 support])
+    AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([[#include <xsec/dsig/DSIGConstants.hpp>]],
+            [[transformType t = TRANSFORM_C14N11;]])],
+        [AC_MSG_RESULT([yes])AC_DEFINE([XMLTOOLING_XMLSEC_C14N11],[1],[Define to 1 if XML-Security-C includes C14N 1.1 support.])],
+        [AC_MSG_RESULT([no])])
+
     AC_MSG_CHECKING([whether XML-Security-C includes debug logging support])
     AC_COMPILE_IFELSE(
         [AC_LANG_PROGRAM([[#include <xsec/utils/XSECPlatformUtils.hpp>]],
index a7dd68b..ae5f5be 100644 (file)
@@ -560,8 +560,11 @@ void ReloadableXMLFile::validateSignature(Signature& sigObj) const
                         if (tlist->item(i)->getTransformType()==TRANSFORM_ENVELOPED_SIGNATURE)
                             valid=true;
                         else if (tlist->item(i)->getTransformType()!=TRANSFORM_EXC_C14N &&
-                                 tlist->item(i)->getTransformType()!=TRANSFORM_C14N &&
-                                 tlist->item(i)->getTransformType()!=TRANSFORM_C14N11) {
+                                 tlist->item(i)->getTransformType()!=TRANSFORM_C14N
+#ifdef XMLTOOLING_XMLSEC_C14N11
+                                 && tlist->item(i)->getTransformType()!=TRANSFORM_C14N11
+#endif
+                                 ) {
                             valid=false;
                             break;
                         }