You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by bl...@apache.org on 2005/01/18 10:54:10 UTC

cvs commit: xml-security/c/src/xkms/impl XKMSMessageAbstractTypeImpl.cpp XKMSStatusRequestImpl.cpp

blautenb    2005/01/18 01:54:10

  Modified:    c/Projects/VC7.0/xsec/xsec_lib xsec_lib.vcproj
               c/src/tools/xklient xklient.cpp
               c/src/utils XSECDOMUtils.hpp
               c/src/xkms/impl XKMSMessageAbstractTypeImpl.cpp
                        XKMSStatusRequestImpl.cpp
  Log:
  Bugs in handling status/pending requests
  
  Revision  Changes    Path
  1.2       +269 -0    xml-security/c/Projects/VC7.0/xsec/xsec_lib/xsec_lib.vcproj
  
  Index: xsec_lib.vcproj
  ===================================================================
  RCS file: /home/cvs/xml-security/c/Projects/VC7.0/xsec/xsec_lib/xsec_lib.vcproj,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- xsec_lib.vcproj	7 Mar 2004 03:18:17 -0000	1.1
  +++ xsec_lib.vcproj	18 Jan 2005 09:54:10 -0000	1.2
  @@ -297,6 +297,9 @@
   			Name="enc"
   			Filter="">
   			<File
  +				RelativePath="..\..\..\..\src\enc\XSECCryptoBase64.cpp">
  +			</File>
  +			<File
   				RelativePath="..\..\..\..\src\enc\XSECCryptoBase64.hpp">
   			</File>
   			<File
  @@ -768,6 +771,272 @@
   				</File>
   				<File
   					RelativePath="..\..\..\..\src\xenc\impl\XENCEncryptionMethodImpl.hpp">
  +				</File>
  +			</Filter>
  +		</Filter>
  +		<Filter
  +			Name="xkms"
  +			Filter="">
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSAuthentication.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSCompoundRequest.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSCompoundResult.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSConstants.cpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSConstants.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSKeyBinding.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSKeyBindingAbstractType.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSLocateRequest.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSLocateResult.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSMessageAbstractType.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSMessageFactory.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSNotBoundAuthentication.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSPendingRequest.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSPrototypeKeyBinding.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSQueryKeyBinding.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSRegisterRequest.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSRegisterResult.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSRequestAbstractType.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSRespondWith.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSResponseMechanism.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSResult.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSResultType.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSStatus.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSStatusRequest.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSStatusResult.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSUnverifiedKeyBinding.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSUseKeyWith.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSValidateRequest.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSValidateResult.hpp">
  +			</File>
  +			<File
  +				RelativePath="..\..\..\..\src\xkms\XKMSValidityInterval.hpp">
  +			</File>
  +			<Filter
  +				Name="impl"
  +				Filter="">
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSAuthenticationImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSAuthenticationImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSCompoundRequestImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSCompoundRequestImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSCompoundResultImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSCompoundResultImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSKeyBindingAbstractTypeImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSKeyBindingAbstractTypeImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSKeyBindingImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSKeyBindingImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSLocateRequestImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSLocateRequestImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSLocateResultImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSLocateResultImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSMessageAbstractTypeImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSMessageAbstractTypeImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSMessageFactoryImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSMessageFactoryImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSNotBoundAuthentication.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSNotBoundAuthenticationImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSPendingRequestImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSPendingRequestImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSPrototypeKeyBindingImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSPrototypeKeyBindingImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSQueryKeyBindingImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSQueryKeyBindingImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSRegisterRequestImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSRegisterRequestImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSRegisterResultImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSRegisterResultImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSRequestAbstractTypeImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSRequestAbstractTypeImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSRespondWithImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSRespondWithImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSResponseMechanismImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSResponseMechanismImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSResultImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSResultImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSResultTypeImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSResultTypeImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSStatusImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSStatusImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSStatusRequestImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSStatusRequestImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSStatusResultImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSStatusResultImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSUnverifiedKeyBindingImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSUnverifiedKeyBindingImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSUseKeyWithImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSUseKeyWithImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSValidateRequestImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSValidateRequestImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSValidateResultImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSValidateResultImpl.hpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSValidityIntervalImpl.cpp">
  +				</File>
  +				<File
  +					RelativePath="..\..\..\..\src\xkms\impl\XKMSValidityIntervalImpl.hpp">
   				</File>
   			</Filter>
   		</Filter>
  
  
  
  1.30      +111 -17   xml-security/c/src/tools/xklient/xklient.cpp
  
  Index: xklient.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/tools/xklient/xklient.cpp,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- xklient.cpp	16 Jan 2005 10:16:43 -0000	1.29
  +++ xklient.cpp	18 Jan 2005 09:54:10 -0000	1.30
  @@ -1338,14 +1338,18 @@
   
   void printPendingRequestUsage(void) {
   
  -	cerr << "\nUsage PendingRequest [--help|-h] <service URI> <OriginalRequestId> [ResponseId]\n";
  -	cerr << "   --help/-h                : print this screen and exit\n\n";
  +	cerr << "\nUsage PendingRequest [--help|-h] <service URI> [options]\n";
  +	cerr << "   --help/-h                : print this screen and exit\n";
  +	cerr << "   --original-request-id/-o <id>\n";
  +	cerr << "                            : Set original request ID\n";
  +	cerr << "   --response-id/-r <id>\n";
  +	cerr << "                            : Set Response ID\n\n";
   
   }
   
   XKMSMessageAbstractType * createPendingRequest(XSECProvider &prov, DOMDocument **doc, int argc, char ** argv, int paramCount) {
   
  -	if (paramCount +1 >= argc || 
  +	if (paramCount  >= argc || 
   		(stricmp(argv[paramCount], "--help") == 0) ||
   		(stricmp(argv[paramCount], "-h") == 0)) {
   
  @@ -1359,9 +1363,31 @@
   	XKMSPendingRequest * pr = 
   		factory->createPendingRequest(MAKE_UNICODE_STRING(argv[paramCount++]), doc);
   
  -	pr->setOriginalRequestId(MAKE_UNICODE_STRING(argv[paramCount++]));
  -	if (paramCount != argc)
  -		pr->setResponseId(MAKE_UNICODE_STRING(argv[paramCount++]));
  +	while (paramCount < argc && stricmp(argv[paramCount], "--") != 0) {
  +
  +		if (stricmp(argv[paramCount], "--original-request-id") == 0 || stricmp(argv[paramCount], "-o") == 0) {
  +			if (++paramCount >= argc) {
  +				printPendingRequestUsage();
  +				delete pr;
  +				return NULL;
  +			}
  +
  +			pr->setOriginalRequestId(MAKE_UNICODE_STRING(argv[paramCount++]));
  +		}
  +		else if (stricmp(argv[paramCount], "--response-id") == 0 || stricmp(argv[paramCount], "-r") == 0) {
  +			if (++paramCount >= argc) {
  +				printPendingRequestUsage();
  +				delete pr;
  +				return NULL;
  +			}
  +			pr->setResponseId(MAKE_UNICODE_STRING(argv[paramCount++]));
  +		}
  +		else {
  +			printPendingRequestUsage();
  +			delete pr;
  +			return NULL;
  +		}
  +	}
   
   	return pr;
   }
  @@ -1372,14 +1398,18 @@
   
   void printStatusRequestUsage(void) {
   
  -	cerr << "\nUsage StatusRequest [--help|-h] <service URI> <OriginalRequestId> <ResponseId>\n";
  -	cerr << "   --help/-h                : print this screen and exit\n\n";
  +	cerr << "\nUsage StatusRequest [--help|-h] <service URI> [options]\n";
  +	cerr << "   --help/-h                : print this screen and exit\n";
  +	cerr << "   --original-request-id/-o <id>\n";
  +	cerr << "                            : Set original request ID\n";
  +	cerr << "   --response-id/-r <id>\n";
  +	cerr << "                            : Set Response ID\n\n";
   
   }
   
   XKMSMessageAbstractType * createStatusRequest(XSECProvider &prov, DOMDocument **doc, int argc, char ** argv, int paramCount) {
   
  -	if (paramCount +1 >= argc || 
  +	if (paramCount  >= argc || 
   		(stricmp(argv[paramCount], "--help") == 0) ||
   		(stricmp(argv[paramCount], "-h") == 0)) {
   
  @@ -1393,8 +1423,31 @@
   	XKMSStatusRequest * sr = 
   		factory->createStatusRequest(MAKE_UNICODE_STRING(argv[paramCount++]), doc);
   
  -	sr->setOriginalRequestId(MAKE_UNICODE_STRING(argv[paramCount++]));
  -	sr->setResponseId(MAKE_UNICODE_STRING(argv[paramCount++]));
  +	while (paramCount < argc && stricmp(argv[paramCount], "--") != 0) {
  +
  +		if (stricmp(argv[paramCount], "--original-request-id") == 0 || stricmp(argv[paramCount], "-o") == 0) {
  +			if (++paramCount >= argc) {
  +				printStatusRequestUsage();
  +				delete sr;
  +				return NULL;
  +			}
  +
  +			sr->setOriginalRequestId(MAKE_UNICODE_STRING(argv[paramCount++]));
  +		}
  +		else if (stricmp(argv[paramCount], "--response-id") == 0 || stricmp(argv[paramCount], "-r") == 0) {
  +			if (++paramCount >= argc) {
  +				printStatusRequestUsage();
  +				delete sr;
  +				return NULL;
  +			}
  +			sr->setResponseId(MAKE_UNICODE_STRING(argv[paramCount++]));
  +		}
  +		else {
  +			printStatusRequestUsage();
  +			delete sr;
  +			return NULL;
  +		}
  +	}
   
   	return sr;
   }
  @@ -2229,6 +2282,10 @@
   	cerr << "\nUsage request [options] {RequestType} [msg specific options]\n";
   	cerr << "   --help/-h       : Print this screen and exit\n";
   	cerr << "   --two-phase/-t  : Indicate Two-Phase support in the request message\n";
  +	cerr << "   --nonce/-n [nonce]\n";
  +	cerr << "                   : Set two phase nonce value\n";
  +	cerr << "   --original-requestid/-o [id]\n";
  +	cerr << "                   : set OriginalRequestId attribute in request\n";
   	cerr << "   --envelope-type/-e [NONE|SOAP11|SOAP12]\n";
       cerr << "                   : Set envelope wrapper for request\n";
   	cerr << "                         NONE   = No wrapper - straight HTTP request\n";
  @@ -2253,6 +2310,9 @@
   	bool twoPhase = false;
   	bool parmsDone = false;
   
  +	char * nonce = NULL;
  +	char * originalRequestId = NULL;
  +
   	if (paramCount >= argc || 
   		(stricmp(argv[paramCount], "--help") == 0) ||
   		(stricmp(argv[paramCount], "-h") == 0)) {
  @@ -2268,7 +2328,29 @@
   			paramCount++;
   
   		}
  -		if ((stricmp(argv[paramCount], "--envelope") == 0) ||
  +		else if ((stricmp(argv[paramCount], "--nonce") == 0) ||
  +			(stricmp(argv[paramCount], "-n") == 0)) {
  +
  +			paramCount++;
  +			if (paramCount == argc) {
  +				printDoRequestUsage();
  +				return -1;
  +			}
  +
  +			nonce=argv[paramCount++];
  +		}
  +		else if ((stricmp(argv[paramCount], "--original-requestid") == 0) ||
  +			(stricmp(argv[paramCount], "-o") == 0)) {
  +
  +			paramCount++;
  +			if (paramCount == argc) {
  +				printDoRequestUsage();
  +				return -1;
  +			}
  +
  +			originalRequestId=argv[paramCount++];
  +		}		
  +		else if ((stricmp(argv[paramCount], "--envelope") == 0) ||
   			(stricmp(argv[paramCount], "-e") == 0)) {
   
   			// Set the wrapper envelope type
  @@ -2294,7 +2376,7 @@
   			}
   			paramCount++;
   		}
  -		if ((stricmp(argv[paramCount], "LocateRequest") == 0) ||
  +		else if ((stricmp(argv[paramCount], "LocateRequest") == 0) ||
   			(stricmp(argv[paramCount], "lr") == 0)) {
   
   			paramCount++;
  @@ -2404,6 +2486,14 @@
   		}
   	}
   
  +	XKMSMessageFactory * f = prov.getXKMSMessageFactory();
  +	XKMSRequestAbstractType * request = f->toRequestAbstractType(msg);
  +
  +	if (nonce != NULL)
  +		request->setNonce(MAKE_UNICODE_STRING(nonce));
  +	if (originalRequestId != NULL)
  +		request->setOriginalRequestId(MAKE_UNICODE_STRING(originalRequestId));
  +
   	try {
   		if (g_txtOut) {
   			outputDoc(doc);
  @@ -2442,12 +2532,11 @@
   			seconds++;
   		}
   
  -		cout << "Time takend for request = " << seconds << " seconds, " << useconds << " useconds" << endl;
  +		cout << "Time taken for request = " << seconds << " seconds, " << useconds << " useconds" << endl;
   #endif
   		/* If two-phase - re-do the request */
   		if (twoPhase) {
   
  -			XKMSMessageFactory * f = prov.getXKMSMessageFactory();
   			XKMSResultType * r = f->toResultType(f->newMessageFromDOM(responseDoc->getDocumentElement()));
   			if (r->getResultMajor() == XKMSResultType::Represent) {
   
  @@ -2458,7 +2547,7 @@
   				}
   				doParsedMsgDump(responseDoc);
   
  -				XKMSRequestAbstractType * request = f->toRequestAbstractType(msg);
  +				//XKMSRequestAbstractType * request = f->toRequestAbstractType(msg);
   				for (int k = 0; k < request->getResponseMechanismSize(); ++k) {
   					if (strEquals(request->getResponseMechanismItemStr(k),
   								  XKMSConstants::s_tagRepresent)) {
  @@ -2468,6 +2557,11 @@
   				}
   
   				request->setNonce(r->getNonce());
  +				request->setOriginalRequestId(request->getId());
  +				XMLCh * myId = generateId();
  +				ArrayJanitor<XMLCh> j_myId(myId);
  +
  +				request->setId(myId);
   
   				responseDoc->release();
   				responseDoc = req.doRequest(doc);
  
  
  
  1.18      +2 -2      xml-security/c/src/utils/XSECDOMUtils.hpp
  
  Index: XSECDOMUtils.hpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/utils/XSECDOMUtils.hpp,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- XSECDOMUtils.hpp	18 Jun 2004 12:25:31 -0000	1.17
  +++ XSECDOMUtils.hpp	18 Jan 2005 09:54:10 -0000	1.18
  @@ -127,7 +127,7 @@
   //           Generate Ids
   // --------------------------------------------------------------------------------
   
  -XMLCh * generateId(unsigned int bytes = 16);
  +XMLCh DSIG_EXPORT * generateId(unsigned int bytes = 16);
   
   // --------------------------------------------------------------------------------
   //           String Functions 
  
  
  
  1.9       +2 -2      xml-security/c/src/xkms/impl/XKMSMessageAbstractTypeImpl.cpp
  
  Index: XKMSMessageAbstractTypeImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/xkms/impl/XKMSMessageAbstractTypeImpl.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- XKMSMessageAbstractTypeImpl.cpp	9 Jan 2005 09:21:26 -0000	1.8
  +++ XKMSMessageAbstractTypeImpl.cpp	18 Jan 2005 09:54:10 -0000	1.9
  @@ -329,7 +329,7 @@
   	}
   
   	mp_messageAbstractTypeElement->setAttributeNS(NULL, XKMSConstants::s_tagNonce, uri);
  -	mp_serviceAttr = 
  +	mp_nonceAttr = 
   		mp_messageAbstractTypeElement->getAttributeNodeNS(NULL, XKMSConstants::s_tagNonce);
   
   }
  
  
  
  1.3       +6 -1      xml-security/c/src/xkms/impl/XKMSStatusRequestImpl.cpp
  
  Index: XKMSStatusRequestImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-security/c/src/xkms/impl/XKMSStatusRequestImpl.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XKMSStatusRequestImpl.cpp	4 Nov 2004 11:07:04 -0000	1.2
  +++ XKMSStatusRequestImpl.cpp	18 Jan 2005 09:54:10 -0000	1.3
  @@ -88,6 +88,11 @@
   	mp_responseIdAttr = 
   		mp_messageAbstractTypeElement->getAttributeNodeNS(NULL, XKMSConstants::s_tagResponseId);
   
  +	if (mp_responseIdAttr == NULL) {
  +		throw XSECException(XSECException::XKMSError,
  +			"XKMSStatusRequest::load - responseId not found!");
  +	}
  +
   }
   
   // --------------------------------------------------------------------------------