From 5c58bb4be90a1615d0f4252067fb42851d3f123d Mon Sep 17 00:00:00 2001 From: Scott Cantor Date: Fri, 12 Nov 2010 17:26:05 +0000 Subject: [PATCH] https://issues.shibboleth.net/jira/browse/CPPXT-66 --- config_win32.h | 3 +++ configure.ac | 7 +++++++ xmltooling/util/ReloadableXMLFile.cpp | 7 +++++-- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/config_win32.h b/config_win32.h index 8a14f8c..f68947b 100644 --- a/config_win32.h +++ b/config_win32.h @@ -123,6 +123,9 @@ #ifndef XMLTOOLING_NO_XMLSEC # include +# 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 diff --git a/configure.ac b/configure.ac index dac0572..03d85e2 100644 --- a/configure.ac +++ b/configure.ac @@ -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 ]], + [[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 ]], diff --git a/xmltooling/util/ReloadableXMLFile.cpp b/xmltooling/util/ReloadableXMLFile.cpp index a7dd68b..ae5f5be 100644 --- a/xmltooling/util/ReloadableXMLFile.cpp +++ b/xmltooling/util/ReloadableXMLFile.cpp @@ -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; } -- 2.1.4