Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CODEX_KeyService::ClientMessageVerifier Class Reference

This class checks the validity of client request messages. More...

#include <ClientMessageVerifier.h>

Inheritance diagram for CODEX_KeyService::ClientMessageVerifier:

Inheritance graph
[legend]
Collaboration diagram for CODEX_KeyService::ClientMessageVerifier:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ClientMessageVerifier (CODEX_Events::DeadPileType &deadPile, CODEX_Events::QType &eventQueue, ClientMessageHandler *destination)
 Create a ClientMessageVerifier.
virtual ~ClientMessageVerifier ()
 Virtual destructor.
bool handler (CODEX_Events::CloseEvent &event)
 Handle a CloseEvent.
bool handler (ClientMessageEvent< RequestKeyMsg > &event)
 Handle a RequestKeyMsg.
bool handler (ClientMessageEvent< SignedCreateKeyMsg > &event)
 Handle a signed CreateKeyMsg.
bool handler (ClientMessageEvent< SignedWriteKeyMsg > &event)
 Handle a signed WriteKeyMsg.
bool handler (ClientMessageEvent< SignedReadKeyMsg > &event)
 Handle a signed ReadKeyMsg.
virtual bool handler (CloseEvent &event)=0
 Abstract handler for CloseEvent%s.
virtual bool handler (EventAck &event)
 The base class is responsible for handling acknowledgements, which are relevant to whether the Activity is ready for deletion.

Protected Member Functions

void sendEvent (EventBase *event, Activity *source, bool failure=false)
void enableTerminate ()
 This method should be called when an Activity has received a CloseEvent or other indicator that it is no longer needed.

Protected Attributes

DeadPileType & m_deadPile
 The pile of Activity%s to be garbage-collected.
QType & m_queue
 The event queue.

Detailed Description

This class checks the validity of client request messages.

Because this class only checks the validity of messages, it can be used to check requests from clients and requests from delegates on behalf of clients.

Definition at line 36 of file ClientMessageVerifier.h.


Constructor & Destructor Documentation

ClientMessageVerifier::ClientMessageVerifier CODEX_Events::DeadPileType deadPile,
CODEX_Events::QType eventQueue,
ClientMessageHandler destination
 

Create a ClientMessageVerifier.

Parameters:
deadPile The object adds itself to this when it is ready to be garbage-collected. This is handled by the Activity base class, though the derived class must call enableTerminate() before garbage collection can occur.
eventQueue The object adds events that it emits to this so that they can be handled.
destination Another ClientMessageHandler to which an event should be sent if checking is successful.

Definition at line 36 of file ClientMessageVerifier.cc.


Member Function Documentation

void Activity::enableTerminate  )  [protected, inherited]
 

This method should be called when an Activity has received a CloseEvent or other indicator that it is no longer needed.

Actual termination will not occur until there are no remaining events outstanding (unacknowledged).

Definition at line 63 of file Activity.cc.

Referenced by CODEX_KeyService::ClientActivity::handler(), and CODEX_KeyService::ClientActivity::processRequest().

bool Activity::handler EventAck event  )  [virtual, inherited]
 

The base class is responsible for handling acknowledgements, which are relevant to whether the Activity is ready for deletion.

If a derived class reimpliments this method, it must call this version explicitly.

Definition at line 39 of file Activity.cc.

Referenced by CODEX_Events::EventAck::handle(), and CODEX_KeyService::ClientActivity::handler().

bool ClientMessageVerifier::handler ClientMessageEvent< SignedCreateKeyMsg > &  event  )  [virtual]
 

Handle a signed CreateKeyMsg.

Bug:
Have to cast away const for X509_verify.

Implements CODEX_KeyService::ClientMessageHandler.

Reimplemented in CODEX_KeyService::RoutedClientMessageVerifier.

Definition at line 87 of file ClientMessageVerifier.cc.

References CODEX_KeyService::StateInfo::addKeyName(), CODEX_KeyService::KeyInfo::binding(), CODEX_Server::ServerState::caKey(), CODEX_Client::Message::digest(), CODEX_KeyService::StateInfo::getClient(), CODEX_KeyService::StateInfo::getKeyInfo(), CODEX_Server::ServerState::hashFunc(), CODEX_ASN1::Base::initialized(), CODEX_KeyService::StateInfo::instance(), CODEX_Server::ServerState::instance(), CODEX_KeyService::ClientResponseEvent< MT >::message(), CODEX_Client::CreateKeyMsg::name(), CODEX_Client::CreateKeyMsg::owner(), CODEX_Client::BoundNameMsg::request(), CODEX_Events::Activity::sendEvent(), CODEX_KeyService::KeyInfo::signature(), CODEX_Client::SignedMessage< MT, ST >::signature(), CODEX_Server::SignedAugmentedEGPublicKey::signature(), CODEX_ASN1::Certificate::value(), and CODEX_ASN1::OctetString::value().

void Activity::sendEvent EventBase event,
Activity source,
bool  failure = false
[protected, inherited]
 

Parameters:
event New event to be added to the queue
source Source of event just handled, to which an acknowledgement should be sent. This is accessed by the method EventBase::source().
failure Is the acknowledgment a negative ack?

Definition at line 49 of file Activity.cc.

References CODEX_Events::Activity::m_queue.

Referenced by CODEX_APSS::InitActivity::addEvidence(), CODEX_APSS::MessageDeliverer::broadcast(), CODEX_KeyService::ClientActivity::close(), CODEX_Server::UnicastRequestHandler::handler(), CODEX_Server::ShareLabelChallengeHandler::handler(), CODEX_Server::ServerResponseHandler::handler(), CODEX_Server::QuorumBuilderAct::handler(), CODEX_APSS::MessageVerifier::handler(), CODEX_APSS::MessageProcessor::handler(), CODEX_APSS::InitActivity::handler(), CODEX_KeyService::DelegateResponseVerifier::handler(), CODEX_KeyService::DelegateRequestDistributor::handler(), CODEX_KeyService::ClientResponseSigner::handler(), handler(), CODEX_KeyService::ClientMessageSigner::handler(), CODEX_KeyService::ClientMessageAbsorber::handler(), CODEX_KeyService::ClientActivity::handler(), CODEX_Server::BroadcastRequestHandler::handler(), CODEX_KeyService::VerifyWriteCallback::operator()(), CODEX_KeyService::SignWriteCallback::operator()(), CODEX_KeyService::SignReadCallback::operator()(), CODEX_KeyService::SignCreateCallback::operator()(), CODEX_APSS::MessageParser::operator()(), CODEX_KeyService::ClientWriteCallback::operator()(), CODEX_KeyService::ClientResponseParser::operator()(), CODEX_KeyService::ClientReadCallback::operator()(), CODEX_KeyService::ClientMessageParser::operator()(), CODEX_KeyService::ClientCreateCallback::operator()(), CODEX_KeyService::ClientActivity::processRequest(), CODEX_Server::QuorumBuilderAct::QuorumBuilderAct(), CODEX_APSS::MessageDeliverer::sendTo(), CODEX_Server::ShareLabelChallengeHandler::ShareLabelChallengeHandler(), and CODEX_APSS::TriggerActivity::TriggerActivity().


The documentation for this class was generated from the following files:
Generated on Fri May 6 17:42:14 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1