diff -r 779219e99833 -r dec407deb10e src/sync_fsm.h --- a/src/sync_fsm.h Sun Jul 31 09:04:42 2016 +0200 +++ b/src/sync_fsm.h Sun Jul 31 19:38:23 2016 +0200 @@ -3,6 +3,7 @@ // state machine for DeviceState #include "pEpEngine.h" +#include "../asn.1/DeviceGroup-Protocol.h" #ifdef __cplusplus extern "C" { @@ -21,10 +22,15 @@ invalid_event = -3 } fsm_error; +// conditions + +bool storedGroupKeys(PEP_SESSION session); +bool keyElectionWon(PEP_SESSION session, Identity partner); + // states typedef enum _DeviceState_state { - DeviceState_state_NONE = -1, + DeviceState_state_NONE = 0, InitState, Sole, HandshakingSole, @@ -35,11 +41,11 @@ // events typedef enum _DeviceState_event { - DeviceState_event_NONE = -1, - Beacon = 1, - HandshakeRequest = 2, - GroupKeys = 3, - Init, + DeviceState_event_NONE = 0, + Init = 1, + Beacon = 2, + HandshakeRequest = 3, + GroupKeys = 4, KeyGen, CannotDecrypt, HandshakeRejected, @@ -58,6 +64,10 @@ PEP_STATUS storeGroupKeys(PEP_SESSION session, DeviceState_state state, Identity partner, void *extra); PEP_STATUS sendGroupKeys(PEP_SESSION session, DeviceState_state state, Identity partner, void *extra); +// message receiver + +PEP_STATUS receive_DeviceState_msg(PEP_SESSION session, DeviceGroup_Protocol_t *msg); + // state machine DeviceState_state fsm_DeviceState( @@ -65,7 +75,7 @@ DeviceState_state state, DeviceState_event event, Identity partner, - DeviceState_state state_partner + void *extra ); // driver @@ -74,7 +84,7 @@ PEP_SESSION session, DeviceState_event event, Identity partner, - DeviceState_state state_partner + void *extra ); #ifdef __cplusplus