blautenb    2003/09/15 04:57:45

  Modified:    c/src/dsig DSIGConstants.cpp DSIGConstants.hpp
                        DSIGKeyInfoList.cpp DSIGKeyInfoList.hpp
                        DSIGReference.cpp DSIGReference.hpp
                        DSIGSignature.cpp DSIGSignedInfo.cpp
                        DSIGSignedInfo.hpp DSIGTransform.cpp
                        DSIGTransform.hpp DSIGTransformBase64.cpp
                        DSIGTransformBase64.hpp DSIGTransformC14n.cpp
                        DSIGTransformC14n.hpp DSIGTransformEnvelope.cpp
                        DSIGTransformEnvelope.hpp DSIGTransformXPath.cpp
                        DSIGTransformXPath.hpp DSIGTransformXPathFilter.cpp
                        DSIGTransformXPathFilter.hpp DSIGTransformXSL.cpp
                        DSIGTransformXSL.hpp DSIGXPathFilterExpr.cpp
                        DSIGXPathFilterExpr.hpp
  Log:
  Moved all DSIG elements to support environment class + started move of 
KeyInfo processing more into KeyInfoList
  
  Revision  Changes    Path
  1.12      +7 -2      xml-security/c/src/dsig/DSIGConstants.cpp
  
  Index: DSIGConstants.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGConstants.cpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- DSIGConstants.cpp 31 Aug 2003 12:50:47 -0000      1.11
  +++ DSIGConstants.cpp 15 Sep 2003 11:57:44 -0000      1.12
  @@ -100,7 +100,7 @@
   const XMLCh * DSIGConstants::s_unicodeStrURIHMAC_SHA1;
   const XMLCh * DSIGConstants::s_unicodeStrURIXMLNS;
   const XMLCh * DSIGConstants::s_unicodeStrURIMANIFEST;
  -
  +const XMLCh * DSIGConstants::s_unicodeStrURI3DES_CBC;
   const XMLCh * DSIGConstants::s_unicodeStrPROVOpenSSL;
   const XMLCh * DSIGConstants::s_unicodeStrPROVWinCAPI;
   
  @@ -138,6 +138,9 @@
        s_unicodeStrURIHMAC_SHA1 = XMLString::transcode(URI_ID_HMAC_SHA1);
        s_unicodeStrURIXMLNS = XMLString::transcode(URI_ID_XMLNS);
        s_unicodeStrURIMANIFEST = XMLString::transcode(URI_ID_MANIFEST);
  +     
  +     s_unicodeStrURI3DES_CBC = XMLString::transcode(URI_ID_3DES_CBC);
  +     
        s_unicodeStrPROVOpenSSL = XMLString::transcode(PROV_OPENSSL);
        s_unicodeStrPROVWinCAPI = XMLString::transcode(PROV_WINCAPI);
   
  @@ -173,6 +176,8 @@
        delete[] (XMLCh *) s_unicodeStrURIHMAC_SHA1;
        delete[] (XMLCh *) s_unicodeStrURIXMLNS;
        delete[] (XMLCh *) s_unicodeStrURIMANIFEST;
  +
  +     delete[] (XMLCh *) s_unicodeStrURI3DES_CBC;
   
        delete[] (XMLCh *) s_unicodeStrPROVOpenSSL;
        delete[] (XMLCh *) s_unicodeStrPROVWinCAPI;
  
  
  
  1.14      +34 -1     xml-security/c/src/dsig/DSIGConstants.hpp
  
  Index: DSIGConstants.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGConstants.hpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DSIGConstants.hpp 31 Aug 2003 12:50:47 -0000      1.13
  +++ DSIGConstants.hpp 15 Sep 2003 11:57:44 -0000      1.14
  @@ -91,6 +91,9 @@
   #define URI_ID_SHA1          "http://www.w3.org/2000/09/xmldsig#sha1";
   #define URI_ID_MD5           "http://www.w3.org/2001/04/xmldsig-more#md5";
   
  +// Encryption Algorithms
  +#define URI_ID_3DES_CBC      "http://www.w3.org/2001/04/xmlenc#tripledes-cbc";
  +
   // Transforms
   
   #define URI_ID_BASE64                        
"http://www.w3.org/2000/09/xmldsig#base64";
  @@ -176,6 +179,13 @@
   
   };
   
  +enum encryptionMethod {
  +
  +     ENCRYPT_NONE                    = 0,                            // No 
method defined
  +     ENCRYPT_3DES_CBC                = 1                                     
// Use 3DES
  +
  +};
  +
   
   // 
--------------------------------------------------------------------------------
   //           Some utility functions
  @@ -286,6 +296,26 @@
   
   }
   
  +inline
  +bool encryptionMethod2URI(safeBuffer &uri, encryptionMethod em) {
  +
  +     switch (em) {
  +
  +     case (ENCRYPT_3DES_CBC) :
  +
  +             uri = URI_ID_3DES_CBC;
  +             break;
  +
  +     default:
  +
  +             return false;
  +
  +     }
  +
  +     return true;
  +
  +}
  +
   // 
--------------------------------------------------------------------------------
   //           Constant Strings Class
   // 
--------------------------------------------------------------------------------
  @@ -325,6 +355,9 @@
        static const XMLCh * s_unicodeStrURIHMAC_SHA1;
        static const XMLCh * s_unicodeStrURIXMLNS;
        static const XMLCh * s_unicodeStrURIMANIFEST;
  +
  +     // URIs for Encryption
  +     static const XMLCh * s_unicodeStrURI3DES_CBC;
   
        // Internal Crypto Providers
        static const XMLCh * s_unicodeStrPROVOpenSSL;
  
  
  
  1.11      +208 -1    xml-security/c/src/dsig/DSIGKeyInfoList.cpp
  
  Index: DSIGKeyInfoList.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGKeyInfoList.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DSIGKeyInfoList.cpp       12 Sep 2003 09:47:17 -0000      1.10
  +++ DSIGKeyInfoList.cpp       15 Sep 2003 11:57:44 -0000      1.11
  @@ -79,6 +79,13 @@
   #include <xsec/framework/XSECError.hpp>
   #include <xsec/utils/XSECDOMUtils.hpp>
   #include <xsec/dsig/DSIGSignature.hpp>
  +#include <xsec/dsig/DSIGReference.hpp>
  +#include <xsec/dsig/DSIGTransformList.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
  +#include <xsec/transformers/TXFMChain.hpp>
  +#include <xsec/transformers/TXFMBase.hpp>
  +
  +#include <xercesc/util/Janitor.hpp>
   
   XERCES_CPP_NAMESPACE_USE
   
  @@ -212,5 +219,205 @@
   
   }
   
  +// 
--------------------------------------------------------------------------------
  +//           Retrieve a complete KeyInfo list
  +// 
