From 685b8e446e8dfa337ba007eae9477c80edc8fa5e Mon Sep 17 00:00:00 2001 From: ENGO150 <v.smejkal06@gmail.com> Date: Wed, 29 Jan 2025 21:15:24 +0100 Subject: [PATCH] defined why2_chat_ecc_sign and its not working as expected lol i will fix it in next commits, i just need this for change comparison --- src/chat/crypto.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/chat/crypto.c b/src/chat/crypto.c index c8f22a6..8abbbcf 100644 --- a/src/chat/crypto.c +++ b/src/chat/crypto.c @@ -107,6 +107,34 @@ void why2_chat_init_keys(void) why2_deallocate(key); } +char *why2_chat_ecc_sign(char *message) +{ + //VARIABLES + EVP_MD_CTX *mdctx = NULL; //SIGNING CONTEXT + size_t siglen; + char *sig; //SIGNATURE + char *encoded_sig; //FINAL (ENCODED) SIGNATURE + + //INIT mdctx + mdctx = EVP_MD_CTX_new(); + EVP_DigestSignInit(mdctx, NULL, EVP_sha256(), NULL, keypair); + + EVP_DigestSignUpdate(mdctx, message, strlen(message)); //UPDATE MESSAGE TO SIGN + EVP_DigestSignFinal(mdctx, NULL, &siglen); //COUNT LENGTH + + //GENERATE SIGNATURE + sig = why2_malloc(siglen); //ALLOCATE SIGNATURE + EVP_DigestSignFinal(mdctx, (unsigned char*) sig, &siglen); + + encoded_sig = base64_encode(sig); //CONVERT sig TO BASE64 + + //DEALLOCATION + why2_deallocate(sig); + EVP_MD_CTX_free(mdctx); + + return encoded_sig; +} + void why2_chat_deallocate_keys(void) { //DEALLOCATE THE pkey