aboutsummaryrefslogtreecommitdiff
path: root/libcmix-crypto/curve25519
diff options
context:
space:
mode:
Diffstat (limited to 'libcmix-crypto/curve25519')
-rw-r--r--libcmix-crypto/curve25519/curve25519.c38
-rw-r--r--libcmix-crypto/curve25519/curve25519.h14
-rw-r--r--libcmix-crypto/curve25519/null/CMakeLists.txt2
-rw-r--r--libcmix-crypto/curve25519/null/null_curve25519.c2
-rw-r--r--libcmix-crypto/curve25519/sodium/CMakeLists.txt2
-rw-r--r--libcmix-crypto/curve25519/sodium/libsodium_curve25519.c3
6 files changed, 40 insertions, 21 deletions
diff --git a/libcmix-crypto/curve25519/curve25519.c b/libcmix-crypto/curve25519/curve25519.c
index a963840..2fb99c3 100644
--- a/libcmix-crypto/curve25519/curve25519.c
+++ b/libcmix-crypto/curve25519/curve25519.c
@@ -5,23 +5,29 @@ struct Api get_curve25519_implementation()
{
curve25519_initialize();
return (struct Api) {
- .initialize = curve25519_initialize,
- .create_keypair = curve25519_create_keypair,
- .free_keypair = curve25519_delete_keypair,
- .element_to_array = curve25519_element_to_array,
- .free_buffer = curve25519_free_buffer,
- .array_to_element = curve25519_array_to_element,
- .get_group_element = curve25519_get_group_element,
+ .initialize = curve25519_initialize,
+ .create_keypair = curve25519_create_keypair,
+ .free_keypair = curve25519_delete_keypair,
+ .element_to_array = curve25519_element_to_array,
+ .free_buffer = curve25519_free_buffer,
+ .array_to_element = curve25519_array_to_element,
+ .message_to_element = curve25519_message_to_element,
+ .get_pub_key_hash = curve25519_get_pub_key_hash,
+ .get_pub_key_hash_length = curve25519_get_pub_key_hash_length,
+ .get_group_element = curve25519_get_group_element,
.get_group_element_array_size = curve25519_get_group_element_array_size,
- .free_group_element = curve25519_delete_group_element,
- .get_key_exchange_value = curve25519_get_key_exchange_value,
- .multiply = curve25519_multiply,
- .get_decryption_share = curve25519_get_decryption_share,
- .add_public_share = curve25519_add_public_share,
- .derive_shared_key = curve25519_derive_shared_key,
- .free_shared_key = curve25519_delete_shared_key,
- .encrypt = curve25519_encrypt,
- .deinitialize = curve25519_deinitialize
+ .free_group_element = curve25519_delete_group_element,
+ .get_key_exchange_value = curve25519_get_key_exchange_value,
+ .combine = curve25519_combine,
+ .uncombine = curve25519_uncombine,
+ .get_decryption_share = curve25519_get_decryption_share,
+ .add_public_share = curve25519_add_public_share,
+ .derive_shared_key = curve25519_derive_shared_key,
+ .free_shared_key = curve25519_delete_shared_key,
+ .encrypt = curve25519_encrypt,
+ .invert = curve25519_invert,
+ .get_uniform_int = curve25519_get_uniform_int,
+ .deinitialize = curve25519_deinitialize
};
}
diff --git a/libcmix-crypto/curve25519/curve25519.h b/libcmix-crypto/curve25519/curve25519.h
index 5f30915..f424144 100644
--- a/libcmix-crypto/curve25519/curve25519.h
+++ b/libcmix-crypto/curve25519/curve25519.h
@@ -22,13 +22,21 @@ extern BufferDeleter curve25519_free_buffer;
extern ArrayToElement curve25519_array_to_element;
+extern MessageToElement curve25519_message_to_element;
+
+extern PubKeyHashGetter curve25519_get_pub_key_hash;
+
+extern PubKeyHashLengthGetter curve25519_get_pub_key_hash_length;
+
extern GroupElementGetter curve25519_get_group_element;
extern GroupElementDeleter curve25519_delete_group_element;
extern KeyExchangeValueGetter curve25519_get_key_exchange_value;
-extern GroupElementMultiplier curve25519_multiply;
+extern GroupElementCombiner curve25519_combine;
+
+extern GroupElementUncombiner curve25519_uncombine;
extern DecryptionShareGetter curve25519_get_decryption_share;
@@ -42,6 +50,10 @@ extern SharedKeyDeleter curve25519_delete_shared_key;
extern Encrypter curve25519_encrypt;
+extern Inverter curve25519_invert;
+
+extern UniformIntGetter curve25519_get_uniform_int;
+
extern Deinitializer curve25519_deinitialize;
/*!
diff --git a/libcmix-crypto/curve25519/null/CMakeLists.txt b/libcmix-crypto/curve25519/null/CMakeLists.txt
index eb13fdf..94dac1b 100644
--- a/libcmix-crypto/curve25519/null/CMakeLists.txt
+++ b/libcmix-crypto/curve25519/null/CMakeLists.txt
@@ -1,6 +1,6 @@
include(get_target_name)
-get_target_name(target_name)
+get_target_name(target_name algo api)
add_library(${target_name} SHARED
null_curve25519.c
diff --git a/libcmix-crypto/curve25519/null/null_curve25519.c b/libcmix-crypto/curve25519/null/null_curve25519.c
index d261791..19c52f4 100644
--- a/libcmix-crypto/curve25519/null/null_curve25519.c
+++ b/libcmix-crypto/curve25519/null/null_curve25519.c
@@ -37,7 +37,7 @@ ArrayToElement curve25519_array_to_element = NULL;//&null_curve25519_array_to_el
GroupElementGetter curve25519_get_group_element = NULL;//&null_curve25519_get_group_element;
GroupElementDeleter curve25519_delete_group_element = NULL;//&null_curve25519_delete_group_element;
KeyExchangeValueGetter curve25519_get_key_exchange_value = NULL;//&null_curve25519_get_key_exchange_value;
-GroupElementMultiplier curve25519_multiply = NULL;//&null_curve25519_multiply;
+GroupElementCombiner curve25519_multiply = NULL;//&null_curve25519_multiply;
DecryptionShareGetter curve25519_get_decryption_share = NULL;//&null_curve25519_get_decryption_share;
GroupElementArraySizeGetter curve25519_get_group_element_array_size = NULL;//&null_curve25519_get_group_element_array_size;
PublicShareAdder curve25519_add_public_share = NULL;//&null_curve25519_add_public_share;
diff --git a/libcmix-crypto/curve25519/sodium/CMakeLists.txt b/libcmix-crypto/curve25519/sodium/CMakeLists.txt
index fbbedb1..f93abb4 100644
--- a/libcmix-crypto/curve25519/sodium/CMakeLists.txt
+++ b/libcmix-crypto/curve25519/sodium/CMakeLists.txt
@@ -1,6 +1,6 @@
include(get_target_name)
-get_target_name(target_name)
+get_target_name(target_name algo api)
find_package(sodium REQUIRED CONFIG)
diff --git a/libcmix-crypto/curve25519/sodium/libsodium_curve25519.c b/libcmix-crypto/curve25519/sodium/libsodium_curve25519.c
index 1bad378..b8ed4c2 100644
--- a/libcmix-crypto/curve25519/sodium/libsodium_curve25519.c
+++ b/libcmix-crypto/curve25519/sodium/libsodium_curve25519.c
@@ -93,7 +93,8 @@ ArrayToElement curve25519_array_to_element = NULL;//&sodium_curve25519_array_to_
GroupElementGetter curve25519_get_group_element = NULL;//&sodium_curve25519_get_group_element;
GroupElementDeleter curve25519_delete_group_element = NULL;//&sodium_curve25519_delete_group_element;
KeyExchangeValueGetter curve25519_get_key_exchange_value = NULL;//&sodium_curve25519_get_key_exchange_value;
-GroupElementMultiplier curve25519_multiply = NULL;//&sodium_curve25519_multiply;
+GroupElementCombiner curve25519_combine = NULL;//&sodium_curve25519_multiply;
+GroupElementUncombiner curve25519_uncombine = NULL;
DecryptionShareGetter curve25519_get_decryption_share = NULL;//&sodium_curve25519_get_decryption_share;
GroupElementArraySizeGetter curve25519_get_group_element_array_size = NULL;//&sodium_curve25519_get_group_element_array_size;
PublicShareAdder curve25519_add_public_share = NULL;//&sodium_curve25519_add_public_share;