--------------------------------------------------------------------------------
  +
  +
  +bool DSIGKeyInfoList::loadListFromXML(DOMNode * node) {
  +
  +     if (node == NULL || !strEquals(getDSIGLocalName(node), "KeyInfo")) {
  +             throw XSECException(XSECException::ExpectedDSIGChildNotFound,
  +                     "DSIGKeyInfoList::loadListFromXML - expected KeyInfo 
node");
  +     }
  +
  +     DOMNode *tmpKI = findFirstChildOfType(node, DOMNode::ELEMENT_NODE);
  +     
  +     while (tmpKI != 0) {
  +
  +             // Find out what kind of KeyInfo child it is
  +
  +             if (tmpKI != 0 && strEquals(getDSIGLocalName(tmpKI), 
"RetrievalMethod")) {
  +
  +                     // A reference to key information held elsewhere
  +
  +                     const XMLCh * URI = NULL;
  +                     TXFMBase * currentTxfm;
  +                     bool isRawX509 = false;
  +
  +                     DOMNamedNodeMap *atts = tmpKI->getAttributes();
  +                     const XMLCh * name;
  +                     unsigned int size;
  +
  +                     if (atts == 0 || (size = atts->getLength()) == 0)
  +                             return true;
  +
  +                     for (unsigned int i = 0; i < size; ++i) {
  +
  +                             name = atts->item(i)->getNodeName();
  +
  +                             if (strEquals(name, "URI")) {
  +                                     URI  = atts->item(i)->getNodeValue();
  +                             }
  +
  +                             else if (strEquals(name, "Type")) {
  +
  +                                     // Check if this is a raw X509 cert
  +                                     if 
(strEquals(atts->item(i)->getNodeValue(), 
DSIGConstants::s_unicodeStrURIRawX509)) {
  +                                             isRawX509 = true;
  +                                     }
  +
  +                             }
  +
  +                             else if (strEquals(name, "Id")) {
  +
  +                                     // For now ignore
  +
  +                             }
  +
  +                             else {
  +                                     safeBuffer tmp, error;
  +
  +                                     error << (*mp_env->getSBFormatter() << 
name);
  +                                     tmp.sbStrcpyIn("Unknown attribute in 
<RetrievalMethod> Element : ");
  +                                     tmp.sbStrcatIn(error);
  +
  +                                     throw 
XSECException(XSECException::UnknownDSIGAttribute, tmp.rawCharBuffer());
  +
  +                             }
  +
  +                     }
  +
  +                     if (isRawX509 == true) {
  +
  +                             if (URI == NULL) {
  +
  +                                     throw 
XSECException(XSECException::ExpectedDSIGChildNotFound,
  +                                             "Expected to find a URI 
attribute in a rawX509RetrievalMethod KeyInfo");
  +
  +                             }
  +
  +                             DSIGKeyInfoX509 * x509;
  +                             XSECnew(x509, DSIGKeyInfoX509(mp_env));
  +                             x509->setRawRetrievalURI(URI);
  +
  +                             addKeyInfo(x509);
  +
  +                     }
  +
  +                     else {
  +
  +                             // Find base transform using the base URI
  +                             currentTxfm = 
DSIGReference::getURIBaseTXFM(mp_env->getParentDocument(), URI, 
mp_env->getURIResolver());
  +                             TXFMChain * chain;
  +                             XSECnew(chain, TXFMChain(currentTxfm));
  +                             Janitor<TXFMChain> j_chain(chain);
  +
  +                             // Now check for transforms
  +                             tmpKI = tmpKI->getFirstChild();
   
  +                             while (tmpKI != 0 && (tmpKI->getNodeType() != 
DOMNode::ELEMENT_NODE))
  +                                     // Skip text and comments
  +                                     tmpKI = tmpKI->getNextSibling();
   
  +                             if (tmpKI == 0) {
  +
  +                                     throw 
XSECException(XSECException::ExpectedDSIGChildNotFound, 
  +                                                     "Expected <Transforms> 
within <KeyInfo>");
  +
  +                             }
  +
  +                             if (strEquals(getDSIGLocalName(tmpKI), 
"Transforms")) {
  +
  +
  +                                     // Process the transforms using the 
static function.
  +                                     // For the moment we don't really 
support remote KeyInfos, so
  +                                     // Just built the transform list, 
process it and then destroy it.
  +
  +                                     DSIGTransformList * l = 
DSIGReference::loadTransforms(
  +                                             tmpKI,
  +                                             mp_env->getSBFormatter(),
  +                                             mp_env);
  +
  +                                     
DSIGTransformList::TransformListVectorType::size_type size, i;
  +                                     size = l->getSize();
  +                                     for (i = 0; i < size; ++ i) {
  +                                             try {
  +                                                     
l->item(i)->appendTransformer(chain);
  +                                             }
  +                                             catch (...) {
  +                                                     delete l;
  +                                                     throw;
  +                                             }
  +                                     }
  +
  +                                     delete l;
  +
  +                             }
  +
  +                             // Find out the type of the final transform and 
process accordingly
  +                             
  +                             TXFMBase::nodeType type = 
chain->getLastTxfm()->getNodeType();
  +
  +                             XSECXPathNodeList lst;
  +                             const DOMNode * element;
  +
  +                             switch (type) {
  +
  +                             case TXFMBase::DOM_NODE_DOCUMENT :
  +
  +                                     break;
  +
  +                             case TXFMBase::DOM_NODE_DOCUMENT_FRAGMENT :
  +
  +                                     break;
  +
  +                             case TXFMBase::DOM_NODE_XPATH_NODESET :
  +
  +                                     lst = 
chain->getLastTxfm()->getXPathNodeList();
  +                                     element = lst.getFirstNode();
  +
  +                                     while (element != NULL) {
  +
  +                                             // Try to add each element - 
just call KeyInfoList add as it will
  +                                             // do the check to see if it is 
a valud KeyInfo
  +
  +                                             addXMLKeyInfo((DOMNode *) 
element);
  +                                             element = lst.getNextNode();
  +
  +                                     }
  +
  +                                     break;
  +
  +                             default :
  +
  +                                     throw 
XSECException(XSECException::XPathError);
  +
  +                             }
  +
  +                             // Delete the transform chain
  +                             
chain->getLastTxfm()->deleteExpandedNameSpaces();
  +
  +                             // Janitor will clean up chain
  +                     }
  +
  +             } /* if getNodeName == Retrieval Method */
  +
  +             // Now just run through each node type in turn to process 
"local" KeyInfos
  +
  +             else if (!addXMLKeyInfo(tmpKI)) {
  +
  +                     throw XSECException(XSECException::KeyInfoError,
  +                             "Unknown KeyInfo element found");
  +
  +             }
  +
  +             tmpKI = tmpKI->getNextSibling();
  +
  +             while (tmpKI != 0 && (tmpKI->getNodeType() != 
DOMNode::ELEMENT_NODE))
  +                     tmpKI = tmpKI->getNextSibling();
  +
  +     }
  +
  +     return true;
  +}
  \ No newline at end of file
  
  
  
  1.6       +15 -1     xml-security/c/src/dsig/DSIGKeyInfoList.hpp
  
  Index: DSIGKeyInfoList.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGKeyInfoList.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DSIGKeyInfoList.hpp       12 Sep 2003 09:47:17 -0000      1.5
  +++ DSIGKeyInfoList.hpp       15 Sep 2003 11:57:44 -0000      1.6
  @@ -188,6 +188,20 @@
   
        bool addXMLKeyInfo(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *ki);
   
  +     /**
  +      * \brief Read full list from DOM
  +      *
  +      * Will take the starting node of a KeyInfo list and read into the
  +      * list structure.  This is a bit different from other "load"
  +      * functions, in that it takes a node as a parameter.
  +      *
  +      * @note This is an internal functions and should not be called directly
  +      *
  +      * @param node The <KeyInfo> element node to read from
  +      */
  +
  +     bool loadListFromXML(XERCES_CPP_NAMESPACE_QUALIFIER DOMNode * node);
  +
        /*
         * \brief Remove a KeyInfo from the list
         *
  
  
  
  1.15      +38 -37    xml-security/c/src/dsig/DSIGReference.cpp
  
  Index: DSIGReference.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGReference.cpp,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- DSIGReference.cpp 11 Sep 2003 11:13:36 -0000      1.14
  +++ DSIGReference.cpp 15 Sep 2003 11:57:44 -0000      1.15
  @@ -92,6 +92,7 @@
   #include <xsec/dsig/DSIGTransformC14n.hpp>
   
   #include <xsec/framework/XSECError.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   #include <xsec/utils/XSECPlatformUtils.hpp>
   #include <xsec/utils/XSECDOMUtils.hpp>
   #include <xsec/utils/XSECBinTXFMInputStream.hpp>
  @@ -145,10 +146,10 @@
   // 
--------------------------------------------------------------------------------
   
   
  -DSIGReference::DSIGReference(DSIGSignature * sig, DOMNode *dom) {
  +DSIGReference::DSIGReference(const XSECEnv * env, DOMNode *dom) {
   
        mp_referenceNode = dom;
  -     mp_parentSignature = sig;
  +     mp_env = env;
   
        // Should throw an exception if the node is not a REFERENCE element
   
  @@ -166,9 +167,9 @@
   
   }
   
  -DSIGReference::DSIGReference(DSIGSignature *sig) {
  +DSIGReference::DSIGReference(const XSECEnv * env) {
   
  -     mp_parentSignature = sig;
  +     mp_env = env;
        mp_referenceNode = NULL;
        mp_transformsNode = NULL;
        mp_transformList = NULL;
  @@ -213,9 +214,9 @@
        // Creates the transforms list
        safeBuffer str;
        const XMLCh * prefix;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
  -     prefix = mp_parentSignature->getDSIGNSPrefix();
  +     prefix = mp_env->getDSIGNSPrefix();
        
        if (mp_transformsNode == NULL) {
   
  @@ -234,7 +235,7 @@
   
   void DSIGReference::addTransform(DSIGTransform * txfm, DOMElement * txfmElt) 
{
   
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
        if (mp_transformList == NULL)
                createTransformList();
  @@ -251,8 +252,8 @@
        DOMElement *txfmElt;
        DSIGTransformEnvelope * txfm;
   
  -     XSECnew(txfm, DSIGTransformEnvelope(mp_parentSignature));
  -     txfmElt = 
txfm->createBlankTransform(mp_parentSignature->getParentDocument());
  +     XSECnew(txfm, DSIGTransformEnvelope(mp_env));
  +     txfmElt = txfm->createBlankTransform(mp_env->getParentDocument());
   
        addTransform(txfm, txfmElt);
   
  @@ -265,8 +266,8 @@
        DOMElement *txfmElt;
        DSIGTransformBase64 * txfm;
   
  -     XSECnew(txfm, DSIGTransformBase64(mp_parentSignature));
  -     txfmElt = 
txfm->createBlankTransform(mp_parentSignature->getParentDocument());
  +     XSECnew(txfm, DSIGTransformBase64(mp_env));
  +     txfmElt = txfm->createBlankTransform(mp_env->getParentDocument());
   
        addTransform(txfm, txfmElt);
   
  @@ -279,8 +280,8 @@
        DOMElement *txfmElt;
        DSIGTransformXSL * txfm;
   
  -     XSECnew(txfm, DSIGTransformXSL(mp_parentSignature));
  -     txfmElt = 
txfm->createBlankTransform(mp_parentSignature->getParentDocument());
  +     XSECnew(txfm, DSIGTransformXSL(mp_env));
  +     txfmElt = txfm->createBlankTransform(mp_env->getParentDocument());
        txfm->setStylesheet(stylesheet);
   
        addTransform(txfm, txfmElt);
  @@ -294,8 +295,8 @@
        DOMElement *txfmElt;
        DSIGTransformC14n * txfm;
   
  -     XSECnew(txfm, DSIGTransformC14n(mp_parentSignature));
  -     txfmElt = 
txfm->createBlankTransform(mp_parentSignature->getParentDocument());
  +     XSECnew(txfm, DSIGTransformC14n(mp_env));
  +     txfmElt = txfm->createBlankTransform(mp_env->getParentDocument());
        txfm->setCanonicalizationMethod(cm);
   
        addTransform(txfm, txfmElt);
  @@ -309,8 +310,8 @@
        DOMElement *txfmElt;
        DSIGTransformXPath * txfm;
   
  -     XSECnew(txfm, DSIGTransformXPath(mp_parentSignature));
  -     txfmElt = 
txfm->createBlankTransform(mp_parentSignature->getParentDocument());
  +     XSECnew(txfm, DSIGTransformXPath(mp_env));
  +     txfmElt = txfm->createBlankTransform(mp_env->getParentDocument());
        txfm->setExpression(expr);
   
        addTransform(txfm, txfmElt);
  @@ -323,11 +324,11 @@
        DOMElement *txfmElt;
        DSIGTransformXPathFilter * txfm;
   
  -     XSECnew(txfm, DSIGTransformXPathFilter(mp_parentSignature));
  -     txfmElt = 
txfm->createBlankTransform(mp_parentSignature->getParentDocument());
  +     XSECnew(txfm, DSIGTransformXPathFilter(mp_env));
  +     txfmElt = txfm->createBlankTransform(mp_env->getParentDocument());
   
        addTransform(txfm, txfmElt);
  -     
txfmElt->appendChild(mp_parentSignature->getParentDocument()->createTextNode(DSIGConstants::s_unicodeStrNL));
  +     
txfmElt->appendChild(mp_env->getParentDocument()->createTextNode(DSIGConstants::s_unicodeStrNL));
   
        return txfm;
   }
  @@ -351,8 +352,8 @@
        mp_transformList = NULL;
   
        safeBuffer str;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  -     const XMLCh * prefix = mp_parentSignature->getDSIGNSPrefix();
  +     DOMDocument *doc = mp_env->getParentDocument();
  +     const XMLCh * prefix = mp_env->getDSIGNSPrefix();
   
        makeQName(str, prefix, "Reference");
   
  @@ -633,7 +634,7 @@
                mp_transformsNode = tmpElt;
   
                // Load the transforms
  -             mp_transformList = loadTransforms(tmpElt, mp_formatter, 
mp_parentSignature);
  +             mp_transformList = loadTransforms(tmpElt, mp_formatter, mp_env);
   
                // Find next node
                tmpElt = tmpElt->getNextSibling();
  @@ -723,7 +724,7 @@
                DOMNode                                 * manifestNode, * 
referenceNode;
   
                docObject = 
getURIBaseTXFM(mp_referenceNode->getOwnerDocument(), mp_URI, 
  -                     mp_parentSignature->getURIResolver());
  +                     mp_env->getURIResolver());
   
                manifestNode = docObject->getFragmentNode();
                delete docObject;
  @@ -761,7 +762,7 @@
                        "Expected <Reference> as child of <Manifest>");
   
                // Have reference node, so lets create a list!
  -             mp_manifestList = 
DSIGReference::loadReferenceListFromXML(mp_parentSignature, referenceNode);
  +             mp_manifestList = 
DSIGReference::loadReferenceListFromXML(mp_env, referenceNode);
   
        } /* m_isManifest */
   
  @@ -773,7 +774,7 @@
   //           createReferenceListFromXML
   // 
--------------------------------------------------------------------------------
   
  -DSIGReferenceList *DSIGReference::loadReferenceListFromXML(DSIGSignature * 
sig, DOMNode *firstReference) {
  +DSIGReferenceList *DSIGReference::loadReferenceListFromXML(const XSECEnv * 
env, DOMNode *firstReference) {
   
        // Have the first reference element in the document, 
        // so want to find and load them all
  @@ -797,7 +798,7 @@
   
                }
   
  -             XSECnew(r, DSIGReference(sig, tmpRef));
  +             XSECnew(r, DSIGReference(env, tmpRef));
   
                refList->addReference(r);
   
  @@ -836,7 +837,7 @@
   
        // Find base transform
        currentTxfm = getURIBaseTXFM(mp_referenceNode->getOwnerDocument(), 
mp_URI,
  -             mp_parentSignature->getURIResolver());
  +             mp_env->getURIResolver());
   
        // Set up the transform chain
   
  @@ -1009,7 +1010,7 @@
   DSIGTransformList * DSIGReference::loadTransforms( 
                                                        DOMNode *transformsNode,
                                                        XSECSafeBufferFormatter 
* formatter,
  -                                                     DSIGSignature * sig) {
  +                                                     const XSECEnv * env) {
   
        // This is defined as a static function, not because it makes use of 
any static variables
        // in the DSIGReference class, but to neatly link it to the other users
  @@ -1071,7 +1072,7 @@
                if (algorithm.sbStrcmp(URI_ID_BASE64) == 0) {
                        
                        DSIGTransformBase64 * b;
  -                     XSECnew(b, DSIGTransformBase64(sig, transforms));
  +                     XSECnew(b, DSIGTransformBase64(env, transforms));
                        lst->addTransform(b);
                        b->load();
                }
  @@ -1079,7 +1080,7 @@
                else if (algorithm.sbStrcmp(URI_ID_XPATH) == 0) {
   
                        DSIGTransformXPath * x;
  -                     XSECnew(x, DSIGTransformXPath(sig, transforms));
  +                     XSECnew(x, DSIGTransformXPath(env, transforms));
                        lst->addTransform(x);
                        x->load();
                }
  @@ -1088,7 +1089,7 @@
   
                        DSIGTransformXPathFilter * xpf;
   
  -                     XSECnew(xpf, DSIGTransformXPathFilter(sig, transforms));
  +                     XSECnew(xpf, DSIGTransformXPathFilter(env, transforms));
                        lst->addTransform(xpf);
                        xpf->load();
   
  @@ -1097,7 +1098,7 @@
                else if (algorithm.sbStrcmp(URI_ID_ENVELOPE) == 0) {
   
                        DSIGTransformEnvelope * e;
  -                     XSECnew(e, DSIGTransformEnvelope(sig, transforms));
  +                     XSECnew(e, DSIGTransformEnvelope(env, transforms));
                        lst->addTransform(e);
                        e->load();
                }
  @@ -1105,7 +1106,7 @@
                else if (algorithm.sbStrcmp(URI_ID_XSLT) == 0) {
                        
                        DSIGTransformXSL * x;
  -                     XSECnew(x, DSIGTransformXSL(sig, transforms));
  +                     XSECnew(x, DSIGTransformXSL(env, transforms));
                        lst->addTransform(x);
                        x->load();
   
  @@ -1118,7 +1119,7 @@
                                 algorithm.sbStrcmp(URI_ID_EXC_C14N_NOC) == 0) {
                        
                        DSIGTransformC14n * c;
  -                     XSECnew(c, DSIGTransformC14n(sig, transforms));
  +                     XSECnew(c, DSIGTransformC14n(env, transforms));
                        lst->addTransform(c);
                        c->load();
   
  @@ -1244,7 +1245,7 @@
   
        // Find base transform
        currentTxfm = getURIBaseTXFM(mp_referenceNode->getOwnerDocument(), 
mp_URI,
  -             mp_parentSignature->getURIResolver());
  +             mp_env->getURIResolver());
   
        // Now build the transforms list
        // Note this passes ownership of currentTxfm to the function, so it is 
the
  
  
  
  1.12      +8 -11     xml-security/c/src/dsig/DSIGReference.hpp
  
  Index: DSIGReference.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGReference.hpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- DSIGReference.hpp 11 Sep 2003 11:13:36 -0000      1.11
  +++ DSIGReference.hpp 15 Sep 2003 11:57:44 -0000      1.12
  @@ -62,11 +62,7 @@
    *
    * DSIG_Reference := Class for checking and setting up reference nodes in a 
DSIG signature
    *
  - * Author(s): Berin Lautenbach
  - *
  - * $ID$
  - *
  - * $LOG$
  + * $Id$
    *                                    
    */
   
  @@ -97,6 +93,7 @@
   class TXFMChain;
   class XSECBinTXFMInputStream;
   class XSECURIResolver;
  +class XSECEnv;
   
   /**
    * @ingroup pubsig
  @@ -128,13 +125,13 @@
         * @note DSIGReference structures should only ever be created via calls 
to a
         * DSIGSignature object.
         *
  -      * @param sig The signature in which the reference is embedded.
  +      * @param env The operating environment in which the Reference is 
operating
         * @param dom The DOM node (within doc) that is to be used as the base 
of the reference.
         * @see #load
         * @see DSIGSignature#createReference
         */
   
  -     DSIGReference(DSIGSignature * sig, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode *dom);
  +     DSIGReference(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode *dom);
   
       /**
         * \brief Contructor for use when creating new Reference structures.
  @@ -150,7 +147,7 @@
         * @see DSIGSignature#createReference
         */
        
  -     DSIGReference(DSIGSignature * sig);
  +     DSIGReference(const XSECEnv * env);
   
        /**
         * \brief Destructor.
  @@ -450,7 +447,7 @@
        static DSIGTransformList * loadTransforms(
                                                        
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *transformsNode,
                                                        XSECSafeBufferFormatter 
* formatter,
  -                                                     DSIGSignature * sig);
  +                                                     const XSECEnv * env);
   
        /**
         * \brief Create a starting point for a TXFM Chain.
  @@ -482,7 +479,7 @@
         * @returns the created list.
         */
   
  -     static DSIGReferenceList *loadReferenceListFromXML(DSIGSignature * sig, 
  +     static DSIGReferenceList *loadReferenceListFromXML(const XSECEnv * env, 
                                                                                
                           XERCES_CPP_NAMESPACE_QUALIFIER DOMNode 
*firstReference);
   
        /**
  @@ -540,7 +537,7 @@
        hashMethod                                      me_hashMethod;          
        // What form of digest?
        XERCES_CPP_NAMESPACE_QUALIFIER DOMNode                                  
        
                                                                * 
mp_hashValueNode;             // Node where the Hash value is stored
  -     DSIGSignature                           * mp_parentSignature;   // 
Owner signature
  +     const XSECEnv                           * mp_env;
        DSIGTransformList                       * mp_transformList;             
// List of transforms
        
        bool                        m_loaded;
  
  
  
  1.24      +4 -195    xml-security/c/src/dsig/DSIGSignature.cpp
  
  Index: DSIGSignature.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGSignature.cpp,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- DSIGSignature.cpp 12 Sep 2003 09:47:17 -0000      1.23
  +++ DSIGSignature.cpp 15 Sep 2003 11:57:44 -0000      1.24
  @@ -528,7 +528,7 @@
        
mp_sigNode->appendChild(mp_doc->createTextNode(DSIGConstants::s_unicodeStrNL));
   
        // Create the skeleton SignedInfo
  -     XSECnew(mp_signedInfo, DSIGSignedInfo(mp_doc, mp_formatter, this));
  +     XSECnew(mp_signedInfo, DSIGSignedInfo(mp_doc, mp_formatter, mp_env));
        
        mp_sigNode->appendChild(mp_signedInfo->createBlankSignedInfo(cm, sm, 
hm));
        
mp_sigNode->appendChild(mp_doc->createTextNode(DSIGConstants::s_unicodeStrNL));
  @@ -792,7 +792,7 @@
   
        // Have a signed info
   
  -     XSECnew(mp_signedInfo, DSIGSignedInfo(mp_doc, mp_formatter, tmpElt, 
this));
  +     XSECnew(mp_signedInfo, DSIGSignedInfo(mp_doc, mp_formatter, tmpElt, 
mp_env));
        mp_signedInfo->load();
   
        // Look at Signature Value
  @@ -837,198 +837,7 @@
   
                mp_KeyInfoNode = tmpElt;                // In case we later 
want to manipulate it
   
  -             DOMNode *tmpKI = tmpElt->getFirstChild();
  -
  -             while (tmpKI != 0 && (tmpKI->getNodeType() != 
DOMNode::ELEMENT_NODE))
  -                     tmpKI = tmpKI->getNextSibling();
  -
  -
  -             while (tmpKI != 0) {
  -
  -                     // Find out what kind of KeyInfo child it is
  -
  -                     if (tmpKI != 0 && strEquals(getDSIGLocalName(tmpKI), 
"RetrievalMethod")) {
  -
  -                             // A reference to key information held elsewhere
  -
  -                             const XMLCh * URI = NULL;
  -                             TXFMBase * currentTxfm;
  -                             bool isRawX509 = false;
  -
  -                             DOMNamedNodeMap *atts = tmpKI->getAttributes();
  -                             const XMLCh * name;
  -                             unsigned int size;
  -
  -                             if (atts == 0 || (size = atts->getLength()) == 
0)
  -                                     return;
  -
  -                             for (unsigned int i = 0; i < size; ++i) {
  -
  -                                     name = atts->item(i)->getNodeName();
  -
  -                                     if (strEquals(name, "URI")) {
  -                                             URI  = 
atts->item(i)->getNodeValue();
  -                                     }
  -
  -                                     else if (strEquals(name, "Type")) {
  -
  -                                             // Check if this is a raw X509 
cert
  -                                             if 
(strEquals(atts->item(i)->getNodeValue(), 
DSIGConstants::s_unicodeStrURIRawX509)) {
  -                                                     isRawX509 = true;
  -                                             }
  -
  -                                     }
  -
  -                                     else if (strEquals(name, "Id")) {
  -
  -                                             // For now ignore
  -
  -                                     }
  -
  -                                     else {
  -                                             safeBuffer tmp, error;
  -
  -                                             error << (*mp_formatter << 
name);
  -                                             tmp.sbStrcpyIn("Unknown 
attribute in <RetrievalMethod> Element : ");
  -                                             tmp.sbStrcatIn(error);
  -
  -                                             throw 
XSECException(XSECException::UnknownDSIGAttribute, tmp.rawCharBuffer());
  -
  -                                     }
  -
  -                             }
  -
  -                             if (isRawX509 == true) {
  -
  -                                     if (URI == NULL) {
  -
  -                                             throw 
XSECException(XSECException::ExpectedDSIGChildNotFound,
  -                                                     "Expected to find a URI 
attribute in a rawX509RetrievalMethod KeyInfo");
  -
  -                                     }
  -
  -                                     DSIGKeyInfoX509 * x509;
  -                                     XSECnew(x509, DSIGKeyInfoX509(mp_env));
  -                                     x509->setRawRetrievalURI(URI);
  -
  -                                     this->m_keyInfoList.addKeyInfo(x509);
  -
  -                             }
  -
  -                             else {
  -
  -                                     // Find base transform using the base 
URI
  -                                     currentTxfm = 
DSIGReference::getURIBaseTXFM(mp_doc, URI, mp_env->getURIResolver());
  -                                     TXFMChain * chain;
  -                                     XSECnew(chain, TXFMChain(currentTxfm));
  -                                     Janitor<TXFMChain> j_chain(chain);
  -
  -                                     // Now check for transforms
  -                                     tmpKI = tmpKI->getFirstChild();
  -
  -                                     while (tmpKI != 0 && 
(tmpKI->getNodeType() != DOMNode::ELEMENT_NODE))
  -                                             // Skip text and comments
  -                                             tmpKI = tmpKI->getNextSibling();
  -
  -                                     if (tmpKI == 0) {
  -
  -                                             throw 
XSECException(XSECException::ExpectedDSIGChildNotFound, 
  -                                                             "Expected 
<Transforms> within <KeyInfo>");
  -
  -                                     }
  -
  -                                     if (strEquals(getDSIGLocalName(tmpKI), 
"Transforms")) {
  -
  -
  -                                             // Process the transforms using 
the static function.
  -                                             // For the moment we don't 
really support remote KeyInfos, so
  -                                             // Just built the transform 
list, process it and then destroy it.
  -
  -                                             DSIGTransformList * l = 
DSIGReference::loadTransforms(
  -                                                     tmpKI,
  -                                                     mp_formatter,
  -                                                     this);
  -
  -                                             
DSIGTransformList::TransformListVectorType::size_type size, i;
  -                                             size = l->getSize();
  -                                             for (i = 0; i < size; ++ i) {
  -                                                     try {
  -                                                             
l->item(i)->appendTransformer(chain);
  -                                                     }
  -                                                     catch (...) {
  -                                                             delete l;
  -                                                             throw;
  -                                                     }
  -                                             }
  -
  -                                             delete l;
  -
  -                                     }
  -
  -                                     // Find out the type of the final 
transform and process accordingly
  -                                     
  -                                     TXFMBase::nodeType type = 
chain->getLastTxfm()->getNodeType();
  -
  -                                     XSECXPathNodeList lst;
  -                                     const DOMNode * element;
  -
  -                                     switch (type) {
  -
  -                                     case TXFMBase::DOM_NODE_DOCUMENT :
  -
  -                                             break;
  -
  -                                     case 
TXFMBase::DOM_NODE_DOCUMENT_FRAGMENT :
  -
  -                                             break;
  -
  -                                     case TXFMBase::DOM_NODE_XPATH_NODESET :
  -
  -                                             lst = 
chain->getLastTxfm()->getXPathNodeList();
  -                                             element = lst.getFirstNode();
  -
  -                                             while (element != NULL) {
  -
  -                                                     // Try to add each 
element - just call KeyInfoList add as it will
  -                                                     // do the check to see 
if it is a valud KeyInfo
  -
  -                                                     
m_keyInfoList.addXMLKeyInfo((DOMNode *) element);
  -                                                     element = 
lst.getNextNode();
  -
  -                                             }
  -
  -                                             break;
  -
  -                                     default :
  -
  -                                             throw 
XSECException(XSECException::XPathError);
  -
  -                                     }
  -
  -                                     // Delete the transform chain
  -                                     
chain->getLastTxfm()->deleteExpandedNameSpaces();
  -
  -                                     // Janitor will clean up chain
  -                             }
  -
  -                     } /* if getNodeName == Retrieval Method */
  -
  -                     // Now just run through each node type in turn to 
process "local" KeyInfos
  -
  -                     else if (!m_keyInfoList.addXMLKeyInfo(tmpKI)) {
  -
  -                             throw XSECException(XSECException::KeyInfoError,
  -                                     "Unknown KeyInfo element found");
  -
  -                     }
  -
  -                     tmpKI = tmpKI->getNextSibling();
  -
  -                     while (tmpKI != 0 && (tmpKI->getNodeType() != 
DOMNode::ELEMENT_NODE))
  -                             tmpKI = tmpKI->getNextSibling();
  -
  -             }
  -
  +             m_keyInfoList.loadListFromXML(tmpElt);
        }
   
   }
  
  
  
  1.7       +10 -9     xml-security/c/src/dsig/DSIGSignedInfo.cpp
  
  Index: DSIGSignedInfo.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGSignedInfo.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DSIGSignedInfo.cpp        11 Sep 2003 11:13:36 -0000      1.6
  +++ DSIGSignedInfo.cpp        15 Sep 2003 11:57:44 -0000      1.7
  @@ -70,6 +70,7 @@
   #include <xsec/dsig/DSIGSignedInfo.hpp>
   #include <xsec/dsig/DSIGReference.hpp>
   #include <xsec/framework/XSECError.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   #include <xsec/utils/XSECDOMUtils.hpp>
   #include <xsec/dsig/DSIGSignature.hpp>
   
  @@ -81,14 +82,14 @@
   
   DSIGSignedInfo::DSIGSignedInfo(DOMDocument *doc, 
                XSECSafeBufferFormatter * pFormatter, 
  -             DOMNode *signedInfoNode, DSIGSignature * parentSignature) {
  +             DOMNode *signedInfoNode, const XSECEnv * env) {
   
        mp_doc = doc;
        m_HMACOutputLength = 0;
        mp_formatter = pFormatter;
        mp_signedInfoNode = signedInfoNode;
        m_signatureMethod = SIGNATURE_NONE;
  -     mp_parentSignature = parentSignature;
  +     mp_env = env;
        mp_referenceList = NULL;
        m_loaded = false;
   
  @@ -96,14 +97,14 @@
   
   DSIGSignedInfo::DSIGSignedInfo(DOMDocument *doc, 
                XSECSafeBufferFormatter * pFormatter, 
  -             DSIGSignature * parentSignature) {
  +             const XSECEnv * env) {
   
        mp_doc = doc;
        m_HMACOutputLength = 0;
        mp_formatter = pFormatter;
        mp_signedInfoNode = NULL;
        m_signatureMethod = SIGNATURE_NONE;
  -     mp_parentSignature = parentSignature;
  +     mp_env = env;
        mp_referenceList = NULL;
        m_loaded = false;
   
  @@ -112,7 +113,7 @@
   DSIGSignedInfo::~DSIGSignedInfo() {
   
        mp_formatter = NULL;
  -     mp_parentSignature = NULL;
  +     mp_env = NULL;
        if (mp_referenceList != NULL) {
   
                delete mp_referenceList;
  @@ -186,7 +187,7 @@
                                                                char * type) {
   
        DSIGReference * ref;
  -     XSECnew(ref, DSIGReference(mp_parentSignature));
  +     XSECnew(ref, DSIGReference(mp_env));
        Janitor<DSIGReference> j_ref(ref);
   
        DOMNode *refNode = ref->createBlankReference(URI, hm, type);
  @@ -211,7 +212,7 @@
                        hashMethod hm) {
   
        safeBuffer str;
  -     const XMLCh * prefixNS = mp_parentSignature->getDSIGNSPrefix();
  +     const XMLCh * prefixNS = mp_env->getDSIGNSPrefix();
   
        makeQName(str, prefixNS, "SignedInfo");
   
  @@ -442,7 +443,7 @@
   
                // Have an element node - should be a reference, so let's load 
the list
   
  -             mp_referenceList = 
DSIGReference::loadReferenceListFromXML(mp_parentSignature, tmpSI);
  +             mp_referenceList = 
DSIGReference::loadReferenceListFromXML(mp_env, tmpSI);
   
        }
   
  
  
  
  1.10      +8 -8      xml-security/c/src/dsig/DSIGSignedInfo.hpp
  
  Index: DSIGSignedInfo.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGSignedInfo.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DSIGSignedInfo.hpp        11 Sep 2003 11:13:36 -0000      1.9
  +++ DSIGSignedInfo.hpp        15 Sep 2003 11:57:44 -0000      1.10
  @@ -87,7 +87,7 @@
   
   #include <vector>
   
  -class DSIGSignature;
  +class XSECEnv;
   
   /**
    * @ingroup pubsig
  @@ -121,13 +121,13 @@
         * @param doc The document containing the structure to be loaded
         * @param pFormatter A safeBuffer formatter that will translate to UTF-8
         * @param signedInfoNode The node at the top of the SignedInfo tree 
fragment
  -      * @param parentSignature The signature that owns me
  +      * @param env Operating environment
         */
   
        DSIGSignedInfo(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc, 
                XSECSafeBufferFormatter * pFormatter, 
                XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *signedInfoNode,
  -             DSIGSignature * parentSignature);
  +             const XSECEnv * env);
   
   
        /**
  @@ -138,15 +138,15 @@
         *
         * @param doc The document to use to construct
         * @param pFormatter Formatter to use to translate to UTF-8
  -      * @param parentSignature The owning Signature
  +      * @param env Operating environment
         */
   
        DSIGSignedInfo(XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *doc,
                                XSECSafeBufferFormatter * pFormatter, 
  -                             DSIGSignature * parentSignature);
  +                             const XSECEnv * env);
   
        /**
  -      * \brief Destructur
  +      * \brief Destructor
         * 
         * Delete - but does not destroy the DOM Nodes
         *
  @@ -294,7 +294,7 @@
        hashMethod                                      m_hashMethod;
        DSIGReferenceList                       * mp_referenceList;
        int                                                     
m_HMACOutputLength;
  -     DSIGSignature                           * mp_parentSignature;
  +     const XSECEnv                           * mp_env;
   
        // Not implemented constructors
   
  
  
  
  1.5       +4 -3      xml-security/c/src/dsig/DSIGTransform.cpp
  
  Index: DSIGTransform.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransform.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DSIGTransform.cpp 11 Sep 2003 11:13:36 -0000      1.4
  +++ DSIGTransform.cpp 15 Sep 2003 11:57:44 -0000      1.5
  @@ -68,6 +68,7 @@
   
   #include <xsec/dsig/DSIGTransform.hpp>
   #include <xsec/dsig/DSIGSignature.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   
   XERCES_CPP_NAMESPACE_USE
   
  @@ -78,9 +79,9 @@
        safeBuffer str;
        const XMLCh * prefix;
        DOMElement *ret;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
  -     prefix = mp_parentSignature->getDSIGNSPrefix();
  +     prefix = mp_env->getDSIGNSPrefix();
        
        // Create the transform node
        makeQName(str, prefix, "Transform");
  
  
  
  1.7       +8 -8      xml-security/c/src/dsig/DSIGTransform.hpp
  
  Index: DSIGTransform.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransform.hpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DSIGTransform.hpp 11 Sep 2003 11:13:36 -0000      1.6
  +++ DSIGTransform.hpp 15 Sep 2003 11:57:44 -0000      1.7
  @@ -80,7 +80,7 @@
   
   #include <stdio.h>
   
  -class DSIGSignature;
  +class XSECEnv;
   class TXFMChain;
   
   /**
  @@ -118,14 +118,14 @@
         * @note DSIGTransform structures should only ever be created via calls 
to a
         * DSIGTransformList object.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The environment in which this transform operates
         * @param node The DOM node (within doc) that is to be used as the base 
of the Transform.
         * @see #load
         */
   
  -     DSIGTransform(DSIGSignature *sig, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node) : 
  +     DSIGTransform(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node) : 
                  mp_txfmNode(node),
  -               mp_parentSignature(sig) {};
  +               mp_env(env) {};
   
       /**
         * \brief Contructor used for new signatures.
  @@ -139,9 +139,9 @@
         *
         */
   
  -     DSIGTransform(DSIGSignature *sig) : 
  +     DSIGTransform(const XSECEnv * env) : 
                  mp_txfmNode(NULL),
  -               mp_parentSignature(sig) {};
  +               mp_env(env) {};
   
                  
        /**
  @@ -215,7 +215,7 @@
   
        XERCES_CPP_NAMESPACE_QUALIFIER DOMNode                                  
                                                        * mp_txfmNode;          
        // The node that we read from
  -     DSIGSignature                   * mp_parentSignature;   // Owning 
signature
  +     const XSECEnv                   * mp_env;       // Owning signature
   
   private:
   
  
  
  
  1.6       +8 -7      xml-security/c/src/dsig/DSIGTransformBase64.cpp
  
  Index: DSIGTransformBase64.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformBase64.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DSIGTransformBase64.cpp   11 Sep 2003 11:13:36 -0000      1.5
  +++ DSIGTransformBase64.cpp   15 Sep 2003 11:57:44 -0000      1.6
  @@ -75,6 +75,7 @@
   #include <xsec/transformers/TXFMChain.hpp>
   #include <xsec/transformers/TXFMXPath.hpp>
   #include <xsec/framework/XSECException.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   #include <xsec/utils/XSECDOMUtils.hpp>
   #include <xsec/framework/XSECError.hpp>
   
  @@ -84,12 +85,12 @@
   //           Constructors and Destructors
   // 
--------------------------------------------------------------------------------
   
  -DSIGTransformBase64::DSIGTransformBase64(DSIGSignature *sig, DOMNode * node) 
:
  -DSIGTransform(sig, node) {};
  +DSIGTransformBase64::DSIGTransformBase64(const XSECEnv * env, DOMNode * 
node) :
  +DSIGTransform(env, node) {};
   
   
  -DSIGTransformBase64::DSIGTransformBase64(DSIGSignature *sig) :
  -DSIGTransform(sig) {};
  +DSIGTransformBase64::DSIGTransformBase64(const XSECEnv * env) :
  +DSIGTransform(env) {};
                  
   
   DSIGTransformBase64::~DSIGTransformBase64() {};
  @@ -151,9 +152,9 @@
        safeBuffer str;
        const XMLCh * prefix;
        DOMElement *ret;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
  -     prefix = mp_parentSignature->getDSIGNSPrefix();
  +     prefix = mp_env->getDSIGNSPrefix();
        
        // Create the transform node
        makeQName(str, prefix, "Transform");
  
  
  
  1.8       +5 -5      xml-security/c/src/dsig/DSIGTransformBase64.hpp
  
  Index: DSIGTransformBase64.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformBase64.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DSIGTransformBase64.hpp   11 Sep 2003 11:13:36 -0000      1.7
  +++ DSIGTransformBase64.hpp   15 Sep 2003 11:57:44 -0000      1.8
  @@ -102,12 +102,12 @@
         *
         * The Node structure already exists, so read the nodes in.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @param node The DOM node (within doc) that is to be used as the base 
of the Transform.
         * @see #load
         */
   
  -     DSIGTransformBase64(DSIGSignature *sig, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
  +     DSIGTransformBase64(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
   
       /**
         * \brief Contructor used for new signatures.
  @@ -117,11 +117,11 @@
         * @note DSIGTransform structures should only ever be created via calls 
to a
         * DSIGTransformList object.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @see createBlankTransform
         */
   
  -     DSIGTransformBase64(DSIGSignature *sig);
  +     DSIGTransformBase64(const XSECEnv * env);
                  
        /**
         * \brief Destructor.
  
  
  
  1.14      +12 -11    xml-security/c/src/dsig/DSIGTransformC14n.cpp
  
  Index: DSIGTransformC14n.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformC14n.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- DSIGTransformC14n.cpp     11 Sep 2003 11:13:36 -0000      1.13
  +++ DSIGTransformC14n.cpp     15 Sep 2003 11:57:44 -0000      1.14
  @@ -71,6 +71,7 @@
   #include <xsec/transformers/TXFMC14n.hpp>
   #include <xsec/transformers/TXFMChain.hpp>
   #include <xsec/framework/XSECError.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   #include <xsec/dsig/DSIGSignature.hpp>
   
   #include <xercesc/util/Janitor.hpp>
  @@ -81,8 +82,8 @@
   //           Constructors and Destructors
   // 
--------------------------------------------------------------------------------
   
  -DSIGTransformC14n::DSIGTransformC14n(DSIGSignature *sig, DOMNode * node) :
  -DSIGTransform(sig, node) {
  +DSIGTransformC14n::DSIGTransformC14n(const XSECEnv * env, DOMNode * node) :
  +DSIGTransform(env, node) {
   
        m_cMethod = CANON_NONE;
        mp_inclNSNode = NULL;
  @@ -90,8 +91,8 @@
   }
        
   
  -DSIGTransformC14n::DSIGTransformC14n(DSIGSignature *sig) :
  -DSIGTransform(sig) {
  +DSIGTransformC14n::DSIGTransformC14n(const XSECEnv * env) :
  +DSIGTransform(env) {
   
        m_cMethod = CANON_NONE;
        mp_inclNSNode = NULL;
  @@ -146,7 +147,7 @@
                else {
   
                        safeBuffer incl;
  -                     incl << (*(mp_parentSignature->getSBFormatter()) << 
mp_inclNSStr);
  +                     incl << (*(mp_env->getSBFormatter()) << mp_inclNSStr);
                        c->setExclusive(incl);
   
                }
  @@ -160,9 +161,9 @@
        safeBuffer str;
        const XMLCh * prefix;
        DOMElement *ret;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
  -     prefix = mp_parentSignature->getDSIGNSPrefix();
  +     prefix = mp_env->getDSIGNSPrefix();
        
        // Create the transform node
        makeQName(str, prefix, "Transform");
  @@ -307,10 +308,10 @@
   
        safeBuffer str;
        const XMLCh * prefix;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
        // Use the Exclusive Canonicalisation prefix
  -     prefix = mp_parentSignature->getECNSPrefix();
  +     prefix = mp_env->getECNSPrefix();
   
        // Create the transform node
        makeQName(str, prefix, "InclusiveNamespaces");
  @@ -388,7 +389,7 @@
                // More tricky
                safeBuffer str;
   
  -             str << (*(mp_parentSignature->getSBFormatter()) << 
mp_inclNSStr);
  +             str << (*(mp_env->getSBFormatter()) << mp_inclNSStr);
                str.sbStrcatIn(" ");
                str.sbStrcatIn((char *) ns);
                mp_inclNSNode->setAttribute(MAKE_UNICODE_STRING("PrefixList"), 
str.sbStrToXMLCh());
  
  
  
  1.9       +5 -5      xml-security/c/src/dsig/DSIGTransformC14n.hpp
  
  Index: DSIGTransformC14n.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformC14n.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DSIGTransformC14n.hpp     11 Sep 2003 11:13:36 -0000      1.8
  +++ DSIGTransformC14n.hpp     15 Sep 2003 11:57:44 -0000      1.9
  @@ -97,12 +97,12 @@
         *
         * The Node structure already exists, so read the nodes in.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @param node The DOM node (within doc) that is to be used as the base 
of the Transform.
         * @see #load
         */
   
  -     DSIGTransformC14n(DSIGSignature *sig, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
  +     DSIGTransformC14n(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
   
       /**
         * \brief Contructor used for new signatures.
  @@ -112,11 +112,11 @@
         * @note DSIGTransform structures should only ever be created via calls 
to a
         * DSIGTransformList object.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @see createBlankTransform
         */
   
  -     DSIGTransformC14n(DSIGSignature *sig);
  +     DSIGTransformC14n(const XSECEnv * env);
                  
        /**
         * \brief Destructor.
  
  
  
  1.6       +8 -7      xml-security/c/src/dsig/DSIGTransformEnvelope.cpp
  
  Index: DSIGTransformEnvelope.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformEnvelope.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DSIGTransformEnvelope.cpp 11 Sep 2003 11:13:36 -0000      1.5
  +++ DSIGTransformEnvelope.cpp 15 Sep 2003 11:57:44 -0000      1.6
  @@ -75,6 +75,7 @@
   #include <xsec/transformers/TXFMChain.hpp>
   #include <xsec/transformers/TXFMXPath.hpp>
   #include <xsec/framework/XSECException.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   #include <xsec/utils/XSECDOMUtils.hpp>
   #include <xsec/framework/XSECError.hpp>
   
  @@ -84,12 +85,12 @@
   //           Constructors and Destructors
   // 
--------------------------------------------------------------------------------
   
  -DSIGTransformEnvelope::DSIGTransformEnvelope(DSIGSignature *sig, DOMNode * 
node) :
  -DSIGTransform(sig, node) {};
  +DSIGTransformEnvelope::DSIGTransformEnvelope(const XSECEnv * env, DOMNode * 
node) :
  +DSIGTransform(env, node) {};
   
   
  -DSIGTransformEnvelope::DSIGTransformEnvelope(DSIGSignature *sig) :
  -DSIGTransform(sig) {};
  +DSIGTransformEnvelope::DSIGTransformEnvelope(const XSECEnv * env) :
  +DSIGTransform(env) {};
                  
   
   DSIGTransformEnvelope::~DSIGTransformEnvelope() {};
  @@ -139,9 +140,9 @@
        safeBuffer str;
        const XMLCh * prefix;
        DOMElement *ret;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
  -     prefix = mp_parentSignature->getDSIGNSPrefix();
  +     prefix = mp_env->getDSIGNSPrefix();
        
        // Create the transform node
        makeQName(str, prefix, "Transform");
  
  
  
  1.8       +5 -5      xml-security/c/src/dsig/DSIGTransformEnvelope.hpp
  
  Index: DSIGTransformEnvelope.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformEnvelope.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DSIGTransformEnvelope.hpp 11 Sep 2003 11:13:36 -0000      1.7
  +++ DSIGTransformEnvelope.hpp 15 Sep 2003 11:57:44 -0000      1.8
  @@ -100,23 +100,23 @@
         *
         * The Node structure already exists, so read the nodes in.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @param node The DOM node (within doc) that is to be used as the base 
of the Transform.
         * @see #load
         */
   
  -     DSIGTransformEnvelope(DSIGSignature *sig, 
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode * node);
  +     DSIGTransformEnvelope(const XSECEnv * env, 
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode * node);
   
       /**
         * \brief Contructor used for new signatures.
         *
         * The Node structure will have to be created.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @see createBlankTransform
         */
   
  -     DSIGTransformEnvelope(DSIGSignature *sig);
  +     DSIGTransformEnvelope(const XSECEnv * env);
                  
        /**
         * \brief Destructor.
  
  
  
  1.10      +10 -9     xml-security/c/src/dsig/DSIGTransformXPath.cpp
  
  Index: DSIGTransformXPath.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformXPath.cpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DSIGTransformXPath.cpp    11 Sep 2003 11:13:36 -0000      1.9
  +++ DSIGTransformXPath.cpp    15 Sep 2003 11:57:44 -0000      1.10
  @@ -73,6 +73,7 @@
   #include <xsec/transformers/TXFMC14n.hpp>
   #include <xsec/transformers/TXFMChain.hpp>
   #include <xsec/framework/XSECError.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   #include <xsec/dsig/DSIGSignature.hpp>
   
   #include <xercesc/util/Janitor.hpp>
  @@ -83,8 +84,8 @@
   //           Constructors and Destructors
   // 
--------------------------------------------------------------------------------
   
  -DSIGTransformXPath::DSIGTransformXPath(DSIGSignature *sig, DOMNode * node) :
  -DSIGTransform(sig, node) {
  +DSIGTransformXPath::DSIGTransformXPath(const XSECEnv * env, DOMNode * node) :
  +DSIGTransform(env, node) {
   
        mp_exprTextNode = NULL;
        mp_xpathNode = NULL;
  @@ -94,8 +95,8 @@
   }
        
   
  -DSIGTransformXPath::DSIGTransformXPath(DSIGSignature *sig) :
  -DSIGTransform(sig) {
  +DSIGTransformXPath::DSIGTransformXPath(const XSECEnv * env) :
  +DSIGTransform(env) {
   
        mp_exprTextNode = NULL;
        mp_xpathNode = NULL;
  @@ -144,9 +145,9 @@
        safeBuffer str;
        const XMLCh * prefix;
        DOMElement *ret;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
  -     prefix = mp_parentSignature->getDSIGNSPrefix();
  +     prefix = mp_env->getDSIGNSPrefix();
        
        // Create the transform node
        makeQName(str, prefix, "Transform");
  @@ -202,9 +203,9 @@
   
                gatherChildrenText(mp_xpathNode, exprSB);
   
  -             m_expr << (*(mp_parentSignature->getSBFormatter()) << 
exprSB.rawXMLChBuffer());
  +             m_expr << (*(mp_env->getSBFormatter()) << 
exprSB.rawXMLChBuffer());
   
  -             //m_expr << (*(mp_parentSignature->getSBFormatter()) << 
mp_exprTextNode->getNodeValue());
  +             //m_expr << (*(mp_env->getSBFormatter()) << 
mp_exprTextNode->getNodeValue());
                                
        }
   
  
  
  
  1.8       +5 -5      xml-security/c/src/dsig/DSIGTransformXPath.hpp
  
  Index: DSIGTransformXPath.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformXPath.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DSIGTransformXPath.hpp    11 Sep 2003 11:13:36 -0000      1.7
  +++ DSIGTransformXPath.hpp    15 Sep 2003 11:57:44 -0000      1.8
  @@ -104,12 +104,12 @@
         *
         * The Node structure already exists, so read the nodes in.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @param node The DOM node (within doc) that is to be used as the base 
of the Transform.
         * @see #load
         */
   
  -     DSIGTransformXPath(DSIGSignature *sig, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
  +     DSIGTransformXPath(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
   
       /**
         * \brief Contructor used for new signatures.
  @@ -119,11 +119,11 @@
         * @note DSIGTransform structures should only ever be created via calls 
to a
         * DSIGTransformList object.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @see createBlankTransform
         */
   
  -     DSIGTransformXPath(DSIGSignature *sig);
  +     DSIGTransformXPath(const XSECEnv * env);
                  
        /**
         * \brief Destructor.
  
  
  
  1.5       +11 -10    xml-security/c/src/dsig/DSIGTransformXPathFilter.cpp
  
  Index: DSIGTransformXPathFilter.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformXPathFilter.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DSIGTransformXPathFilter.cpp      11 Sep 2003 11:13:36 -0000      1.4
  +++ DSIGTransformXPathFilter.cpp      15 Sep 2003 11:57:44 -0000      1.5
  @@ -73,6 +73,7 @@
   #include <xsec/dsig/DSIGXPathFilterExpr.hpp>
   #include <xsec/dsig/DSIGSignature.hpp>
   #include <xsec/framework/XSECError.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   #include <xsec/transformers/TXFMXPathFilter.hpp>
   #include <xsec/transformers/TXFMChain.hpp>
   
  @@ -84,16 +85,16 @@
   //           Construct/Destruct
   // 
--------------------------------------------------------------------------------
   
  -DSIGTransformXPathFilter::DSIGTransformXPathFilter(DSIGSignature *sig, 
DOMNode * node) :
  -DSIGTransform(sig, node),
  +DSIGTransformXPathFilter::DSIGTransformXPathFilter(const XSECEnv * env, 
DOMNode * node) :
  +DSIGTransform(env, node),
   m_loaded(false) {
   
   
   }
   
   
  -DSIGTransformXPathFilter::DSIGTransformXPathFilter(DSIGSignature *sig) :
  -DSIGTransform(sig),
  +DSIGTransformXPathFilter::DSIGTransformXPathFilter(const XSECEnv * env) :
  +DSIGTransform(env),
   m_loaded(false) {
   
   }
  @@ -158,9 +159,9 @@
        safeBuffer str;
        const XMLCh * prefix;
        DOMElement *ret;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
  -     prefix = mp_parentSignature->getDSIGNSPrefix();
  +     prefix = mp_env->getDSIGNSPrefix();
        
        // Create the transform node
        makeQName(str, prefix, "Transform");
  @@ -181,13 +182,13 @@
   
        DSIGXPathFilterExpr * e;
   
  -     XSECnew(e, DSIGXPathFilterExpr(mp_parentSignature));
  +     XSECnew(e, DSIGXPathFilterExpr(mp_env));
   
        DOMNode * elt = e->setFilter(filterType, filterExpr);
        m_exprs.push_back(e);
   
        mp_txfmNode->appendChild(elt);
  -     
mp_txfmNode->appendChild(mp_parentSignature->getParentDocument()->createTextNode(DSIGConstants::s_unicodeStrNL));
  +     
mp_txfmNode->appendChild(mp_env->getParentDocument()->createTextNode(DSIGConstants::s_unicodeStrNL));
   
        return e;
   
  @@ -217,7 +218,7 @@
                        strEquals(getXPFLocalName(n), "XPath")) {
   
                        DSIGXPathFilterExpr * xpf;
  -                     XSECnew(xpf, DSIGXPathFilterExpr(mp_parentSignature, 
n));
  +                     XSECnew(xpf, DSIGXPathFilterExpr(mp_env, n));
   
                        // Add it to the vector prior to load to ensure deleted 
if
                        // anything throws an exception
  
  
  
  1.5       +5 -5      xml-security/c/src/dsig/DSIGTransformXPathFilter.hpp
  
  Index: DSIGTransformXPathFilter.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformXPathFilter.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DSIGTransformXPathFilter.hpp      11 Sep 2003 11:13:36 -0000      1.4
  +++ DSIGTransformXPathFilter.hpp      15 Sep 2003 11:57:44 -0000      1.5
  @@ -116,12 +116,12 @@
         *
         * The Node structure already exists, so read the nodes in.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @param node The DOM node (within doc) that is to be used as the base 
of the Transform.
         * @see #load
         */
   
  -     DSIGTransformXPathFilter(DSIGSignature *sig, 
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode * node);
  +     DSIGTransformXPathFilter(const XSECEnv * env, 
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode * node);
   
       /**
         * \brief Contructor used for new signatures.
  @@ -131,11 +131,11 @@
         * @note DSIGTransform structures should only ever be created via calls 
to a
         * DSIGTransformList object.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @see createBlankTransform
         */
   
  -     DSIGTransformXPathFilter(DSIGSignature *sig);
  +     DSIGTransformXPathFilter(const XSECEnv * env);
                  
        /**
         * \brief Destructor.
  
  
  
  1.6       +8 -7      xml-security/c/src/dsig/DSIGTransformXSL.cpp
  
  Index: DSIGTransformXSL.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformXSL.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DSIGTransformXSL.cpp      11 Sep 2003 11:13:36 -0000      1.5
  +++ DSIGTransformXSL.cpp      15 Sep 2003 11:57:44 -0000      1.6
  @@ -74,6 +74,7 @@
   #include <xsec/transformers/TXFMC14n.hpp>
   #include <xsec/transformers/TXFMChain.hpp>
   #include <xsec/framework/XSECException.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   #include <xsec/utils/XSECDOMUtils.hpp>
   #include <xsec/framework/XSECError.hpp>
   
  @@ -83,13 +84,13 @@
   //           Constructors and Destructors
   // 
--------------------------------------------------------------------------------
   
  -DSIGTransformXSL::DSIGTransformXSL(DSIGSignature *sig, DOMNode * node) :
  -DSIGTransform(sig, node),
  +DSIGTransformXSL::DSIGTransformXSL(const XSECEnv * env, DOMNode * node) :
  +DSIGTransform(env, node),
   mp_stylesheetNode(NULL) {};
   
   
  -DSIGTransformXSL::DSIGTransformXSL(DSIGSignature *sig) :
  -DSIGTransform(sig),
  +DSIGTransformXSL::DSIGTransformXSL(const XSECEnv * env) :
  +DSIGTransform(env),
   mp_stylesheetNode(NULL) {};
                  
   
  @@ -167,9 +168,9 @@
        safeBuffer str;
        const XMLCh * prefix;
        DOMElement *ret;
  -     DOMDocument *doc = mp_parentSignature->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
   
  -     prefix = mp_parentSignature->getDSIGNSPrefix();
  +     prefix = mp_env->getDSIGNSPrefix();
        
        // Create the transform node
        makeQName(str, prefix, "Transform");
  
  
  
  1.8       +5 -5      xml-security/c/src/dsig/DSIGTransformXSL.hpp
  
  Index: DSIGTransformXSL.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGTransformXSL.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- DSIGTransformXSL.hpp      11 Sep 2003 11:13:36 -0000      1.7
  +++ DSIGTransformXSL.hpp      15 Sep 2003 11:57:44 -0000      1.8
  @@ -103,23 +103,23 @@
         *
         * The Node structure already exists, so read the nodes in.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @param node The DOM node (within doc) that is to be used as the base 
of the Transform.
         * @see #load
         */
   
  -     DSIGTransformXSL(DSIGSignature *sig, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
  +     DSIGTransformXSL(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
   
       /**
         * \brief Contructor used for new signatures.
         *
         * The Node structure will have to be created.
         *
  -      * @param sig The Signature structure in which this transform exists.
  +      * @param env The operating environment
         * @see createBlankTransform
         */
   
  -     DSIGTransformXSL(DSIGSignature *sig);
  +     DSIGTransformXSL(const XSECEnv * env);
                  
        /**
         * \brief Destructor.
  
  
  
  1.6       +9 -8      xml-security/c/src/dsig/DSIGXPathFilterExpr.cpp
  
  Index: DSIGXPathFilterExpr.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGXPathFilterExpr.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DSIGXPathFilterExpr.cpp   11 Sep 2003 11:13:36 -0000      1.5
  +++ DSIGXPathFilterExpr.cpp   15 Sep 2003 11:57:44 -0000      1.6
  @@ -72,6 +72,7 @@
   #include <xsec/dsig/DSIGXPathFilterExpr.hpp>
   #include <xsec/dsig/DSIGSignature.hpp>
   #include <xsec/framework/XSECException.hpp>
  +#include <xsec/framework/XSECEnv.hpp>
   
   
   #include <xercesc/dom/DOMNode.hpp>
  @@ -98,15 +99,15 @@
   //           Constructors and Destructors
   // 
--------------------------------------------------------------------------------
   
  -DSIGXPathFilterExpr::DSIGXPathFilterExpr(DSIGSignature * sig, DOMNode * 
node) :
  -mp_sig(sig),
  +DSIGXPathFilterExpr::DSIGXPathFilterExpr(const XSECEnv * env, DOMNode * 
node) :
  +mp_env(env),
   mp_xpathFilterNode(node),
   mp_NSMap(NULL) {
   
   }
   
  -DSIGXPathFilterExpr::DSIGXPathFilterExpr(DSIGSignature * sig) :
  -mp_sig(sig),
  +DSIGXPathFilterExpr::DSIGXPathFilterExpr(const XSECEnv * env) :
  +mp_env(env),
   mp_xpathFilterNode(NULL),
   mp_NSMap(NULL) {
   
  @@ -197,17 +198,17 @@
   
        safeBuffer str;
        const XMLCh * prefix;
  -     DOMDocument *doc = mp_sig->getParentDocument();
  +     DOMDocument *doc = mp_env->getParentDocument();
        DOMElement * xe;
   
        // Create the XPath element
  -     prefix = mp_sig->getXPFNSPrefix();
  +     prefix = mp_env->getXPFNSPrefix();
        makeQName(str, prefix, "XPath");
        xe = doc->createElementNS(DSIGConstants::s_unicodeStrURIXPF, 
str.rawXMLChBuffer());
        mp_xpathFilterNode = xe;
   
        // Put in correct namespace
  -     prefix = mp_sig->getXPFNSPrefix();
  +     prefix = mp_env->getXPFNSPrefix();
   
        // Set the namespace attribute
        if (prefix[0] == '\0') {
  
  
  
  1.5       +7 -7      xml-security/c/src/dsig/DSIGXPathFilterExpr.hpp
  
  Index: DSIGXPathFilterExpr.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/dsig/DSIGXPathFilterExpr.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DSIGXPathFilterExpr.hpp   11 Sep 2003 11:13:36 -0000      1.4
  +++ DSIGXPathFilterExpr.hpp   15 Sep 2003 11:57:44 -0000      1.5
  @@ -78,7 +78,7 @@
   XSEC_DECLARE_XERCES_CLASS(DOMNode);
   XSEC_DECLARE_XERCES_CLASS(DOMElement);
   
  -class DSIGSignature;
  +class XSECEnv;
   
   /**
    * @ingroup pubsig
  @@ -106,21 +106,21 @@
         *
         * Node already exists and is part of an existing XPathFilter tree
         *
  -      * @param sig The owning signature
  +      * @param env The operating environment
         * @param node The node that will be used to read the expression in
         */
   
  -     DSIGXPathFilterExpr(DSIGSignature * sig, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
  +     DSIGXPathFilterExpr(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER 
DOMNode * node);
   
        /**
         * \brief Builder constructor
         *
         * Used to create the DOM structure and DSIGSignature elements
         *
  -      * @param sig The owning signature
  +      * @param env The operating Environment
         */
   
  -     DSIGXPathFilterExpr(DSIGSignature * sig);
  +     DSIGXPathFilterExpr(const XSECEnv * env);
   
        /**
         * \brief Destructor.
  @@ -228,7 +228,7 @@
        DSIGXPathFilterExpr();
        DSIGXPathFilterExpr(const DSIGXPathFilterExpr& theOther);
   
  -     DSIGSignature                           * mp_sig;
  +     const XSECEnv                           * mp_env;
        XERCES_CPP_NAMESPACE_QUALIFIER DOMNode                                  
        
                                                                * 
mp_xpathFilterNode;
        XERCES_CPP_NAMESPACE_QUALIFIER DOMNode                                  
        
  
  
  

Reply via email to