00001 /* 00002 * Copyright 2003 Michael A. Marsh, Cornell University. All rights reserved. 00003 * This software is released under the modified BSD license. 00004 * See the file LICENSE in the top-level directory for details. 00005 */ 00006 // 00007 // $Id: SignReadCallback.h,v 1.3 2004/05/19 15:56:53 mmarsh Exp $ 00008 // 00009 // $Log: SignReadCallback.h,v $ 00010 // Revision 1.3 2004/05/19 15:56:53 mmarsh 00011 // *** empty log message *** 00012 // 00013 // Revision 1.2 2003/11/04 22:31:49 mmarsh 00014 // *** empty log message *** 00015 // 00016 // 00017 00018 #ifndef __CODEX_KEYSERVICE_SIGNREADCALLBACK_H__ 00019 #define __CODEX_KEYSERVICE_SIGNREADCALLBACK_H__ 00020 00021 #include <map> 00022 00023 #include "ResponseCallback.h" 00024 #include "CODEX_Events/Activity.h" 00025 #include "CODEX_ASN1/Array.h" 00026 #include "CODEX_Client/Message.h" 00027 #include "CODEX_Server/ServerSignature.h" 00028 #include "ClientResponseHandler.h" 00029 #include "StateInfo.h" 00030 #include "CODEX_Server/SignRequestHandler.h" 00031 #include "SupportedClientResponse.h" 00032 #include "VerifiableBlindKeyMsg.h" 00033 00034 namespace CODEX_KeyService 00035 { 00042 class SignReadCallback : public ResponseCallback, 00043 public CODEX_Events::Activity 00044 { 00045 public : 00047 typedef CODEX_Server::ServerState::ShareType ShareType; 00048 00050 typedef vector< ShareType* > SignatureArray; 00051 00053 typedef CODEX_Server::ServerState::ChallengeVector ChallengeVector; 00054 00056 typedef VerifiableBlindKeyMsg RespType; 00057 00059 typedef CODEX_Client::SignedReadKeyMsg ReqType; 00060 00062 typedef SupportedClientResponse< RespType , ReqType > RequestType; 00063 00065 SignReadCallback( CODEX_Events::DeadPileType& deadPile, 00066 CODEX_Events::QType& eventQueue, 00067 ClientResponseHandler* destination, 00068 const RequestType& request, 00069 const unsigned char* seqNum, 00070 CODEX_Server::SignRequestHandler* reqHandler ); 00071 00073 virtual ~SignReadCallback(); 00074 00075 bool operator()( unsigned int server, CODEX_Quorum::Message* msg ); 00076 00077 private : 00078 ClientResponseHandler* m_destination; 00079 RequestType m_request; 00080 BIGNUM * m_digest; 00081 SignatureArray m_signatures; 00082 bool m_complete; 00083 ChallengeVector m_challenges; 00084 CODEX_Server::SignRequestHandler* m_reqHandler; 00085 }; 00086 00087 } 00088 00089 #endif /* __CODEX_KEYSERVICE_SIGNREADCALLBACK_H__ */
1.4.1