#include "impl/UnknownElement.h"
#include "security/TrustEngine.h"
#include "security/OpenSSLCryptoX509CRL.h"
-#include "signature/CredentialResolver.h"
+#include "security/CredentialResolver.h"
+#include "security/KeyInfoResolver.h"
+#include "signature/Signature.h"
#include "soap/SOAP.h"
#include "soap/SOAPTransport.h"
#include "util/NDC.h"
#include "util/ReplayCache.h"
#include "util/StorageService.h"
#include "util/TemplateEngine.h"
+#include "util/URLEncoder.h"
#include "util/XMLConstants.h"
#include "validation/ValidatorSuite.h"
m_templateEngine = templateEngine;
}
+void XMLToolingConfig::setURLEncoder(URLEncoder* urlEncoder)
+{
+ delete m_urlEncoder;
+ m_urlEncoder = urlEncoder;
+}
+
bool XMLToolingInternalConfig::init()
{
#ifdef _DEBUG
}
log.debug("libcurl %s initialization complete", LIBCURL_VERSION);
- xercesc::XMLPlatformUtils::Initialize();
+ XMLPlatformUtils::Initialize();
log.debug("Xerces initialization complete");
#ifndef XMLTOOLING_NO_XMLSEC
m_parserPool=new ParserPool();
m_validatingPool=new ParserPool(true,true);
- m_lock=xercesc::XMLPlatformUtils::makeMutex();
+ m_lock=XMLPlatformUtils::makeMutex();
// Load catalogs from path.
if (!catalog_path.empty()) {
registerKeyInfoClasses();
registerEncryptionClasses();
registerSOAPClasses();
-
+
REGISTER_XMLTOOLING_EXCEPTION_FACTORY(XMLParserException,xmltooling);
REGISTER_XMLTOOLING_EXCEPTION_FACTORY(XMLObjectException,xmltooling);
REGISTER_XMLTOOLING_EXCEPTION_FACTORY(MarshallingException,xmltooling);
REGISTER_XMLTOOLING_EXCEPTION_FACTORY(XMLSecurityException,xmltooling);
REGISTER_XMLTOOLING_EXCEPTION_FACTORY(SignatureException,xmlsignature);
REGISTER_XMLTOOLING_EXCEPTION_FACTORY(EncryptionException,xmlencryption);
- registerKeyResolvers();
+ registerKeyInfoResolvers();
registerCredentialResolvers();
registerTrustEngines();
+ registerXMLAlgorithms();
#endif
registerSOAPTransports();
initSOAPTransports();
registerStorageServices();
+ m_urlEncoder = new URLEncoder();
+ m_keyInfoResolver = KeyInfoResolverManager.newPlugin(INLINE_KEYINFO_RESOLVER,NULL);
+
// Register xml:id as an ID attribute.
static const XMLCh xmlid[] = UNICODE_LITERAL_2(i,d);
AttributeExtensibleXMLObject::registerIDAttribute(QName(xmlconstants::XML_NS, xmlid));
#ifndef XMLTOOLING_NO_XMLSEC
TrustEngineManager.deregisterFactories();
CredentialResolverManager.deregisterFactories();
- KeyResolverManager.deregisterFactories();
+ KeyInfoResolverManager.deregisterFactories();
+ m_algorithmMap.clear();
#endif
+ delete m_keyInfoResolver;
+ m_keyInfoResolver = NULL;
+
delete m_replayCache;
m_replayCache = NULL;
delete m_templateEngine;
m_templateEngine = NULL;
+ delete m_urlEncoder;
+ m_urlEncoder = NULL;
+
for (vector<void*>::reverse_iterator i=m_libhandles.rbegin(); i!=m_libhandles.rend(); i++) {
#if defined(WIN32)
FARPROC fn=GetProcAddress(static_cast<HMODULE>(*i),"xmltooling_extension_term");
XSECPlatformUtils::Terminate();
#endif
- xercesc::XMLPlatformUtils::closeMutex(m_lock);
+ XMLPlatformUtils::closeMutex(m_lock);
m_lock=NULL;
- xercesc::XMLPlatformUtils::Terminate();
+ XMLPlatformUtils::Terminate();
curl_global_cleanup();
{
return new OpenSSLCryptoX509CRL();
}
+
+void XMLToolingInternalConfig::registerXMLAlgorithms()
+{
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIRSA_MD5, "RSA", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIRSA_SHA1, "RSA", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIRSA_SHA224, "RSA", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIRSA_SHA256, "RSA", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIRSA_SHA384, "RSA", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIRSA_SHA512, "RSA", 0);
+
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIRSA_1_5, "RSA", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIRSA_OAEP_MGFP1, "RSA", 0);
+
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIDSA_SHA1, "DSA", 0);
+
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIHMAC_SHA1, "HMAC", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIHMAC_SHA224, "HMAC", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIHMAC_SHA256, "HMAC", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIHMAC_SHA384, "HMAC", 0);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIHMAC_SHA512, "HMAC", 0);
+
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURI3DES_CBC, "DESede", 192);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIKW_3DES, "DESede", 192);
+
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIAES128_CBC, "AES", 128);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIKW_AES128, "AES", 128);
+
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIAES192_CBC, "AES", 192);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIKW_AES192, "AES", 192);
+
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIAES256_CBC, "AES", 256);
+ registerXMLAlgorithm(DSIGConstants::s_unicodeStrURIKW_AES256, "AES", 256);
+}
#endif