Add X509Digest support, adjust default KeyInfo generation.
[shibboleth/cpp-xmltooling.git] / xmltooling / signature / impl / KeyInfoSchemaValidators.cpp
index 6b80265..e79a076 100644 (file)
@@ -152,6 +152,10 @@ namespace xmlsignature {
         XMLOBJECTVALIDATOR_ONEOF(ECKeyValue,ECParameters,NamedCurve);
         XMLOBJECTVALIDATOR_REQUIRE(ECKeyValue,PublicKey);
     END_XMLOBJECTVALIDATOR;
+
+    BEGIN_XMLOBJECTVALIDATOR(XMLTOOL_DLLLOCAL,X509Digest);
+        XMLOBJECTVALIDATOR_REQUIRE(X509Digest,Algorithm);
+    END_XMLOBJECTVALIDATOR;
 };
 
 #define REGISTER_ELEMENT(namespaceURI,cname) \
@@ -217,8 +221,10 @@ void xmlsignature::registerKeyInfoClasses()
     REGISTER_ELEMENT(XMLSIG11_NS,NamedCurve);
     REGISTER_ELEMENT(XMLSIG11_NS,OCSPResponse);
     REGISTER_ELEMENT(XMLSIG11_NS,PublicKey);
+    REGISTER_ELEMENT(XMLSIG11_NS,X509Digest);
     REGISTER_TYPE(XMLSIG11_NS,DEREncodedKeyValue);
     REGISTER_TYPE(XMLSIG11_NS,ECKeyValue);
     REGISTER_TYPE(XMLSIG11_NS,KeyInfoReference);
     REGISTER_TYPE(XMLSIG11_NS,NamedCurve);
+    REGISTER_TYPE(XMLSIG11_NS,X509Digest);
 }