in xsec/tools/xklient/xklient.cpp [3807:3947]
int doMsgDump(XKMSMessageAbstractType * msg) {
if (msg->isSigned()) {
cout << "Message is signed. Checking signature ... ";
try {
XSECKeyInfoResolverDefault theKeyInfoResolver;
DSIGSignature * sig = msg->getSignature();
// The only way we can verify is using keys read directly from the KeyInfo list,
// so we add a KeyInfoResolverDefault to the Signature.
sig->setKeyInfoResolver(&theKeyInfoResolver);
if (sig->verify())
cout << "OK!" << endl;
else
cout << "Bad!" << endl;
}
catch (const XSECException &e) {
cout << "Bad!. Caught exception : " << endl;
char * msg = XMLString::transcode(e.getMsg());
cout << msg << endl;
XSEC_RELEASE_XMLCH(msg);
}
}
int i;
switch (msg->getMessageType()) {
case XKMSMessageAbstractType::CompoundRequest :
cout << "Compound Request\n\n";
for (i = 0 ; i < ((XKMSCompoundRequest *) (msg))->getRequestListSize(); ++i) {
cout << "Message " << i << endl;
doMsgDump(((XKMSCompoundRequest *) msg)->getRequestListItem(i));
}
break;
case XKMSMessageAbstractType::CompoundResult :
cout << "Compound Result\n\n";
for (i = 0 ; i < ((XKMSCompoundResult *)(msg))->getResultListSize(); ++i) {
cout << "Message " << i << endl;
doMsgDump(((XKMSCompoundResult *) msg)->getResultListItem(i));
}
break;
case XKMSMessageAbstractType::LocateRequest :
doLocateRequestDump((XKMSLocateRequest *) msg);
break;
case XKMSMessageAbstractType::LocateResult :
doLocateResultDump((XKMSLocateResult *) msg);
break;
case XKMSMessageAbstractType::StatusRequest :
doStatusRequestDump((XKMSStatusRequest *) msg);
break;
case XKMSMessageAbstractType::StatusResult :
doStatusResultDump((XKMSStatusResult *) msg);
break;
case XKMSMessageAbstractType::Result :
doResultDump((XKMSResult *) msg);
break;
case XKMSMessageAbstractType::ValidateRequest :
doValidateRequestDump((XKMSValidateRequest *) msg);
break;
case XKMSMessageAbstractType::ValidateResult :
doValidateResultDump((XKMSValidateResult *) msg);
break;
case XKMSMessageAbstractType::RegisterRequest :
doRegisterRequestDump((XKMSRegisterRequest *) msg);
break;
case XKMSMessageAbstractType::RegisterResult :
doRegisterResultDump((XKMSRegisterResult *) msg);
break;
case XKMSMessageAbstractType::RevokeRequest :
doRevokeRequestDump((XKMSRevokeRequest *) msg);
break;
case XKMSMessageAbstractType::RevokeResult :
doRevokeResultDump((XKMSRevokeResult *) msg);
break;
case XKMSMessageAbstractType::RecoverRequest :
doRecoverRequestDump((XKMSRecoverRequest *) msg);
break;
case XKMSMessageAbstractType::RecoverResult :
doRecoverResultDump((XKMSRecoverResult *) msg);
break;
case XKMSMessageAbstractType::ReissueRequest :
doReissueRequestDump((XKMSReissueRequest *) msg);
break;
case XKMSMessageAbstractType::ReissueResult :
doReissueResultDump((XKMSReissueResult *) msg);
break;
default :
cout << "Unknown message type!" << endl;
}
return 0;
}