Convert from NULL macro to nullptr, remove unused zlib code.
[shibboleth/cpp-opensaml.git] / saml / SAMLConfig.cpp
index 6328b84..eac17f8 100644 (file)
@@ -1,6 +1,6 @@
 
 /*
- *  Copyright 2001-2007 Internet2
+ *  Copyright 2001-2010 Internet2
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,7 @@
 /**
  * SAMLConfig.cpp
  * 
- * Library configuration 
+ * Library configuration.
  */
 
 #include "internal.h"
 
 #include <xmltooling/logging.h>
 #include <xmltooling/XMLToolingConfig.h>
+#include <xmltooling/security/SecurityHelper.h>
 #include <xmltooling/signature/Signature.h>
 #include <xmltooling/util/NDC.h>
+#include <xmltooling/util/PathResolver.h>
 
 #include <xsec/enc/XSECCryptoException.hpp>
 #include <xsec/enc/XSECCryptoProvider.hpp>
@@ -102,6 +104,19 @@ SAMLInternalConfig& SAMLInternalConfig::getInternalConfig()
     return g_config;
 }
 
+SAMLConfig::SAMLConfig() : m_artifactMap(nullptr)
+{
+}
+
+SAMLConfig::~SAMLConfig()
+{
+}
+
+ArtifactMap* SAMLConfig::getArtifactMap() const
+{
+    return m_artifactMap;
+}
+
 void SAMLConfig::setArtifactMap(ArtifactMap* artifactMap)
 {
     delete m_artifactMap;
@@ -116,10 +131,9 @@ bool SAMLInternalConfig::init(bool initXMLTooling)
     Category& log=Category::getInstance(SAML_LOGCAT".SAMLConfig");
     log.debug("library initialization started");
 
-    if (initXMLTooling) {
+    if (initXMLTooling)
         XMLToolingConfig::getConfig().init();
-        log.debug("XMLTooling library initialized");
-    }
+    XMLToolingConfig::getConfig().getPathResolver()->setDefaultPackageName("opensaml");
 
     REGISTER_XMLTOOLING_EXCEPTION_FACTORY(ArtifactException,opensaml);
     REGISTER_XMLTOOLING_EXCEPTION_FACTORY(SecurityPolicyException,opensaml);
@@ -142,7 +156,7 @@ bool SAMLInternalConfig::init(bool initXMLTooling)
     registerMessageDecoders();
     registerSecurityPolicyRules();
 
-    log.info("library initialization complete");
+    log.info("%s library initialization complete", PACKAGE_STRING);
     return true;
 }
 
@@ -161,13 +175,12 @@ void SAMLInternalConfig::term(bool termXMLTooling)
     MetadataProviderManager.deregisterFactories();
 
     delete m_artifactMap;
-    m_artifactMap = NULL;
+    m_artifactMap = nullptr;
 
-    if (termXMLTooling) {
+    if (termXMLTooling)
         XMLToolingConfig::getConfig().term();
-        log.debug("XMLTooling library shut down");
-    }
-    log.info("library shutdown complete");
+    
+    log.info("%s library shutdown complete", PACKAGE_STRING);
 }
 
 void SAMLInternalConfig::generateRandomBytes(void* buf, unsigned int len)
@@ -205,29 +218,31 @@ XMLCh* SAMLInternalConfig::generateIdentifier()
 
 string SAMLInternalConfig::hashSHA1(const char* s, bool toHex)
 {
-    static char DIGITS[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
-
-    auto_ptr<XSECCryptoHash> hasher(XSECPlatformUtils::g_cryptoProvider->hashSHA1());
-    if (hasher.get()) {
-        unsigned char buf[21];
-        hasher->hash(reinterpret_cast<unsigned char*>(const_cast<char*>(s)),strlen(s));
-        if (hasher->finish(buf,20)==20) {
-            string ret;
-            if (toHex) {
-                for (unsigned int i=0; i<20; i++) {
-                    ret+=(DIGITS[((unsigned char)(0xF0 & buf[i])) >> 4 ]);
-                    ret+=(DIGITS[0x0F & buf[i]]);
-                }
-            }
-            else {
-                for (unsigned int i=0; i<20; i++) {
-                    ret+=buf[i];
-                }
-            }
-            return ret;
-        }
-    }
-    throw XMLSecurityException("Unable to generate SHA-1 hash.");
+    return SecurityHelper::doHash("SHA1", s, strlen(s), toHex);
+}
+
+SignableObject::SignableObject()
+{
+}
+
+SignableObject::~SignableObject()
+{
+}
+
+RootObject::RootObject()
+{
+}
+
+RootObject::~RootObject()
+{
+}
+
+Assertion::Assertion()
+{
+}
+
+Assertion::~Assertion()
+{
 }
 
 using namespace saml2p;
@@ -235,13 +250,13 @@ using namespace saml2md;
 
 void opensaml::annotateException(XMLToolingException* e, const EntityDescriptor* entity, const Status* status, bool rethrow)
 {
-    const RoleDescriptor* role = NULL;
+    const RoleDescriptor* role = nullptr;
     if (entity) {
         const list<XMLObject*>& roles=entity->getOrderedChildren();
         for (list<XMLObject*>::const_iterator child=roles.begin(); !role && child!=roles.end(); ++child) {
             role=dynamic_cast<RoleDescriptor*>(*child);
             if (role && !role->isValid())
-                role = NULL;
+                role = nullptr;
         }
     }
     annotateException(e, role, status, rethrow);
@@ -260,8 +275,8 @@ void opensaml::annotateException(XMLToolingException* e, const RoleDescriptor* r
                     || XMLString::equals(ctype,ContactPerson::CONTACT_TECHNICAL))) {
                 GivenName* fname=(*c)->getGivenName();
                 SurName* lname=(*c)->getSurName();
-                auto_ptr_char first(fname ? fname->getName() : NULL);
-                auto_ptr_char last(lname ? lname->getName() : NULL);
+                auto_ptr_char first(fname ? fname->getName() : nullptr);
+                auto_ptr_char last(lname ? lname->getName() : nullptr);
                 if (first.get() && last.get()) {
                     string contact=string(first.get()) + ' ' + last.get();
                     e->addProperty("contactName",contact.c_str());
@@ -287,7 +302,7 @@ void opensaml::annotateException(XMLToolingException* e, const RoleDescriptor* r
     }
     
     if (status) {
-        auto_ptr_char sc(status->getStatusCode() ? status->getStatusCode()->getValue() : NULL);
+        auto_ptr_char sc(status->getStatusCode() ? status->getStatusCode()->getValue() : nullptr);
         if (sc.get() && *sc.get())
             e->addProperty("statusCode", sc.get());
         if (status->getStatusCode()->getStatusCode()) {