X-Git-Url: http://www.project-moonshot.org/gitweb/?p=shibboleth%2Fcpp-xmltooling.git;a=blobdiff_plain;f=xmltooling%2Fsecurity%2Fimpl%2FCredentialCriteria.cpp;h=b70227d2c65f2cf18ad99173c31d5d3b701844ca;hp=ae4f1ea8823098d539a02d6542ac009ad374dacc;hb=eee7b43b039e9fb920fd5c8a94d7934147701f40;hpb=80cbc3f2e5eae46870858c2e150488e7f0af9b7b diff --git a/xmltooling/security/impl/CredentialCriteria.cpp b/xmltooling/security/impl/CredentialCriteria.cpp index ae4f1ea..b70227d 100644 --- a/xmltooling/security/impl/CredentialCriteria.cpp +++ b/xmltooling/security/impl/CredentialCriteria.cpp @@ -36,6 +36,13 @@ using namespace std; bool CredentialCriteria::matches(const Credential& credential) const { + // Usage check, if specified and we have one. + if (getUsage() != Credential::UNSPECIFIED_CREDENTIAL) { + if (credential.getUsage() != Credential::UNSPECIFIED_CREDENTIAL) + if (getUsage() != credential.getUsage()) + return false; + } + // Algorithm check, if specified and we have one. const char* alg = getKeyAlgorithm(); if (alg && *alg) {