diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2017-04-16 22:49:17 +0200 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2017-04-16 22:49:17 +0200 |
| commit | 4895eff27938fa72e5a638ff173920e823ebb115 (patch) | |
| tree | 6e8424f95f6b3c4cefd6ef4d1891a76059ce8276 /libcmix-crypto/curve25519/sodium/libsodium_curve25519.c | |
| parent | 33f81a3a57a047326160f371f3269dfb47c59cba (diff) | |
| download | cmix-4895eff27938fa72e5a638ff173920e823ebb115.tar.gz cmix-4895eff27938fa72e5a638ff173920e823ebb115.tar.bz2 cmix-4895eff27938fa72e5a638ff173920e823ebb115.zip | |
Updated documentation and bumped Cmix to Version 1.0
Diffstat (limited to 'libcmix-crypto/curve25519/sodium/libsodium_curve25519.c')
| -rw-r--r-- | libcmix-crypto/curve25519/sodium/libsodium_curve25519.c | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/libcmix-crypto/curve25519/sodium/libsodium_curve25519.c b/libcmix-crypto/curve25519/sodium/libsodium_curve25519.c deleted file mode 100644 index b8ed4c2..0000000 --- a/libcmix-crypto/curve25519/sodium/libsodium_curve25519.c +++ /dev/null @@ -1,104 +0,0 @@ - -#include "curve25519.h" - -#include <sodium.h> - -#include <stddef.h> -#include <stdlib.h> - -void sodium_curve25519_initialize(void) { - if(sodium_init() == -1) { - exit(-1); - } -} - -void sodium_curve25519_delete_keypair(struct KeyPair* p) { - sodium_free(p->sec); - free(p->pub); - - p->sec = NULL; - p->pub = NULL; -} - -struct KeyPair sodium_curve25519_create_keypair(void) { - unsigned char* sec = (unsigned char*) sodium_malloc(crypto_box_SECRETKEYBYTES); - unsigned char* pub = (unsigned char*) malloc(crypto_box_PUBLICKEYBYTES); - - randombytes_buf(sec, crypto_box_SECRETKEYBYTES); - crypto_scalarmult_base(pub, sec); - - return (struct KeyPair){ - sec, - pub, - }; -} - -void sodium_curve25519_shared_key_deleter(struct SharedKey* s) { - sodium_free(s->shared); - - s->shared = NULL; -} - -void sodium_curve25519_key_to_array(unsigned char** buffer, size_t* len, void* key) { - (void)buffer; - (void)len; - (void)key; -} - -void sodium_curve25519_add_public_share(char** buffer, size_t* out_len, char const* share, size_t in_len, void* pubkey) { - (void) buffer; - (void) out_len; - (void) share; - (void) in_len; - (void) pubkey; -} - -GroupElement sodium_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) { - (void) pub_len; - (void) value_len; - unsigned char* shared = (unsigned char*) sodium_malloc(crypto_generichash_BYTES); - - crypto_generichash_state h; - - unsigned char* scalarmult_q = (unsigned char*) sodium_malloc(crypto_scalarmult_BYTES); - - if (crypto_scalarmult(scalarmult_q, (unsigned char const*) priv_value, (unsigned char const*) value) != 0) { - exit(-1); - } - - crypto_generichash_init(&h, NULL, 0U, crypto_generichash_BYTES); - crypto_generichash_update(&h, scalarmult_q, crypto_scalarmult_BYTES); - if(swap_pub_order) { - crypto_generichash_update(&h, (unsigned char const*) other_pub, crypto_box_PUBLICKEYBYTES); - crypto_generichash_update(&h, (unsigned char const*) pair.pub, crypto_box_PUBLICKEYBYTES); - } else { - crypto_generichash_update(&h, (unsigned char const*) pair.pub, crypto_box_PUBLICKEYBYTES); - crypto_generichash_update(&h, (unsigned char const*) other_pub, crypto_box_PUBLICKEYBYTES); - } - crypto_generichash_final(&h, shared, crypto_generichash_BYTES); - - sodium_free(scalarmult_q); - - return shared; -} - -void sodium_curve25519_deinitialize(void) {} - -Initializer curve25519_initialize = &sodium_curve25519_initialize; -KeyPairCreator curve25519_create_keypair = &sodium_curve25519_create_keypair; -KeyPairDeleter curve25519_delete_keypair = &sodium_curve25519_delete_keypair; -ElementToArray curve25519_element_to_array = NULL;//&sodium_curve25519_element_to_array; -BufferDeleter curve25519_free_buffer = NULL;//&sodium_curve25519_free_buffer; -ArrayToElement curve25519_array_to_element = NULL;//&sodium_curve25519_array_to_element; -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; -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; -SharedKeyDeriver curve25519_derive_shared_key = &sodium_curve25519_derive_shared_key; -SharedKeyDeleter curve25519_delete_shared_key = NULL;//&sodium_curve25519_delete_shared_key; -Encrypter curve25519_encrypt = NULL;//&sodium_curve25519_encrypt; -Deinitializer curve25519_deinitialize = &sodium_curve25519_deinitialize; |
