A scalarproduct session which tracks a request form the client to our final response. More...
Data Fields | |
struct GNUNET_HashCode | session_id |
(hopefully) unique transaction ID More... | |
struct GNUNET_PeerIdentity | peer |
Alice or Bob's peerID. More... | |
struct GNUNET_SERVICE_Client * | client |
The client this request is related to. More... | |
struct GNUNET_MQ_Handle * | client_mq |
The message queue for the client. More... | |
struct GNUNET_MQ_Handle * | cadet_mq |
The message queue for CADET. More... | |
struct GNUNET_CONTAINER_MultiHashMap * | intersected_elements |
all non-0-value'd elements transmitted to us. More... | |
struct GNUNET_SETI_Handle * | intersection_set |
Set of elements for which will conduction an intersection. More... | |
struct GNUNET_SETI_OperationHandle * | intersection_op |
Set of elements for which will conduction an intersection. More... | |
struct GNUNET_SETI_ListenHandle * | intersection_listen |
Handle to Alice's Intersection operation listening for Bob. More... | |
struct GNUNET_CADET_Channel * | channel |
channel-handle associated with our cadet handle More... | |
struct MpiElement * | sorted_elements |
a(Alice), sorted array by key of length used_element_count. More... | |
int | product |
The computed scalar product. More... | |
uint32_t | total |
How many elements we were supplied with from the client (total count before intersection). More... | |
uint32_t | used_element_count |
How many elements actually are used for the scalar product. More... | |
uint32_t | client_received_element_count |
Already transferred elements from client to us. More... | |
enum GNUNET_SCALARPRODUCT_ResponseStatus | status |
State of this session. More... | |
int | in_destroy |
Flag to prevent recursive calls to destroy_service_session() from doing harm. More... | |
struct GNUNET_CRYPTO_PaillierCiphertext * | r |
Bob's permutation p of R. More... | |
struct GNUNET_CRYPTO_PaillierCiphertext * | r_prime |
Bob's permutation q of R. More... | |
struct GNUNET_CRYPTO_PaillierCiphertext | s |
Bob's "s". More... | |
struct GNUNET_CRYPTO_PaillierCiphertext | s_prime |
Bob's "s'". More... | |
gcry_mpi_t | product |
The computed scalar. More... | |
uint32_t | cadet_received_element_count |
Already transferred elements from Bob to us. More... | |
A scalarproduct session which tracks a request form the client to our final response.
Definition at line 79 of file gnunet-service-scalarproduct-ecc_alice.c.
struct GNUNET_HashCode AliceServiceSession::session_id |
(hopefully) unique transaction ID
Definition at line 84 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by client_request_complete_alice(), handle_alice_client_message(), prepare_client_end_notification(), and transmit_client_response().
struct GNUNET_PeerIdentity AliceServiceSession::peer |
Alice or Bob's peerID.
Definition at line 89 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by client_request_complete_alice(), and handle_alice_client_message().
struct GNUNET_SERVICE_Client * AliceServiceSession::client |
The client this request is related to.
Definition at line 94 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by client_connect_cb(), client_disconnect_cb(), destroy_service_session(), handle_alice_client_message(), and handle_alice_client_message_multipart().
struct GNUNET_MQ_Handle * AliceServiceSession::client_mq |
The message queue for the client.
Definition at line 99 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by prepare_client_end_notification(), and transmit_client_response().
struct GNUNET_MQ_Handle * AliceServiceSession::cadet_mq |
The message queue for CADET.
Definition at line 104 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by client_request_complete_alice(), and send_alices_cryptodata_message().
struct GNUNET_CONTAINER_MultiHashMap * AliceServiceSession::intersected_elements |
all non-0-value'd elements transmitted to us.
Values are of type struct GNUNET_SCALARPRODUCT_Element *
Definition at line 110 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by cb_intersection_element_removed(), destroy_service_session(), handle_alice_client_message(), handle_alice_client_message_multipart(), and send_alices_cryptodata_message().
struct GNUNET_SETI_Handle * AliceServiceSession::intersection_set |
Set of elements for which will conduction an intersection.
the resulting elements are then used for computing the scalar product.
Definition at line 116 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by cb_intersection_element_removed(), destroy_service_session(), handle_alice_client_message(), and handle_alice_client_message_multipart().
struct GNUNET_SETI_OperationHandle * AliceServiceSession::intersection_op |
Set of elements for which will conduction an intersection.
the resulting elements are then used for computing the scalar product.
Definition at line 122 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by cb_intersection_element_removed(), and destroy_service_session().
struct GNUNET_SETI_ListenHandle * AliceServiceSession::intersection_listen |
Handle to Alice's Intersection operation listening for Bob.
Definition at line 127 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by cb_intersection_element_removed(), client_request_complete_alice(), and destroy_service_session().
struct GNUNET_CADET_Channel * AliceServiceSession::channel |
channel-handle associated with our cadet handle
Definition at line 132 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by client_request_complete_alice(), destroy_service_session(), handle_bobs_cryptodata_message(), and handle_bobs_cryptodata_multipart().
struct MpiElement * AliceServiceSession::sorted_elements |
a(Alice), sorted array by key of length used_element_count.
Definition at line 137 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by check_bobs_cryptodata_message(), compute_scalar_product(), copy_element_cb(), destroy_service_session(), and send_alices_cryptodata_message().
int AliceServiceSession::product |
The computed scalar product.
INT_MAX if the computation failed.
Definition at line 142 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by destroy_service_session(), handle_bobs_cryptodata_message(), handle_bobs_cryptodata_multipart(), and transmit_client_response().
uint32_t AliceServiceSession::total |
How many elements we were supplied with from the client (total count before intersection).
Definition at line 148 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by check_bobs_cryptodata_message(), handle_alice_client_message(), and handle_alice_client_message_multipart().
uint32_t AliceServiceSession::used_element_count |
How many elements actually are used for the scalar product.
Size of the arrays in r and r_prime. Sometimes also reset to 0 and used as a counter!
Definition at line 155 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by check_bobs_cryptodata_message(), check_bobs_cryptodata_multipart(), compute_scalar_product(), copy_element_cb(), destroy_service_session(), handle_alice_client_message(), handle_alice_client_message_multipart(), handle_bobs_cryptodata_message(), handle_bobs_cryptodata_multipart(), and send_alices_cryptodata_message().
uint32_t AliceServiceSession::client_received_element_count |
Already transferred elements from client to us.
Less or equal than total.
Definition at line 161 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by check_bobs_cryptodata_message(), handle_alice_client_message(), and handle_alice_client_message_multipart().
enum GNUNET_SCALARPRODUCT_ResponseStatus AliceServiceSession::status |
State of this session.
In GNUNET_SCALARPRODUCT_STATUS_ACTIVE while operation is ongoing, afterwards in GNUNET_SCALARPRODUCT_STATUS_SUCCESS or GNUNET_SCALARPRODUCT_STATUS_FAILURE.
Definition at line 169 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by cb_intersection_element_removed(), client_request_complete_alice(), handle_alice_client_message(), and prepare_client_end_notification().
int AliceServiceSession::in_destroy |
Flag to prevent recursive calls to destroy_service_session() from doing harm.
Definition at line 175 of file gnunet-service-scalarproduct-ecc_alice.c.
Referenced by destroy_service_session().
struct GNUNET_CRYPTO_PaillierCiphertext* AliceServiceSession::r |
Bob's permutation p of R.
Definition at line 127 of file gnunet-service-scalarproduct_alice.c.
Referenced by compute_scalar_product(), destroy_service_session(), handle_bobs_cryptodata_message(), and handle_bobs_cryptodata_multipart().
struct GNUNET_CRYPTO_PaillierCiphertext* AliceServiceSession::r_prime |
Bob's permutation q of R.
Definition at line 132 of file gnunet-service-scalarproduct_alice.c.
Referenced by compute_scalar_product(), destroy_service_session(), handle_bobs_cryptodata_message(), and handle_bobs_cryptodata_multipart().
struct GNUNET_CRYPTO_PaillierCiphertext AliceServiceSession::s |
Bob's "s".
Definition at line 137 of file gnunet-service-scalarproduct_alice.c.
Referenced by cb_channel_destruction(), cb_intersection_element_removed(), cb_intersection_request_alice(), check_alice_client_message(), check_alice_client_message_multipart(), check_bobs_cryptodata_message(), check_bobs_cryptodata_multipart(), client_connect_cb(), client_disconnect_cb(), compute_scalar_product(), copy_element_cb(), handle_alice_client_message(), handle_alice_client_message_multipart(), handle_bobs_cryptodata_message(), and handle_bobs_cryptodata_multipart().
struct GNUNET_CRYPTO_PaillierCiphertext AliceServiceSession::s_prime |
Bob's "s'".
Definition at line 142 of file gnunet-service-scalarproduct_alice.c.
Referenced by compute_scalar_product(), and handle_bobs_cryptodata_message().
gcry_mpi_t AliceServiceSession::product |
The computed scalar.
Definition at line 147 of file gnunet-service-scalarproduct_alice.c.
uint32_t AliceServiceSession::cadet_received_element_count |
Already transferred elements from Bob to us.
Less or equal than total.
Definition at line 172 of file gnunet-service-scalarproduct_alice.c.
Referenced by check_bobs_cryptodata_multipart(), handle_bobs_cryptodata_message(), and handle_bobs_cryptodata_multipart().