blautenb    2003/05/10 00:23:37

  Modified:    c/src/dsig DSIGReference.cpp DSIGReference.hpp
               c/src/framework XSECURIResolver.hpp
                        XSECURIResolverXerces.cpp
               c/src/utils/unixutils XSECURIResolverGenericUnix.cpp
               c/src/utils/winutils XSECURIResolverGenericWin32.cpp
  Log:
  Updates to support anonymous references
  
  Revision  Changes    Path
  1.10      +18 -12    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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DSIGReference.cpp 8 May 2003 12:10:58 -0000       1.9
  +++ DSIGReference.cpp 10 May 2003 07:23:36 -0000      1.10
  @@ -164,6 +164,7 @@
        mp_transformList = NULL;
        mp_URI = NULL;
        m_isManifest = false;
  +     m_loaded = false;
   
   }
   
  @@ -182,6 +183,7 @@
        me_hashMethod = HASH_NONE;
        mp_URI = NULL;
        m_isManifest = false;
  +     m_loaded = false;
   
   };
   
  @@ -365,8 +367,14 @@
                        MAKE_UNICODE_STRING(type));
   
        // Set URI
  -     ret->setAttribute(s_unicodeStrURI, URI);
  -     mp_URI = ret->getAttribute(s_unicodeStrURI); // Used later on as a 
pointer
  +     if (URI != NULL) {
  +             ret->setAttribute(s_unicodeStrURI, URI);
  +             mp_URI = ret->getAttribute(s_unicodeStrURI); // Used later on 
as a pointer
  +     }
  +     else {
  +             // Anonymous reference
  +             mp_URI = NULL;
  +     }
   
        // Create hash and hashValue nodes
        makeQName(str, prefix, "DigestMethod");
  @@ -392,6 +400,7 @@
        ret->appendChild(doc->createTextNode(DSIGConstants::s_unicodeStrNL));
        
