#define __xmltooling_chaintrust_h__
#include <xmltooling/security/OpenSSLTrustEngine.h>
+#include <xmltooling/security/SignatureTrustEngine.h>
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.
*
* @param e DOM to supply configuration for provider
*/
- ChainingTrustEngine(const DOMElement* e=NULL);
+ ChainingTrustEngine(const xercesc::DOMElement* e=NULL);
/**
* Destructor will delete any embedded engines.
bool validate(
xmlsignature::Signature& sig,
- const KeyInfoSource& keyInfoSource,
- const xmlsignature::KeyResolver* keyResolver=NULL
+ const CredentialResolver& credResolver,
+ CredentialCriteria* criteria=NULL
) const;
bool validate(
const XMLCh* sigAlgorithm,
xmlsignature::KeyInfo* keyInfo,
const char* in,
unsigned int in_len,
- const KeyInfoSource& keyInfoSource,
- const xmlsignature::KeyResolver* keyResolver=NULL
+ const CredentialResolver& credResolver,
+ CredentialCriteria* criteria=NULL
) const;
bool validate(
XSECCryptoX509* certEE,
const std::vector<XSECCryptoX509*>& certChain,
- const KeyInfoSource& keyInfoSource,
- bool checkName=true,
- const xmlsignature::KeyResolver* keyResolver=NULL
+ const CredentialResolver& credResolver,
+ CredentialCriteria* criteria=NULL
) const;
bool validate(
X509* certEE,
STACK_OF(X509)* certChain,
- const KeyInfoSource& keyInfoSource,
- bool checkName=true,
- const xmlsignature::KeyResolver* keyResolver=NULL
+ const CredentialResolver& credResolver,
+ CredentialCriteria* criteria=NULL
) const;
private:
std::vector<TrustEngine*> m_engines;
+ std::vector<SignatureTrustEngine*> m_sigEngines;
+ std::vector<X509TrustEngine*> m_x509Engines;
+ std::vector<OpenSSLTrustEngine*> m_osslEngines;
};
};