X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=saml%2Fencryption%2FEncryptedKeyResolver.cpp;h=c25e5285b59b6a2611f4e69edb979620db8f9a45;hb=e9554c255ad3c91c7c4976e7a1a54905903e66a2;hp=5c9f6522998f6bfa157104c6490c3aa94def557a;hpb=034395d99c818fb5489421fd4e7aa4eb3fa5d173;p=shibboleth%2Fcpp-opensaml.git diff --git a/saml/encryption/EncryptedKeyResolver.cpp b/saml/encryption/EncryptedKeyResolver.cpp index 5c9f652..c25e528 100644 --- a/saml/encryption/EncryptedKeyResolver.cpp +++ b/saml/encryption/EncryptedKeyResolver.cpp @@ -1,37 +1,51 @@ -/* - * Copyright 2001-2006 Internet2 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * EncryptedKeyResolver.cpp - * - * SAML-specific encrypted key resolver - */ - -#include "internal.h" -#include "encryption/EncryptedKeyResolver.h" - -using namespace xmlencryption; -using namespace std; - -EncryptedKey* opensaml::EncryptedKeyResolver::resolveKey(EncryptedData* encryptedData) -{ - const vector& keys=m_ref.getEncryptedKeys(); - for (vector::const_iterator i=keys.begin(); i!=keys.end(); i++) { - if (XMLString::equals(m_recipient,(*i)->getRecipient())) - return (*i); - } - return NULL; -} +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * EncryptedKeyResolver.cpp + * + * SAML-specific encrypted key resolver. + */ + +#include "internal.h" +#include "encryption/EncryptedKeyResolver.h" +#include "saml2/core/Assertions.h" + +using namespace xmlencryption; +using opensaml::saml2::EncryptedElementType; +using namespace std; + +opensaml::EncryptedKeyResolver::EncryptedKeyResolver(const EncryptedElementType& ref) : m_ref(ref) +{ +} + +opensaml::EncryptedKeyResolver::~EncryptedKeyResolver() +{ +} + +const EncryptedKey* opensaml::EncryptedKeyResolver::resolveKey(const EncryptedData& encryptedData, const XMLCh* recipient) const +{ + const EncryptedKey* base = xmlencryption::EncryptedKeyResolver::resolveKey(encryptedData, recipient); + if (base) + return base; + + const vector& keys=m_ref.getEncryptedKeys(); + for (vector::const_iterator i=keys.begin(); i!=keys.end(); i++) { + if (XMLString::equals(recipient,(*i)->getRecipient())) + return (*i); + } + return nullptr; +}