X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2Fsecurity%2FChainingTrustEngine.h;h=80e584957d10abba3c718599bd916f4b6c5ec266;hb=a0d768778a8f5f539b909baf5b115e70ea765f0f;hp=65f972b580812f0b88b72c3b703da5a4da064e37;hpb=6505807a62569ce65803b448b07a6872c6af2512;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/security/ChainingTrustEngine.h b/xmltooling/security/ChainingTrustEngine.h index 65f972b..80e5849 100644 --- a/xmltooling/security/ChainingTrustEngine.h +++ b/xmltooling/security/ChainingTrustEngine.h @@ -1,5 +1,5 @@ /* - * 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. @@ -24,13 +24,16 @@ #define __xmltooling_chaintrust_h__ #include +#include + +#include namespace xmltooling { /** * OpenSSLTrustEngine that uses multiple engines in sequence. */ - class XMLTOOL_API ChainingTrustEngine : public OpenSSLTrustEngine { + class XMLTOOL_API ChainingTrustEngine : public SignatureTrustEngine, public OpenSSLTrustEngine { public: /** * Constructor. @@ -45,7 +48,7 @@ namespace xmltooling { * * @param e DOM to supply configuration for provider */ - ChainingTrustEngine(const DOMElement* e=NULL); + ChainingTrustEngine(const xercesc::DOMElement* e=nullptr); /** * Destructor will delete any embedded engines. @@ -57,9 +60,7 @@ namespace xmltooling { * * @param newEngine trust engine to add */ - void addTrustEngine(TrustEngine* newEngine) { - m_engines.push_back(newEngine); - } + void addTrustEngine(TrustEngine* newEngine); /** * Removes a trust engine. The caller must delete the engine if necessary. @@ -67,20 +68,12 @@ namespace xmltooling { * @param oldEngine trust engine to remove * @return the old engine */ - TrustEngine* removeTrustEngine(TrustEngine* oldEngine) { - for (std::vector::iterator i=m_engines.begin(); i!=m_engines.end(); i++) { - if (oldEngine==(*i)) { - m_engines.erase(i); - return oldEngine; - } - } - return NULL; - } + TrustEngine* removeTrustEngine(TrustEngine* oldEngine); bool validate( xmlsignature::Signature& sig, const CredentialResolver& credResolver, - CredentialCriteria* criteria=NULL + CredentialCriteria* criteria=nullptr ) const; bool validate( const XMLCh* sigAlgorithm, @@ -89,22 +82,25 @@ namespace xmltooling { const char* in, unsigned int in_len, const CredentialResolver& credResolver, - CredentialCriteria* criteria=NULL + CredentialCriteria* criteria=nullptr ) const; bool validate( XSECCryptoX509* certEE, const std::vector& certChain, const CredentialResolver& credResolver, - CredentialCriteria* criteria=NULL + CredentialCriteria* criteria=nullptr ) const; bool validate( X509* certEE, STACK_OF(X509)* certChain, const CredentialResolver& credResolver, - CredentialCriteria* criteria=NULL + CredentialCriteria* criteria=nullptr ) const; private: std::vector m_engines; + std::vector m_sigEngines; + std::vector m_x509Engines; + std::vector m_osslEngines; }; };