blob: 56d31129bc13ba6298c439ae35c63abd1cbf7dcc [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF 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
*
* 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.
*/
/*
* XSEC
*
* XENCCipherValue := Interface definition for CipherValue element
*
* $Id$
*
*/
#ifndef XENCCIPHERVALUE_INCLUDE
#define XENCCIPHERVALUE_INCLUDE
// XSEC Includes
#include <xsec/framework/XSECDefs.hpp>
class XSECEnv;
XSEC_DECLARE_XERCES_CLASS(DOMElement);
/**
* @ingroup xenc
*/
/**
* @brief Interface definition for the CipherValue object
*
* The \<CipherValue\> element holds the base64 encoded, encrypted data.
* This is a very simple class that acts purely as a holder of data.
*
*/
class XSEC_EXPORT XENCCipherValue {
/** @name Constructors and Destructors */
//@{
protected:
XENCCipherValue() {};
public:
virtual ~XENCCipherValue() {};
/**
* \brief Create a new object.
*
* Create a new object.
*
* @param env environment instance
* @param value value to use
*
* @returns the new object
*/
static XENCCipherValue* create(
const XSECEnv* env,
const XMLCh * value);
/** @name Get Interface Methods */
//@{
/**
* \brief Get the encrypted information
*
* CipherValue nodes contain a text child that holds the base64 encoded
* cipher text that needs to be decrypted. This call will return the
* base64 encoded string.
*
* @returns The Encrypted information in a base64 encoded string
*/
virtual const XMLCh * getCipherString(void) const = 0;
/**
* \brief Get the DOM Node of this structure
*
* @returns the DOM Node representing the \<CipherValue\> element
*/
virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * getElement(void) const = 0;
//@}
/** @name Set Interface Methods */
//@{
/**
* \brief Set the encrypted value
*
* Sets the base64 encoded string held in the CipherValue.
*
* @note This should not normally be called directly - use the XENCCipher
* interface for normal operation
*
* @param value The string to set
*/
virtual void setCipherString(const XMLCh * value) = 0;
//@}
private:
// Unimplemented
XENCCipherValue(const XENCCipherValue &);
XENCCipherValue & operator = (const XENCCipherValue &);
};
#endif /* XENCCIPHERVALUE_INCLUDE */