X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2Fsecurity%2FCredentialCriteria.h;h=e1b65e63d5e5b7517f3362e408b75bb1e6419663;hb=81b488b2790e7bdeb2f43560b1d4a7d22c3dfdf5;hp=711b4315a58d1d1ddd1b03bc3cb3bbdc0921ae8d;hpb=c493e8db8467237119f8d733cdcf218347c17764;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/security/CredentialCriteria.h b/xmltooling/security/CredentialCriteria.h index 711b431..e1b65e6 100644 --- a/xmltooling/security/CredentialCriteria.h +++ b/xmltooling/security/CredentialCriteria.h @@ -1,17 +1,21 @@ -/* - * Copyright 2001-2009 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 +/** + * Licensed to the University Corporation for Advanced Internet + * Development, Inc. (UCAID) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for + * additional information regarding copyright ownership. * - * http://www.apache.org/licenses/LICENSE-2.0 + * UCAID licenses this file to you 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 * - * 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. + * 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. */ /** @@ -69,77 +73,73 @@ namespace xmltooling { * * @return the usage mask */ - unsigned int getUsage() const { - return m_keyUsage; - } + unsigned int getUsage() const; /** * Set key usage criteria. * * @param usage the usage mask to set */ - void setUsage(unsigned int usage) { - m_keyUsage = usage; - } + void setUsage(unsigned int usage); /** * Get the peer name criteria. * * @return the peer name */ - const char* getPeerName() const { - return m_peerName.c_str(); - } + const char* getPeerName() const; /** * Set the peer name criteria. * * @param peerName peer name to set */ - void setPeerName(const char* peerName) { - m_peerName.erase(); - if (peerName) - m_peerName = peerName; - } + void setPeerName(const char* peerName); /** * Get the key algorithm criteria. * * @return the key algorithm */ - const char* getKeyAlgorithm() const { - return m_keyAlgorithm.c_str(); - } + const char* getKeyAlgorithm() const; /** * Set the key algorithm criteria. * - * @param keyAlgorithm The key algorithm to set + * @param keyAlgorithm the key algorithm to set */ - void setKeyAlgorithm(const char* keyAlgorithm) { - m_keyAlgorithm.erase(); - if (keyAlgorithm) - m_keyAlgorithm = keyAlgorithm; - } + void setKeyAlgorithm(const char* keyAlgorithm); /** * Get the key size criteria. + *

If a a maximum size is also set, this is treated as a minimum. * * @return the key size, or 0 */ - unsigned int getKeySize() const { - return m_keySize; - } + unsigned int getKeySize() const; /** * Set the key size criteria. + *

If a a maximum size is also set, this is treated as a minimum. * - * @param keySize Key size to set + * @param keySize key size to set */ - void setKeySize(unsigned int keySize) { - m_keySize = keySize; - } - + void setKeySize(unsigned int keySize); + + /** + * Get the maximum key size criteria. + * + * @return the maximum key size, or 0 + */ + unsigned int getMaxKeySize() const; + + /** + * Set the maximum key size criteria. + * + * @param keySize maximum key size to set + */ + void setMaxKeySize(unsigned int keySize); + /** * Set the key algorithm and size criteria based on an XML algorithm specifier. * @@ -152,27 +152,21 @@ namespace xmltooling { * * @return an immutable set of key names */ - const std::set& getKeyNames() const { - return m_keyNames; - } + const std::set& getKeyNames() const; /** * Gets key name criteria. * * @return a mutable set of key names */ - std::set& getKeyNames() { - return m_keyNames; - } + std::set& getKeyNames(); /** * Returns the public key criteria. * * @return a public key */ - virtual XSECCryptoKey* getPublicKey() const { - return m_key; - } + virtual XSECCryptoKey* getPublicKey() const; /** * Sets the public key criteria. @@ -182,9 +176,7 @@ namespace xmltooling { * * @param key a public key */ - void setPublicKey(XSECCryptoKey* key) { - m_key = key; - } + void setPublicKey(XSECCryptoKey* key); /** * Bitmask constants controlling the kinds of criteria set automatically @@ -200,9 +192,7 @@ namespace xmltooling { * * @return the KeyInfo criteria */ - const xmlsignature::KeyInfo* getKeyInfo() const { - return m_keyInfo; - } + const xmlsignature::KeyInfo* getKeyInfo() const; /** * Sets the KeyInfo criteria. @@ -217,9 +207,7 @@ namespace xmltooling { * * @return the native KeyInfo criteria */ - DSIGKeyInfoList* getNativeKeyInfo() const { - return m_nativeKeyInfo; - } + DSIGKeyInfoList* getNativeKeyInfo() const; /** * Sets the KeyInfo criteria. @@ -237,9 +225,14 @@ namespace xmltooling { */ void setSignature(const xmlsignature::Signature& sig, int extraction=0); + /** + * Resets object to a default state. + */ + virtual void reset(); + private: unsigned int m_keyUsage; - unsigned int m_keySize; + unsigned int m_keySize,m_maxKeySize; std::string m_peerName,m_keyAlgorithm; std::set m_keyNames; XSECCryptoKey* m_key;