|
|
|
|
@ -20,6 +20,7 @@
|
|
|
|
|
#include "../transport_layer/etcp.h" |
|
|
|
|
#include "../transport_layer/etcp_connections.h" |
|
|
|
|
|
|
|
|
|
#define OPENSSL_API_COMPAT 0x10100000L |
|
|
|
|
#include <openssl/sha.h> |
|
|
|
|
#include <openssl/evp.h> |
|
|
|
|
#include <openssl/rand.h> |
|
|
|
|
@ -222,13 +223,13 @@ void chat_core_create_channel_auto(const char* name) {
|
|
|
|
|
|
|
|
|
|
uint8_t x25519_pub[32] = {0}, x25519_priv[32] = {0}; |
|
|
|
|
{ EVP_PKEY* pkey = NULL; EVP_PKEY_CTX* ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_X25519, NULL); |
|
|
|
|
if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_generate(ctx, &pkey); EVP_PKEY_CTX_free(ctx); } |
|
|
|
|
if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_keygen(ctx, &pkey); EVP_PKEY_CTX_free(ctx); } |
|
|
|
|
if (pkey) { size_t pkLen = 32, skLen = 32; EVP_PKEY_get_raw_public_key(pkey, x25519_pub, &pkLen); EVP_PKEY_get_raw_private_key(pkey, x25519_priv, &skLen); EVP_PKEY_free(pkey); } } |
|
|
|
|
|
|
|
|
|
uint8_t ed25519_pub[32] = {0}, ed25519_priv[32] = {0}; |
|
|
|
|
EVP_PKEY* ed_pkey = NULL; |
|
|
|
|
{ EVP_PKEY_CTX* ctx = EVP_PKEY_CTX_new_id(EVP_PKEY_ED25519, NULL); |
|
|
|
|
if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_generate(ctx, &ed_pkey); EVP_PKEY_CTX_free(ctx); } |
|
|
|
|
if (ctx) { EVP_PKEY_keygen_init(ctx); EVP_PKEY_keygen(ctx, &ed_pkey); EVP_PKEY_CTX_free(ctx); } |
|
|
|
|
if (ed_pkey) { size_t pkLen = 32, skLen = 32; EVP_PKEY_get_raw_public_key(ed_pkey, ed25519_pub, &pkLen); EVP_PKEY_get_raw_private_key(ed_pkey, ed25519_priv, &skLen); } } |
|
|
|
|
|
|
|
|
|
uint64_t chId = 0; RAND_bytes((uint8_t*)&chId, sizeof(chId)); |
|
|
|
|
|