mp_hashValueNode->appendChild(doc->createTextNode(MAKE_UNICODE_STRING("Not yet 
calculated")));
        
  +     m_loaded = true;
        return ret;
   
   }
  @@ -447,7 +456,8 @@
   
        // Determine if this is a full URL or a pointer to a URL
   
  -     if (URI[0] != 0 && URI[0] != XERCES_CPP_NAMESPACE_QUALIFIER chPound) {
  +     if (URI == NULL || (URI[0] != 0 && 
  +             URI[0] != XERCES_CPP_NAMESPACE_QUALIFIER chPound)) {
   
                TXFMURL * retTransform;
   
  @@ -605,12 +615,6 @@
   
        }
   
  -     // Check to ensure the URI was set
  -
  -     if (mp_URI == NULL) {
  -             throw XSECException(XSECException::ExpectedReferenceURI);
  -     }
  -
        // Now check for Transforms
        tmpElt = mp_referenceNode->getFirstChild();
   
  @@ -763,6 +767,8 @@
   
        } /* m_isManifest */
   
  +     m_loaded = true;
  +
   }
   
   // 
--------------------------------------------------------------------------------
  @@ -823,7 +829,7 @@
        TXFMChain * txfmChain;
        TXFMBase * currentTxfm;
   
  -     if (mp_URI == NULL) {
  +     if (m_loaded == false) {
   
                throw XSECException(XSECException::NotLoaded, 
                        "calculateHash() called in DSIGReference before 
load()");
  @@ -1231,7 +1237,7 @@
   
        unsigned int size;
   
  -     if (mp_URI == NULL) {
  +     if (m_loaded == false) {
   
                throw XSECException(XSECException::NotLoaded, 
                        "calculateHash() called in DSIGReference before 
load()");
  
  
  
  1.7       +4 -1      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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- DSIGReference.hpp 8 May 2003 12:10:58 -0000       1.6
  +++ DSIGReference.hpp 10 May 2003 07:23:36 -0000      1.7
  @@ -190,7 +190,8 @@
         * attributes in <Reference> Elements.  However this may of use to 
calling
         * applications.
         *
  -      * @param URI The URI (data source) for this reference.
  +      * @param URI The URI (data source) for this reference.  Set to NULL for
  +      * an anonymous reference.
         * @param hm The type of Digest to be used (generally SHA-1)
         * @param type A type string (as defined by XML Signature).
         * @returns The root Reference element of the newly created DOM 
structure.
  @@ -534,6 +535,8 @@
        DOMNode                                         * mp_hashValueNode;     
        // Node where the Hash value is stored
        DSIGSignature                           * mp_parentSignature;   // 
Owner signature
        DSIGTransformList                       * mp_transformList;             
// List of transforms
  +     
  +     bool                        m_loaded;
   
        DSIGReference();
   
  
  
  
  1.4       +2 -1      xml-security/c/src/framework/XSECURIResolver.hpp
  
  Index: XSECURIResolver.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/framework/XSECURIResolver.hpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XSECURIResolver.hpp       22 Feb 2003 08:47:24 -0000      1.3
  +++ XSECURIResolver.hpp       10 May 2003 07:23:36 -0000      1.4
  @@ -128,7 +128,8 @@
         *
         * @note The returned stream is "owned" by the caller, which
         * will delete it when processing is complete.
  -      * @param uri The string containing the URI to be de-referenced.
  +      * @param uri The string containing the URI to be de-referenced.  NULL
  +      * if this is an anonymous reference.
         * @returns The octet stream corresponding to the URI.
         */
   
  
  
  
  1.4       +4 -0      xml-security/c/src/framework/XSECURIResolverXerces.cpp
  
  Index: XSECURIResolverXerces.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/framework/XSECURIResolverXerces.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XSECURIResolverXerces.cpp 1 Mar 2003 06:27:29 -0000       1.3
  +++ XSECURIResolverXerces.cpp 10 May 2003 07:23:36 -0000      1.4
  @@ -122,6 +122,10 @@
        URLInputSource                  * URLS;         // Use Xerces URL Input 
source
        BinInputStream                  * is;           // To handle the actual 
input
   
  +     if (uri == NULL) {
  +             throw XSECException(XSECException::ErrorOpeningURI,
  +                     "XSECURIResolverXerces - anonymous references not 
supported in default URI Resolvers");
  +     }
   
        if (mp_baseURI == 0) {
                XSECnew(URLS, URLInputSource(XMLURL(uri)));
  
  
  
  1.3       +9 -1      
xml-security/c/src/utils/unixutils/XSECURIResolverGenericUnix.cpp
  
  Index: XSECURIResolverGenericUnix.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-security/c/src/utils/unixutils/XSECURIResolverGenericUnix.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XSECURIResolverGenericUnix.cpp    20 Feb 2003 10:35:10 -0000      1.2
  +++ XSECURIResolverGenericUnix.cpp    10 May 2003 07:23:36 -0000      1.3
  @@ -71,6 +71,9 @@
    * $Id$
    *
    * $Log$
  + * Revision 1.3  2003/05/10 07:23:36  blautenb
  + * Updates to support anonymous references
  + *
    * Revision 1.2  2003/02/20 10:35:10  blautenb
    * Fix for broken Xerces XMLUri
    *
  @@ -157,6 +160,11 @@
        XSEC_USING_XERCES(BinFileInputStream);
   
        XMLUri                                  * xmluri;
  +
  +     if (uri == NULL) {
  +             throw XSECException(XSECException::ErrorOpeningURI,
  +                     "XSECURIResolverGenericUnix - anonymous references not 
supported in default URI Resolvers");
  +     }
   
        // Create the appropriate XMLUri objects
   
  
  
  
  1.3       +10 -2     
xml-security/c/src/utils/winutils/XSECURIResolverGenericWin32.cpp
  
  Index: XSECURIResolverGenericWin32.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-security/c/src/utils/winutils/XSECURIResolverGenericWin32.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XSECURIResolverGenericWin32.cpp   17 Feb 2003 11:21:45 -0000      1.2
  +++ XSECURIResolverGenericWin32.cpp   10 May 2003 07:23:36 -0000      1.3
  @@ -71,6 +71,9 @@
    * $Id$
    *
    * $Log$
  + * Revision 1.3  2003/05/10 07:23:36  blautenb
  + * Updates to support anonymous references
  + *
    * Revision 1.2  2003/02/17 11:21:45  blautenb
    * Work around for Xerces XMLUri bug
    *
  @@ -156,6 +159,11 @@
   
        XMLUri                                  * xmluri;
   
  +     if (uri == NULL) {
  +             throw XSECException(XSECException::ErrorOpeningURI,
  +                     "XSECURIResolverGenericWin32 - anonymous references not 
supported in default URI Resolvers");
  +     }
  +
        // Create the appropriate XMLUri objects
        if (mp_baseURI != NULL) {
                XMLUri  * turi;
  @@ -278,4 +286,4 @@
   
        mp_baseURI = XMLString::replicate(uri);
   
  -}
  \ No newline at end of file
  +}
  
  
  

Reply via email to