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!");
+ }
+
}
// --------------------------------------------------------------------------------