blautenb 2003/09/15 04:48:39
Modified: c/src/framework XSECEnv.hpp XSECEnv.cpp
Log:
Fix bug in retrieiving XENC namespace
Revision Changes Path
1.2 +36 -2 xml-security/c/src/framework/XSECEnv.hpp
Index: XSECEnv.hpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/framework/XSECEnv.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XSECEnv.hpp 12 Sep 2003 09:47:18 -0000 1.1
+++ XSECEnv.hpp 15 Sep 2003 11:48:39 -0000 1.2
@@ -174,6 +174,15 @@
void setXPFNSPrefix(const XMLCh * prefix);
/**
+ * \brief Set prefix for XENC nodes
+ *
+ * Set the namespace prefix the library will use when creating
+ * nodes in the XENC namespace
+ */
+
+ void setXENCNSPrefix(const XMLCh * prefix);
+
+ /**
* \brief Get the NS Prefix being used for DSIG elements.
*
* @returns A pointer to the buffer holding the prefix
@@ -201,6 +210,17 @@
const XMLCh * getXPFNSPrefix() const {return mp_xpfPrefixNS;}
+ /**
+ * \brief Get namespace prefix for XENC nodes
+ *
+ * Find the string being used by the library to prefix nodes in the
+ * xenc: namespace.
+ *
+ * @returns XENC namespace prefix
+ */
+
+ const XMLCh * getXENCNSPrefix(void) const {return mp_xencPrefixNS;}
+
//@}
/** @name General information functions */
@@ -252,11 +272,24 @@
* @returns A pointer to the URIResolver registered in this signature
*/
- XSECURIResolver * getURIResolver(void);
+ XSECURIResolver * getURIResolver(void) const;
//@}
+ /** @name Formatters */
+ //@{
+
+ /**
+ * \brief Get a safeBufferFormatter
+ *
+ * Return a UTF-8 safeBuffer formatter
+ *
+ * @returns A pointer to a safeBuffer formatter
+ */
+
+ XSECSafeBufferFormatter * getSBFormatter(void) const {return
mp_formatter;}
+
private:
@@ -269,6 +302,7 @@
XMLCh * mp_prefixNS;
XMLCh * mp_ecPrefixNS;
XMLCh * mp_xpfPrefixNS;
+ XMLCh * mp_xencPrefixNS;
// Resolvers
XSECURIResolver * mp_URIResolver;
1.2 +50 -10 xml-security/c/src/framework/XSECEnv.cpp
Index: XSECEnv.cpp
===================================================================
RCS file: /home/cvs/xml-security/c/src/framework/XSECEnv.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- XSECEnv.cpp 12 Sep 2003 09:47:18 -0000 1.1
+++ XSECEnv.cpp 15 Sep 2003 11:48:39 -0000 1.2
@@ -73,8 +73,40 @@
#include <xsec/framework/XSECUriResolver.hpp>
#include <xsec/dsig/DSIGConstants.hpp>
+#include <xercesc/util/XMLUniDefs.hpp>
+
XERCES_CPP_NAMESPACE_USE
+//
--------------------------------------------------------------------------------
+// Default prefix strings
+//
--------------------------------------------------------------------------------
+
+const XMLCh s_defaultECPrefix[] = {
+
+ chLatin_e,
+ chLatin_c,
+ chNull
+
+};
+
+const XMLCh s_defaultXPFPrefix[] = {
+
+ chLatin_x,
+ chLatin_p,
+ chLatin_f,
+ chNull
+
+};
+
+const XMLCh s_defaultXENCPrefix[] = {
+
+ chLatin_x,
+ chLatin_e,
+ chLatin_n,
+ chLatin_c,
+ chNull
+
+};
//
--------------------------------------------------------------------------------
// Env
@@ -87,8 +119,10 @@
mp_doc = doc;
mp_prefixNS = XMLString::replicate(DSIGConstants::s_unicodeStrEmpty);
- mp_ecPrefixNS = XMLString::replicate(DSIGConstants::s_unicodeStrEmpty);
- mp_xpfPrefixNS = XMLString::replicate(DSIGConstants::s_unicodeStrEmpty);
+ mp_ecPrefixNS = XMLString::replicate(s_defaultECPrefix);
+ mp_xpfPrefixNS = XMLString::replicate(s_defaultXPFPrefix);
+ mp_xencPrefixNS = XMLString::replicate(s_defaultXENCPrefix);
+
mp_URIResolver = NULL;
// Set up our formatter
@@ -101,29 +135,27 @@
XSECEnv::~XSECEnv() {
if (mp_formatter != NULL) {
-
delete mp_formatter;
- mp_formatter = NULL;
}
if (mp_prefixNS != NULL) {
delete[] mp_prefixNS;
- mp_prefixNS = NULL;
}
if (mp_ecPrefixNS != NULL) {
delete[] mp_ecPrefixNS;
- mp_ecPrefixNS = NULL;
}
if (mp_xpfPrefixNS != NULL) {
delete[] mp_xpfPrefixNS;
- mp_xpfPrefixNS = NULL;
+ }
+
+ if (mp_xencPrefixNS != NULL) {
+ delete[] mp_xencPrefixNS;
}
if (mp_URIResolver != NULL) {
delete mp_URIResolver;
- mp_URIResolver = NULL;
}
}
@@ -142,7 +174,7 @@
}
-XSECURIResolver * XSECEnv::getURIResolver(void) {
+XSECURIResolver * XSECEnv::getURIResolver(void) const {
return mp_URIResolver;
@@ -179,3 +211,11 @@
}
+void XSECEnv::setXENCNSPrefix(const XMLCh * prefix) {
+
+ if (mp_xencPrefixNS != NULL)
+ delete[] mp_xencPrefixNS;
+
+ mp_xencPrefixNS = XMLString::replicate(prefix);
+
+}