aboutsummaryrefslogtreecommitdiff
path: root/libcmix/cmix.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcmix/cmix.h')
-rw-r--r--libcmix/cmix.h19
1 files changed, 16 insertions, 3 deletions
diff --git a/libcmix/cmix.h b/libcmix/cmix.h
index 33b99d2..ba0b826 100644
--- a/libcmix/cmix.h
+++ b/libcmix/cmix.h
@@ -78,9 +78,12 @@ struct CMixContext {
GroupElement* s;
unsigned int* permutation;
GroupElement* pirs;
- GroupElement* messages;
};
+#ifndef NDEBUG
+void element_to_buffer(struct CMixContext const* ctx, char* buffer, GroupElement const element);
+#endif
+
struct CMixContext initialize_cmix_context(struct Api api);
void deinitialize(struct CMixContext* ctx);
@@ -95,7 +98,7 @@ enum cmix_error start_mix(struct CMixContext* ctx, size_t nr_participants);
enum cmix_error initialize_mix_randomness(struct CMixContext* ctx);
-enum cmix_error generate_random_message(struct CMixContext* ctx, size_t index);
+enum cmix_error generate_random_message(struct CMixContext* ctx, char* buffer);
size_t get_group_element_array_size(struct CMixContext const* ctx);
@@ -105,7 +108,9 @@ enum cmix_error encrypt_r(struct CMixContext const* ctx, char* random_buffer, ch
enum cmix_error encrypt_r_and_multiply(struct CMixContext const* ctx, char* random_buffer, char* message_buffer, char const* random_element, char const* message_element, size_t index);
-enum cmix_error multiply_s(struct CMixContext const* ctx, char* r_out_buffer, char* m_out_buffer, char const* r_in_buffer, char const* m_in_buffer, size_t index);
+enum cmix_error multiply_encrypted_s(struct CMixContext const* ctx, char* r_out_buffer, char* m_out_buffer, char const* r_in_buffer, char const* m_in_buffer, size_t index);
+
+enum cmix_error multiply_s(struct CMixContext const* ctx, char* out_buffer, char const* message, size_t index);
enum cmix_error get_key_exchange_value(struct CMixContext const* ctx, char* buffer, GroupElement priv_element);
@@ -119,6 +124,14 @@ enum cmix_error post_process(struct CMixContext* ctx, char* r_out, char* m_out,
enum cmix_error blind_message(struct CMixContext const* ctx, char* m_out, char const* message, GroupElement const* keys, size_t const nr_nodes);
+enum cmix_error enqueue_message(struct CMixContext* ctx, char const* message, size_t index);
+
+enum cmix_error enqueue_random_message(struct CMixContext* ctx, size_t index);
+
+enum cmix_error swap_k_for_r(struct CMixContext const* ctx, char* out_buffer, char const* message, GroupElement const key, size_t index);
+
+enum cmix_error remove_r_and_s(struct CMixContext const* ctx, char* out_buffer, char const* message, size_t index);
+
#ifdef __cplusplus
} // extern "C"
#endif