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