1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2025-12-22 11:13:21 +00:00

1. Fixed compiler warnings

2. Fixed #ifdef for NOTLS
This commit is contained in:
Bryan Roe
2020-07-16 17:48:35 -07:00
parent 42642f1433
commit 0f4b18b8eb
3 changed files with 24 additions and 9 deletions

View File

@@ -600,6 +600,7 @@ void UDPSocket_OnData(ILibAsyncUDPSocket_SocketModule socketModule, char* buffer
if (remoteInterface->sin6_family != AF_INET && remoteInterface->sin6_family != AF_INET6) return;
//isLoopback = ILibIsLoopback((struct sockaddr*)remoteInterface);
#ifndef MICROSTACK_NOTLS
// If the discovery key is set, use it to decrypt the packet
if (agentHost->multicastDiscoveryKey != NULL)
{
@@ -615,16 +616,17 @@ void UDPSocket_OnData(ILibAsyncUDPSocket_SocketModule socketModule, char* buffer
// Decrypt the packet using AES256-CBC
dec_ctx = EVP_CIPHER_CTX_new();
EVP_DecryptInit(dec_ctx, EVP_aes_256_cbc(), agentHost->multicastDiscoveryKey, buffer);
if (!EVP_DecryptUpdate(dec_ctx, ILibScratchPad, &declength, buffer + 16, bufferLength - 16)) { EVP_CIPHER_CTX_free(dec_ctx); return; }
EVP_DecryptInit(dec_ctx, EVP_aes_256_cbc(), agentHost->multicastDiscoveryKey, (unsigned char*)buffer);
if (!EVP_DecryptUpdate(dec_ctx, (unsigned char*)ILibScratchPad, &declength, (unsigned char*)(buffer + 16), bufferLength - 16)) { EVP_CIPHER_CTX_free(dec_ctx); return; }
packetLen = declength;
if (!EVP_DecryptFinal_ex(dec_ctx, ILibScratchPad + packetLen, &declength)) { EVP_CIPHER_CTX_free(dec_ctx); return; }
if (!EVP_DecryptFinal_ex(dec_ctx, (unsigned char*)(ILibScratchPad + packetLen), &declength)) { EVP_CIPHER_CTX_free(dec_ctx); return; }
packetLen += declength;
packet = ILibScratchPad;
EVP_CIPHER_CTX_free(dec_ctx);
packet[packetLen] = 0;
}
else
#endif
{
// Assume UDP Packet is not encrypted
packet = buffer;
@@ -3366,7 +3368,9 @@ void MeshServer_ConnectEx(MeshAgentHostContainer *agent)
else
{
// Multicast discovery packet to try to find our server
if ((agent->multicastDiscovery2 != NULL) && (ILibSimpleDataStore_Get(agent->masterDb, "ServerID", ILibScratchPad2, sizeof(ILibScratchPad2)) == 97)) {
if ((agent->multicastDiscovery2 != NULL) && (ILibSimpleDataStore_Get(agent->masterDb, "ServerID", ILibScratchPad2, sizeof(ILibScratchPad2)) == 97))
{
#ifndef MICROSTACK_NOTLS
// If the discovery key is set, use it to encrypt the UDP packet
if (agent->multicastDiscoveryKey != NULL)
{
@@ -3374,12 +3378,12 @@ void MeshServer_ConnectEx(MeshAgentHostContainer *agent)
int enclength = sizeof(ILibScratchPad) - 16, packetLen;
util_random(16, ILibScratchPad); // Select a random IV
enc_ctx = EVP_CIPHER_CTX_new();
EVP_EncryptInit(enc_ctx, EVP_aes_256_cbc(), agent->multicastDiscoveryKey, ILibScratchPad);
if (EVP_EncryptUpdate(enc_ctx, ILibScratchPad + 16, &enclength, ILibScratchPad2, 96))
EVP_EncryptInit(enc_ctx, EVP_aes_256_cbc(), agent->multicastDiscoveryKey, (unsigned char*)ILibScratchPad);
if (EVP_EncryptUpdate(enc_ctx, (unsigned char*)(ILibScratchPad + 16), &enclength, (unsigned char*)ILibScratchPad2, 96))
{
packetLen = enclength;
enclength = sizeof(ILibScratchPad) - 16 - packetLen;
if (EVP_EncryptFinal_ex(enc_ctx, ILibScratchPad + 16 + packetLen, &enclength))
if (EVP_EncryptFinal_ex(enc_ctx, (unsigned char*)(ILibScratchPad + 16 + packetLen), &enclength))
{
// Send the encrypted packet
ILibMulticastSocket_Broadcast(agent->multicastDiscovery2, ILibScratchPad, 16 + packetLen + enclength, 1);
@@ -3388,6 +3392,7 @@ void MeshServer_ConnectEx(MeshAgentHostContainer *agent)
EVP_CIPHER_CTX_free(enc_ctx);
}
else
#endif
{
// No discovery key set, broadcast without encryption
ILibMulticastSocket_Broadcast(agent->multicastDiscovery2, ILibScratchPad2, 96, 1);

View File

@@ -66,7 +66,8 @@ typedef enum MeshCommand_AuthInfo_CapabilitiesMask
MeshCommand_AuthInfo_CapabilitiesMask_CONSOLE = 0x08,
MeshCommand_AuthInfo_CapabilitiesMask_JAVASCRIPT = 0x10,
MeshCommand_AuthInfo_CapabilitiesMask_TEMPORARY = 0x20,
MeshCommand_AuthInfo_CapabilitiesMask_RECOVERY = 0x40
MeshCommand_AuthInfo_CapabilitiesMask_RECOVERY = 0x40,
MeshCommand_AuthInfo_CapabilitiesMask_COMPRESSION = 0x80
}MeshCommand_AuthInfo_CapabilitiesMask;
typedef enum AgentIdentifiers

View File

@@ -7480,6 +7480,15 @@ int ILibSCTP_Debug_SetDebugCallback(void* dtlsSession, char* debugFieldName, ILi
return 0;
}
#endif
#endif
#ifdef MICROSTACK_NOTLS
#if defined(WINSOCK2)
#include <winsock2.h>
#include <ws2tcpip.h>
#endif
#include "ILibParsers.h"
#endif
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.11, January 15th, 2017
@@ -7689,4 +7698,4 @@ uint32_t crc32(uint32_t crc, const unsigned char* buf, uint32_t len)
return crc32_z(crc, buf, len);
}
#endif