You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@santuario.apache.org by sc...@apache.org on 2013/05/03 02:07:58 UTC
svn commit: r1478616 -
/santuario/xml-security-cpp/trunk/xsec/tools/checksig/checksig.cpp
Author: scantor
Date: Fri May 3 00:07:57 2013
New Revision: 1478616
URL: http://svn.apache.org/r1478616
Log:
Enhance ID handling logic.
Modified:
santuario/xml-security-cpp/trunk/xsec/tools/checksig/checksig.cpp
Modified: santuario/xml-security-cpp/trunk/xsec/tools/checksig/checksig.cpp
URL: http://svn.apache.org/viewvc/santuario/xml-security-cpp/trunk/xsec/tools/checksig/checksig.cpp?rev=1478616&r1=1478615&r2=1478616&view=diff
==============================================================================
--- santuario/xml-security-cpp/trunk/xsec/tools/checksig/checksig.cpp (original)
+++ santuario/xml-security-cpp/trunk/xsec/tools/checksig/checksig.cpp Fri May 3 00:07:57 2013
@@ -147,6 +147,8 @@ void printUsage(void) {
cerr << " Set an hmac key using the <string>\n\n";
cerr << " --xsecresolver/-x\n";
cerr << " Use the xml-security test XMLDSig URI resolver\n\n";
+ cerr << " --id <name>\n";
+ cerr << " Define an attribute Id by name\n\n";
cerr << " --idns/-d <ns uri> <name>\n";
cerr << " Define an attribute Id by namespace URI and name\n\n";
#if defined (XSEC_HAVE_OPENSSL)
@@ -208,6 +210,14 @@ int evaluate(int argc, char ** argv) {
useXSECURIResolver = true;
paramCount++;
}
+ else if (_stricmp(argv[paramCount], "--id") == 0) {
+ if (paramCount +1 >= argc) {
+ printUsage();
+ return 2;
+ }
+ paramCount++;
+ useIdAttributeName = argv[paramCount++];
+ }
else if (_stricmp(argv[paramCount], "--idns") == 0 || _stricmp(argv[paramCount], "-d") == 0) {
if (paramCount +2 >= argc) {
printUsage();
@@ -399,12 +409,17 @@ int evaluate(int argc, char ** argv) {
// so we add a KeyInfoResolverDefault to the Signature.
sig->setKeyInfoResolver(&theKeyInfoResolver);
- sig->registerIdAttributeName(MAKE_UNICODE_STRING("ID"));
// Register defined attribute name
- if (useIdAttributeName != NULL)
- sig->registerIdAttributeNameNS(MAKE_UNICODE_STRING(useIdAttributeNS),
- MAKE_UNICODE_STRING(useIdAttributeName));
+ if (useIdAttributeName != NULL) {
+ sig->setIdByAttributeName(true);
+ if (useIdAttributeNS != NULL) {
+ sig->registerIdAttributeNameNS(MAKE_UNICODE_STRING(useIdAttributeNS),
+ MAKE_UNICODE_STRING(useIdAttributeName));
+ } else {
+ sig->registerIdAttributeName(MAKE_UNICODE_STRING(useIdAttributeName));
+ }
+ }
// Check whether we should use the internal resolver