/** | |
* 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 | |
* | |
* DSIGKeyInfoDEREncoded := DEREncodedKeyValue - used for conveying DER-encoded keys | |
* | |
* Author(s): Scott Cantor | |
* | |
* $Id:$ | |
* | |
*/ | |
#ifndef DSIGKEYINFODERENCODED_INCLUDE | |
#define DSIGKEYINFODERENCODED_INCLUDE | |
#include <xsec/dsig/DSIGKeyInfo.hpp> | |
#include <xsec/utils/XSECPlatformUtils.hpp> | |
XSEC_DECLARE_XERCES_CLASS(DOMElement); | |
/** | |
* @ingroup pubsig | |
*/ | |
/** | |
* @brief The class for \<ds11::DEREncodedKeyValue\> nodes in a KeyInfo list. | |
* | |
* Class for holding DER-encoded key information. | |
* | |
*/ | |
class XSEC_EXPORT DSIGKeyInfoDEREncoded : public DSIGKeyInfo { | |
public: | |
/** @name Constructors and Destructors */ | |
//@{ | |
/** | |
* \brief Constructor used when XML exists. | |
* | |
* This constructor is used by other user interface classes to load | |
* an existing DOM structure into the Name element. | |
* | |
* @param env Environment operating within. | |
* @param nameNode DOMNode to load information from | |
*/ | |
DSIGKeyInfoDEREncoded(const XSECEnv * env, XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nameNode); | |
/** | |
* \brief Constructor used when XML needs to be created. | |
* | |
* This constructor is used by interface objects to | |
* create a DSIGKeyInfoName object that can then be used | |
* to create the required XML. | |
* | |
* @param env Operating environment | |
*/ | |
DSIGKeyInfoDEREncoded(const XSECEnv * env); | |
/** | |
* \brief Destructor | |
*/ | |
virtual ~DSIGKeyInfoDEREncoded(); | |
//@} | |
/** @name Load and Get functions */ | |
//@{ | |
/** | |
* \brief Load an existing XML structure into this object. | |
*/ | |
virtual void load(void); | |
/** | |
* \brief Get key name - unimplemented for DEREncodedKeyValue | |
*/ | |
virtual const XMLCh * getKeyName(void) const {return NULL;} | |
/** | |
* \brief Get the key data | |
* | |
* Returns a pointer to the buffer containing the data string. | |
* | |
* @returns A pointer to the XMLCh buffer containing the data | |
*/ | |
virtual const XMLCh * getData(void) const {return mp_data;}; | |
//@} | |
/**@name Create and set functions */ | |
//@{ | |
/** | |
* \brief Create a new DEREncodedKeyValue element in the current document. | |
* | |
* Creates a new DEREncodedKeyValue element and sets the data with the string | |
* passed in. | |
* | |
* @param data Value to set the DEREncodedKeyValue to | |
* @returns The newly created DOMElement with the structure underneath. | |
*/ | |
XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * createBlankDEREncoded(const XMLCh * data); | |
/** | |
* \brief Set the value of the DEREncodedKeyValue to a new string. | |
* | |
* Uses the passed in string to set a new value in the DOM structure. | |
* | |
* @param data Value to set in DEREncodedKeyValue | |
*/ | |
void setData(const XMLCh * data); | |
//@} | |
/** @name Information Functions */ | |
//@{ | |
/** | |
* \brief Return type of this KeyInfo element | |
*/ | |
virtual keyInfoType getKeyInfoType(void) const {return DSIGKeyInfo::KEYINFO_DERENCODED;} | |
//@} | |
private: | |
DSIGKeyInfoDEREncoded(); // Non-implemented constructor | |
const XMLCh * mp_data; // The Data stored in the XML file | |
XERCES_CPP_NAMESPACE_QUALIFIER DOMNode | |
* mp_dataTextNode; // Text node containing the name | |
}; | |
#endif /* #define DSIGKEYINFODERENCODED_INCLUDE */ | |