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 DSIGKEYINFO_INCLUDE
00029 #define DSIGKEYINFO_INCLUDE
00030
00031
00032
00033 #include <xsec/utils/XSECDOMUtils.hpp>
00034 #include <xsec/utils/XSECSafeBufferFormatter.hpp>
00035 #include <xsec/enc/XSECCryptoKey.hpp>
00036
00037 #include <xercesc/dom/DOM.hpp>
00038
00039 class DSIGSignature;
00040 class XSECEnv;
00041
00060 class DSIG_EXPORT DSIGKeyInfo {
00061
00062 public:
00063
00073 enum keyInfoType {
00074
00075 KEYINFO_NOTSET = 1,
00076 KEYINFO_X509 = 2,
00077 KEYINFO_VALUE_DSA = 3,
00078 KEYINFO_VALUE_RSA = 4,
00079 KEYINFO_NAME = 5,
00080 KEYINFO_PGPDATA = 6,
00081 KEYINFO_SPKIDATA = 7,
00082 KEYINFO_MGMTDATA = 8,
00083 KEYINFO_ENCRYPTEDKEY = 9
00084
00085 };
00086
00087 public:
00088
00091
00100 DSIGKeyInfo(const XSECEnv * env) {mp_keyInfoDOMNode = NULL; mp_env = env;}
00101
00106 virtual ~DSIGKeyInfo() {};
00107
00109
00112
00119 virtual keyInfoType getKeyInfoType(void) = 0;
00120
00125 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *getKeyInfoDOMNode()
00126 {return mp_keyInfoDOMNode;}
00127
00137 virtual const XMLCh * getKeyName(void) = 0;
00138
00140
00143
00151 virtual void load() = 0;
00152
00154
00155 protected:
00156
00157 XERCES_CPP_NAMESPACE_QUALIFIER DOMNode * mp_keyInfoDOMNode;
00158 const XSECEnv * mp_env;
00159
00160 private:
00161 DSIGKeyInfo();
00162
00163 };
00164
00165
00166
00167
00168 #endif