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 #ifndef XKMSMESSAGEABSTRACTTYPE_INCLUDE
00027 #define XKMSMESSAGEABSTRACTTYPE_INCLUDE
00028
00029
00030
00031 #include <xsec/framework/XSECDefs.hpp>
00032 #include <xsec/dsig/DSIGConstants.hpp>
00033
00034 class DSIGSignature;
00035
00036 XSEC_DECLARE_XERCES_CLASS(DOMElement);
00037
00084 class XKMSMessageAbstractType {
00085
00088
00089 protected:
00090
00091 XKMSMessageAbstractType() {};
00092
00093 public:
00094
00095 enum messageType {
00096
00097 None,
00099
00100
00101 CompoundRequest,
00102 CompoundResult,
00103 LocateRequest,
00104 LocateResult,
00105 ValidateRequest,
00106 ValidateResult,
00107 PendingRequest,
00108 StatusRequest,
00109 StatusResult,
00110 Result,
00112
00113
00114 RegisterRequest,
00115 RegisterResult
00117 };
00118
00119 virtual ~XKMSMessageAbstractType() {};
00120
00123
00124 virtual messageType getMessageType(void) = 0;
00125
00128
00135 virtual bool isSigned(void) const = 0;
00136
00147 virtual DSIGSignature * getSignature(void) const = 0;
00148
00149
00150
00151
00152
00153
00154
00155 virtual XERCES_CPP_NAMESPACE_QUALIFIER DOMElement * getElement(void) const = 0;
00156
00167 virtual const XMLCh * getId(void) const = 0;
00168
00180 virtual const XMLCh * getService(void) const = 0;
00181
00192 virtual const XMLCh * getNonce(void) const = 0;
00193
00195
00198
00212 virtual void setId(const XMLCh * id) = 0;
00213
00224 virtual void setService(const XMLCh * service) = 0;
00225
00237 virtual void setNonce(const XMLCh * uri) = 0;
00238
00247 virtual DSIGSignature * addSignature(
00248 canonicalizationMethod cm = CANON_C14N_NOC,
00249 signatureMethod sm = SIGNATURE_DSA,
00250 hashMethod hm = HASH_SHA1) = 0;
00251
00253
00256
00267 virtual int getOpaqueClientDataSize(void) = 0;
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277 virtual const XMLCh * getOpaqueClientDataItemStr(int item) = 0;
00278
00279
00280
00281
00282
00283
00284
00285
00286 virtual void appendOpaqueClientDataItem(const XMLCh * item) = 0;
00287
00289
00290 private:
00291
00292
00293 XKMSMessageAbstractType(const XKMSMessageAbstractType &);
00294 XKMSMessageAbstractType & operator = (const XKMSMessageAbstractType &);
00295
00296 };
00297
00298 #endif