aboutsummaryrefslogtreecommitdiff
path: root/libcmix-crypto/curve25519/curve25519.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcmix-crypto/curve25519/curve25519.h')
-rw-r--r--libcmix-crypto/curve25519/curve25519.h70
1 files changed, 27 insertions, 43 deletions
diff --git a/libcmix-crypto/curve25519/curve25519.h b/libcmix-crypto/curve25519/curve25519.h
index 762e8db..5f30915 100644
--- a/libcmix-crypto/curve25519/curve25519.h
+++ b/libcmix-crypto/curve25519/curve25519.h
@@ -10,55 +10,39 @@ extern "C" {
* \file
*/
-/*!
- * \brief curve25519_initialize initilalize curve25519 library
- */
-extern void curve25519_initialize(void);
+extern Initializer curve25519_initialize;
-/*!
- * \brief curve25519_create_keypair
- * \return A curve25519 keypair.
- */
-extern struct KeyPair curve25519_create_keypair(void);
+extern KeyPairCreator curve25519_create_keypair;
-/*!
- * \brief curve25519_keypair_deleter
- * \param p The keypair to free.
- */
-extern void curve25519_keypair_deleter(struct KeyPair* p);
+extern KeyPairDeleter curve25519_delete_keypair;
-/*!
- * \brief curve25519_get_pubkey_array
- * \param pubkey
- * \param buffer
- * \param len
- */
-extern void curve25519_key_to_array(unsigned char** buffer, size_t* len, void* pubkey);
+extern ElementToArray curve25519_element_to_array;
-/*!
- * \brief curve25519_add_public_share
- * \param buffer
- * \param out_len
- * \param share
- * \param pubkey
- */
-extern void curve25519_add_public_share(char** buffer, size_t* out_len, char const* share, size_t in_len, void* pubkey);
+extern BufferDeleter curve25519_free_buffer;
-/*!
- * \brief curve25519_derive_shared_key
- * \param pair Our keypair.
- * \param pub_key The public key of the other party.
- * \param swap_pub_order Should we swap the order in which we feed the public keys to the hash function.
- * \return A Shared key
- */
-extern GroupElement curve25519_derive_shared_key(struct KeyPair pair, unsigned char const* other_pub, size_t pub_len, unsigned char const* value, size_t value_len, void* priv_value, bool swap_pub_order);
-/*!
- * \brief curve25519_shared_key_deleter
- * \param s the Shared key to free.
- */
-extern void curve25519_shared_key_deleter(struct SharedKey* s);
+extern ArrayToElement curve25519_array_to_element;
+
+extern GroupElementGetter curve25519_get_group_element;
+
+extern GroupElementDeleter curve25519_delete_group_element;
+
+extern KeyExchangeValueGetter curve25519_get_key_exchange_value;
+
+extern GroupElementMultiplier curve25519_multiply;
+
+extern DecryptionShareGetter curve25519_get_decryption_share;
+
+extern GroupElementArraySizeGetter curve25519_get_group_element_array_size;
+
+extern PublicShareAdder curve25519_add_public_share;
+
+extern SharedKeyDeriver curve25519_derive_shared_key;
+
+extern SharedKeyDeleter curve25519_delete_shared_key;
+
+extern Encrypter curve25519_encrypt;
-extern void curve25519_deinitialize(void);
+extern Deinitializer curve25519_deinitialize;
/*!
* \brief get_curve25519_implementation