| 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Object | +--ostore.mac.MacHandler
MacHandler. Responsible for checking message authenticity and 
  initializing 'first contact' with another OceanStore instance. The result
  being 
(1) a MAC relationship established between both parties, 
  
(2) a GUID exchange, and 
  (3) the source of your machine's GUID. 
  Additional details are implementation specific.
Note:There is to be only one MacHandler per instance of sandstorm.
| Nested Class Summary | |
|---|---|
 class | 
MacHandler.GuidNotEstablished
Thrown when a request for action (such as authenticate(ostore.util.QuickSerializable, ostore.util.QSByteArray, ostore.util.SecureHash) or
 is called on a guid that doesn't have an
 established connection yet. | 
 class | 
MacHandler.HandshakeFailed
Announcement that after multiple retries, we were still unable to successfully establish a connection with the guid.  | 
 class | 
MacHandler.KeyEstablished
Announcement that we have established a connection with the guid and are ready to call authenticate(ostore.util.QuickSerializable, ostore.util.QSByteArray, ostore.util.SecureHash)
 on that guid. | 
| Field Summary | |
|---|---|
static boolean | 
DEBUG
 | 
| Constructor Summary | |
|---|---|
MacHandler()
 | 
|
| Method Summary | |
|---|---|
abstract  boolean | 
authenticate(QuickSerializable user_data,
             QSByteArray mac,
             SecureHash guid)
 | 
abstract  void | 
destroy()
 | 
abstract  void | 
establish(SecureHash guid)
Establish a connection between the guid and this instance of sandstorm Once a connection is established, the MacHandler will broadcast a MacHandler.KeyEstablished announcement.  | 
abstract  void | 
handle_dh_message(DHMessage dhmsg)
Need these to happen before processing subsequent messages, so we call it from the Router directly now.  | 
abstract  void | 
handleEvent(QueueElementIF item)
 | 
 void | 
handleEvents(QueueElementIF[] item)
 | 
abstract  String | 
idString()
Id String  | 
abstract  void | 
init(ConfigDataIF config)
 | 
abstract  SecureHash | 
myGuid()
My GUID  | 
abstract  int | 
profileSize()
 | 
| Methods inherited from class java.lang.Object | 
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Field Detail | 
public static final boolean DEBUG
| Constructor Detail | 
public MacHandler()
| Method Detail | 
public abstract void handleEvent(QueueElementIF item)
                          throws EventHandlerException
handleEvent in interface EventHandlerIFEventHandlerException
public void handleEvents(QueueElementIF[] item)
                  throws EventHandlerException
handleEvents in interface EventHandlerIFEventHandlerExceptionpublic abstract void handle_dh_message(DHMessage dhmsg)
public abstract String idString()
public abstract SecureHash myGuid()
public abstract void establish(SecureHash guid)
MacHandler.KeyEstablished announcement. If a connection is pending
 this will be ignored. If a connection to this guid is already
 established, a MacHandler.KeyEstablished will be broadcasted.
public abstract boolean authenticate(QuickSerializable user_data,
                                     QSByteArray mac,
                                     SecureHash guid)
                              throws MacHandler.GuidNotEstablished
true iff this message is authentic, i.e.
 verified by the internal MAC
MacHandler.GuidNotEstablished
public abstract void init(ConfigDataIF config)
                   throws Exception
init in interface EventHandlerIFException
public abstract void destroy()
                      throws Exception
destroy in interface EventHandlerIFExceptionpublic abstract int profileSize()
profileSize in interface ProfilableIF
  | 
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||