00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef DSIGKEYINFOSPKIDATA_INCLUDE
00029 #define DSIGKEYINFOSPKIDATA_INCLUDE
00030
00031 #include <xsec/dsig/DSIGKeyInfo.hpp>
00032 #include <xsec/utils/XSECPlatformUtils.hpp>
00033
00034 XSEC_DECLARE_XERCES_CLASS(DOMElement);
00035
00036 #include <vector>
00037
00053 class DSIG_EXPORT DSIGKeyInfoSPKIData : public DSIGKeyInfo {
00054
00055 public:
00056
00059
00070 DSIGKeyInfoSPKIData(const XSECEnv * env,
00071 XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *nameNode);
00072
00083 DSIGKeyInfoSPKIData(const XSECEnv * env);
00084
00089 virtual ~DSIGKeyInfoSPKIData();
00090
00092
00095
00100 void load(void);
00101
00110 unsigned int getSexpSize(void);
00111
00122 virtual const XMLCh * getSexp(unsigned int index);
00123
00128 virtual const XMLCh * getKeyName(void) {return NULL;}
00129
00131
00134
00135
00146 XERCES_CPP_NAMESPACE_QUALIFIER DOMElement *
00147 createBlankSPKIData(const XMLCh * Sexp);
00148
00158 void appendSexp(const XMLCh * Sexp);
00159
00161
00164
00169 virtual keyInfoType getKeyInfoType(void) {return DSIGKeyInfo::KEYINFO_SPKIDATA;}
00170
00172
00173 private:
00174
00175 DSIGKeyInfoSPKIData();
00176
00177 struct SexpNode {
00178 const XMLCh * mp_expr;
00179 XERCES_CPP_NAMESPACE_QUALIFIER DOMNode
00180 * mp_exprTextNode;
00181 };
00182
00183 typedef std::vector<SexpNode *> sexpVectorType;
00184
00185 sexpVectorType m_sexpList;
00186
00187 };
00188
00189
00190
00191 #endif