From 3b7f6ea4ad3271fb9a2ffbfc7700f5b553c1f1be Mon Sep 17 00:00:00 2001 From: Ugo Cirmignani Date: Sun, 2 Dec 2018 19:28:14 +0100 Subject: [PATCH] TLS preliminary test ok! --- Makefile | 16 ++-- build/modules/configRead.o | Bin 38408 -> 38720 bytes build/modules/connection.o | Bin 45160 -> 45568 bytes build/modules/fileManagement.o | Bin 31528 -> 31568 bytes build/modules/ftpCommandElaborate.o | Bin 66568 -> 67680 bytes build/modules/ftpData.o | Bin 41328 -> 42552 bytes build/modules/ftpServer.o | Bin 56752 -> 54720 bytes build/modules/openSsl.o | Bin 13184 -> 13184 bytes build/uFTP | Bin 179696 -> 179840 bytes ftpCommandElaborate.c | 110 ++++++++++++++++++++-------- ftpCommandsElaborate.h | 4 +- ftpData.c | 80 +++++++++++--------- ftpData.h | 12 ++- ftpServer.c | 42 +++++++---- ftpServer.h | 4 +- library/configRead.c | 15 +++- library/connection.c | 17 ++++- library/fileManagement.c | 24 ++++-- library/openSsl.c | 6 +- library/openSsl.h | 5 +- nbproject/Makefile-Debug.mk | 24 +++--- nbproject/configurations.xml | 2 +- 22 files changed, 240 insertions(+), 121 deletions(-) diff --git a/Makefile b/Makefile index 37c2260..82c5dbd 100644 --- a/Makefile +++ b/Makefile @@ -5,18 +5,24 @@ OUTPATH=./build/ SOURCE_MODULES_PATH=./library/ #FOR DEBUG PURPOSE -CFLAGS=-c -Wall -I. -g -O0 -#CFLAGS=-c -Wall -I. +CFLAGSTEMP=-c -Wall -I. -g -O0 +#CFLAGSTEMP=-c -Wall -I. OPTIMIZATION=-O3 HEADERS=-I LIBPATH=./build/modules/ BUILDFILES=start uFTP end LIBS=-lpthread -lssl -lcrypto -#DEFINITIONS= +#ENABLE_LARGE_FILE_SUPPORT= #TO ENABLE THE LARGE FILE SUPPORT UNCOMMENT THE NEXT LINE -DEFINITIONS=-D_LARGEFILE64_SOURCE +ENABLE_LARGE_FILE_SUPPORT=-D LARGE_FILE_SUPPORT_ENABLED -D _LARGEFILE64_SOURCE + +#ENABLE_OPENSSL_SUPPORT= +#TO ENABLE OPENSSL SUPPORT UNCOMMENT THE NEXT LINE +ENABLE_OPENSSL_SUPPORT=-D OPENSSL_ENABLED + +CFLAGS=$(CFLAGSTEMP) $(ENABLE_LARGE_FILE_SUPPORT) $(ENABLE_OPENSSL_SUPPORT) all: $(BUILDFILES) @@ -31,7 +37,7 @@ end: @echo Build process end uFTP: uFTP.c fileManagement.o configRead.o logFunctions.o ftpCommandElaborate.o ftpData.o ftpServer.o daemon.o signals.o connection.o openSsl.o - @$(CC) $(DEFINITIONS) uFTP.c $(LIBPATH)dynamicVectors.o $(LIBPATH)fileManagement.o $(LIBPATH)configRead.o $(LIBPATH)logFunctions.o $(LIBPATH)ftpCommandElaborate.o $(LIBPATH)ftpData.o $(LIBPATH)ftpServer.o $(LIBPATH)daemon.o $(LIBPATH)signals.o $(LIBPATH)connection.o $(LIBPATH)openSsl.o -o $(OUTPATH)uFTP $(LIBS) + @$(CC) $(ENABLE_LARGE_FILE_SUPPORT) $(ENABLE_OPENSSL_SUPPORT) uFTP.c $(LIBPATH)dynamicVectors.o $(LIBPATH)fileManagement.o $(LIBPATH)configRead.o $(LIBPATH)logFunctions.o $(LIBPATH)ftpCommandElaborate.o $(LIBPATH)ftpData.o $(LIBPATH)ftpServer.o $(LIBPATH)daemon.o $(LIBPATH)signals.o $(LIBPATH)connection.o $(LIBPATH)openSsl.o -o $(OUTPATH)uFTP $(LIBS) daemon.o: @$(CC) $(CFLAGS) $(SOURCE_MODULES_PATH)daemon.c -o $(LIBPATH)daemon.o diff --git a/build/modules/configRead.o b/build/modules/configRead.o index ee5006500b7e404dacf409b5e16ef4bce8f915a7..bc8ab43c7dfbee08553c2d538c091c4b5383a640 100644 GIT binary patch delta 11203 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 delta 10797 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 literal 45160 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 LkN9yeHUIws>UDix diff --git a/build/modules/fileManagement.o b/build/modules/fileManagement.o index c3c96e28e8b95b3b7a1df55b481481c6b24828b7..472014a4f4ca91705825d0c1224d6e5dc9c35cb2 100644 GIT binary patch delta 2357 zcmZ8heN0nV6u;*^C^e&kAbZq`^iiPr5etei6Om6#{YnH8Dx#^bYMoUWOe^@&u|$Vi zGI=>B+tf`r=i7_q;lNf4tn^J?H$+ z@0@e*Jv#xT6VO|rr0)J|R@PM@lh} z1`bauGX-psc}`KDfK>Q#T%pv~i>Gwm(@Pmb(*#f2`t(o1fA zH=m-;63YU!JA_MKU@d*d+7@B3NKEN}tm$aW z)eF;2*8Pr-HyBK%paBlU&+sTE$-oV{&W)K$a{{mP;(qf~B?ubxdz%(;La{L>&y@5~ z3?HA9h1%I5`<5i46~j+$8^im#dUOn;Ha=OJ$QayaV*E1Z4y+dUA|&BYz|V?ev`BcL zARUAU1cS_C-C{LG4~bp#+Y}dlTZk^=7i)+#_+=48q+t~=VuVP;bdKurLS9z19{9mg zjlPHssTT~YaUmj=HNg4F+H^@clVSDHzaZRz6s@nay04^&R6iE+qGy!a<9r0+&9jMO#W=MA9;#g z$&h>UnE5370V@ieDSyhn3b{9dtpyoy8V?pYqo?WZmXn@i4eG?Y88>=0*nvgWnP_-5`w@yimoDRbNZDx|^lJ8g zvObzBw}WII=3Msg$+|K_ZZ9P3uiTpTn5>7$`VLvGDr2cwSDBtT#azKO?5@=yA3vzQ zo!nYd%(irF-n_lFq!`;&0A={&8V{7Ctx>~8jmfqfB!^G23dm4DBVDBsK-la44}|Bxl>h($ delta 2405 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 literal 66568 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 delta 10545 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 diff --git a/build/modules/openSsl.o b/build/modules/openSsl.o index 888126559f9cf16c618c6c7bcc9855f76a47274f..b09b4bb21a955d4cea4f1a0dd03f9f0a86bb5ebf 100644 GIT binary patch delta 95 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�OPqe8z@OKIE`IM#Fu|@}mpB1hB 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 = 1; - SSL *ssl; - ssl = SSL_new(ctx); - SSL_set_fd(ssl, theClientData->socketDescriptor); + #ifndef OPENSSL_ENABLED + returnCode = socketPrintf(data, socketId, "s", "502 Security extensions not implemented.\r\n"); + if (returnCode <= 0) + return FTP_COMMAND_PROCESSED_WRITE_ERROR; - if (SSL_accept(ssl) <= 0) { - printf("\nSSL ERRORS"); - ERR_print_errors_fp(stderr); + return FTP_COMMAND_PROCESSED; + #endif + + #ifdef OPENSSL_ENABLED + returnCode = socketPrintf(data, socketId, "s", "234 AUTH TLS OK..\r\n"); + if (returnCode <= 0) + return FTP_COMMAND_PROCESSED_WRITE_ERROR; + + data->clients[socketId].tlsIsEnabled = 1; + + printf("\n SSL_set_fd"); + fflush(0); + + SSL_set_fd(data->clients[socketId].ssl, data->clients[socketId].socketDescriptor); + + printf("\n SSL_set_fd OK"); + fflush(0); + + int sslAcceptTimeout = 0; + do { + returnCode = SSL_accept(data->clients[socketId].ssl); + + printf("\n SSL_accept"); + fflush(0); + + printf("\nSSL waiting handshake %d.. return code = %d", sslAcceptTimeout, returnCode); + fflush(0); + if (returnCode <= 0) { + printf("\nSSL ERRORS"); + fflush(0); + ERR_print_errors_fp(stderr); + } + else { + printf("\nSSL ACCEPTED"); + fflush(0); + } + sslAcceptTimeout++; + sleep(1); } - else { - printf("\nSSL ACCEPTED"); - SSL_write(ssl, "ciao prova\r\n", strlen("ciao prova\r\n")); - } - - //client -> AUTH TLS - //server -> 234 AUTH TLS OK. + while(returnCode <=0 && + sslAcceptTimeout < 3); + + return FTP_COMMAND_PROCESSED; + #endif + + return FTP_COMMAND_PROCESSED; } @@ -346,22 +377,31 @@ int parseCommandPasv(ftpDataType * data, int socketId) { /* Create worker thread */ void *pReturn; + int returnCode; printf("\n data->clients[%d].workerData.workerThread = %d",socketId, (int)data->clients[socketId].workerData.workerThread); if (data->clients[socketId].workerData.threadIsAlive == 1) { - pthread_cancel(data->clients[socketId].workerData.workerThread); + returnCode = pthread_cancel(data->clients[socketId].workerData.workerThread); } - pthread_join(data->clients[socketId].workerData.workerThread, &pReturn); + returnCode = pthread_join(data->clients[socketId].workerData.workerThread, &pReturn); data->clients[socketId].workerData.passiveModeOn = 1; data->clients[socketId].workerData.activeModeOn = 0; - pthread_create(&data->clients[socketId].workerData.workerThread, NULL, connectionWorkerHandle, (void *) &data->clients[socketId].clientProgressiveNumber); + returnCode = pthread_create(&data->clients[socketId].workerData.workerThread, NULL, connectionWorkerHandle, (void *) &data->clients[socketId].clientProgressiveNumber); + + if (returnCode != 0) + { + printf("\nError in pthread_create %d", returnCode); + return FTP_COMMAND_PROCESSED_WRITE_ERROR; + } + return FTP_COMMAND_PROCESSED; } int parseCommandPort(ftpDataType * data, int socketId) { + int returnCode; char *theIpAndPort; int ipAddressBytes[4]; int portBytes[2]; @@ -373,12 +413,20 @@ int parseCommandPort(ftpDataType * data, int socketId) void *pReturn; if (data->clients[socketId].workerData.threadIsAlive == 1) { - pthread_cancel(data->clients[socketId].workerData.workerThread); + returnCode = pthread_cancel(data->clients[socketId].workerData.workerThread); } - pthread_join(data->clients[socketId].workerData.workerThread, &pReturn); + returnCode = pthread_join(data->clients[socketId].workerData.workerThread, &pReturn); data->clients[socketId].workerData.passiveModeOn = 0; data->clients[socketId].workerData.activeModeOn = 1; - pthread_create(&data->clients[socketId].workerData.workerThread, NULL, connectionWorkerHandle, (void *) &data->clients[socketId].clientProgressiveNumber); + returnCode = pthread_create(&data->clients[socketId].workerData.workerThread, NULL, connectionWorkerHandle, (void *) &data->clients[socketId].clientProgressiveNumber); + + if (returnCode != 0) + { + printf("\nError in pthread_create %d", returnCode); + return FTP_COMMAND_PROCESSED_WRITE_ERROR; + } + + return FTP_COMMAND_PROCESSED; } @@ -1058,11 +1106,13 @@ long long int writeRetrFile(char * theFilename, int thePasvSocketConnection, lon long long int theFileSize; char buffer[FTP_COMMAND_ELABORATE_CHAR_BUFFER]; - #ifdef _LARGEFILE64_SOURCE + #ifdef LARGE_FILE_SUPPORT_ENABLED + //#warning LARGE FILE SUPPORT IS ENABLED! retrFP = fopen64(theFilename, "rb"); #endif - #ifndef _LARGEFILE64_SOURCE + #ifndef LARGE_FILE_SUPPORT_ENABLED + #warning LARGE FILE SUPPORT IS NOT ENABLED! retrFP = fopen(theFilename, "rb"); #endif @@ -1076,11 +1126,13 @@ long long int writeRetrFile(char * theFilename, int thePasvSocketConnection, lon if (startFrom > 0) { - #ifdef _LARGEFILE64_SOURCE + #ifdef LARGE_FILE_SUPPORT_ENABLED + //#warning LARGE FILE SUPPORT IS ENABLED! currentPosition = (long long int) lseek64(fileno(retrFP), startFrom, SEEK_SET); #endif - #ifndef _LARGEFILE64_SOURCE + #ifndef LARGE_FILE_SUPPORT_ENABLED + #warning LARGE FILE SUPPORT IS NOT ENABLED! currentPosition = (long long int) lseek(fileno(retrFP), startFrom, SEEK_SET); #endif diff --git a/ftpCommandsElaborate.h b/ftpCommandsElaborate.h index d3be4d1..4c21cc0 100644 --- a/ftpCommandsElaborate.h +++ b/ftpCommandsElaborate.h @@ -50,9 +50,7 @@ extern "C" { int parseCommandUser(ftpDataType * data, int socketId); int parseCommandSite(ftpDataType * data, int socketId); int parseCommandPass(ftpDataType * data, int socketId); - -int parseCommandAuth(clientDataType *theClientData, SSL_CTX *); - +int parseCommandAuth(ftpDataType * data, int socketId); int parseCommandPwd(ftpDataType * data, int socketId); int parseCommandSyst(ftpDataType * data, int socketId); int parseCommandFeat(ftpDataType * data, int socketId); diff --git a/ftpData.c b/ftpData.c index 5e04644..8b8cd52 100644 --- a/ftpData.c +++ b/ftpData.c @@ -603,66 +603,76 @@ void resetWorkerData(workerDataType *workerData, int isInitialization) } } -void resetClientData(clientDataType *clientData, int isInitialization) +void resetClientData(ftpDataType *data, int clientId, int isInitialization) { + if (isInitialization != 1) { - if (clientData->workerData.threadIsAlive == 1) + if (data->clients[clientId].workerData.threadIsAlive == 1) { void *pReturn; - pthread_cancel(clientData->workerData.workerThread); - pthread_join(clientData->workerData.workerThread, &pReturn); + pthread_cancel(data->clients[clientId].workerData.workerThread); + pthread_join(data->clients[clientId].workerData.workerThread, &pReturn); } else { void *pReturn = NULL; - pthread_join(clientData->workerData.workerThread, &pReturn); + pthread_join(data->clients[clientId].workerData.workerThread, &pReturn); } - pthread_mutex_destroy(&clientData->writeMutex); + pthread_mutex_destroy(&data->clients[clientId].writeMutex); + + #ifdef OPENSSL_ENABLED + SSL_free(data->clients[clientId].ssl); + #endif } - if (pthread_mutex_init(&clientData->writeMutex, NULL) != 0) + if (pthread_mutex_init(&data->clients[clientId].writeMutex, NULL) != 0) { printf("\nclientData->writeMutex init failed\n"); exit(0); } - clientData->socketDescriptor = -1; - clientData->socketCommandReceived = 0; - clientData->socketIsConnected = 0; - clientData->bufferIndex = 0; - clientData->commandIndex = 0; - clientData->closeTheClient = 0; - clientData->sockaddr_in_size = sizeof(struct sockaddr_in); - clientData->sockaddr_in_server_size = sizeof(struct sockaddr_in); + data->clients[clientId].tlsIsEnabled = 0; + data->clients[clientId].socketDescriptor = -1; + data->clients[clientId].socketCommandReceived = 0; + data->clients[clientId].socketIsConnected = 0; + data->clients[clientId].bufferIndex = 0; + data->clients[clientId].commandIndex = 0; + data->clients[clientId].closeTheClient = 0; + data->clients[clientId].sockaddr_in_size = sizeof(struct sockaddr_in); + data->clients[clientId].sockaddr_in_server_size = sizeof(struct sockaddr_in); - clientData->serverIpAddressInteger[0] = 0; - clientData->serverIpAddressInteger[1] = 0; - clientData->serverIpAddressInteger[2] = 0; - clientData->serverIpAddressInteger[3] = 0; + data->clients[clientId].serverIpAddressInteger[0] = 0; + data->clients[clientId].serverIpAddressInteger[1] = 0; + data->clients[clientId].serverIpAddressInteger[2] = 0; + data->clients[clientId].serverIpAddressInteger[3] = 0; - memset(&clientData->client_sockaddr_in, 0, clientData->sockaddr_in_size); - memset(&clientData->server_sockaddr_in, 0, clientData->sockaddr_in_server_size); - memset(clientData->clientIpAddress, 0, INET_ADDRSTRLEN); - memset(clientData->buffer, 0, CLIENT_BUFFER_STRING_SIZE); - memset(clientData->theCommandReceived, 0, CLIENT_COMMAND_STRING_SIZE); - cleanLoginData(&clientData->login, isInitialization); + memset(&data->clients[clientId].client_sockaddr_in, 0, data->clients[clientId].sockaddr_in_size); + memset(&data->clients[clientId].server_sockaddr_in, 0, data->clients[clientId].sockaddr_in_server_size); + memset(data->clients[clientId].clientIpAddress, 0, INET_ADDRSTRLEN); + memset(data->clients[clientId].buffer, 0, CLIENT_BUFFER_STRING_SIZE); + memset(data->clients[clientId].theCommandReceived, 0, CLIENT_COMMAND_STRING_SIZE); + cleanLoginData(&data->clients[clientId].login, isInitialization); //Rename from and to data init - cleanDynamicStringDataType(&clientData->renameFromFile, isInitialization); - cleanDynamicStringDataType(&clientData->renameToFile, isInitialization); - cleanDynamicStringDataType(&clientData->fileToStor, isInitialization); - cleanDynamicStringDataType(&clientData->fileToRetr, isInitialization); - cleanDynamicStringDataType(&clientData->listPath, isInitialization); - cleanDynamicStringDataType(&clientData->nlistPath, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].renameFromFile, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].renameToFile, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].fileToStor, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].fileToRetr, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].listPath, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].nlistPath, isInitialization); - cleanDynamicStringDataType(&clientData->ftpCommand.commandArgs, isInitialization); - cleanDynamicStringDataType(&clientData->ftpCommand.commandOps, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].ftpCommand.commandArgs, isInitialization); + cleanDynamicStringDataType(&data->clients[clientId].ftpCommand.commandOps, isInitialization); - clientData->connectionTimeStamp = 0; - clientData->lastActivityTimeStamp = 0; + data->clients[clientId].connectionTimeStamp = 0; + data->clients[clientId].lastActivityTimeStamp = 0; + + #ifdef OPENSSL_ENABLED + data->clients[clientId].ssl = SSL_new(data->ctx); + #endif } int compareStringCaseInsensitive(char * stringIn, char * stringRef, int stringLenght) diff --git a/ftpData.h b/ftpData.h index 7905ad8..6f5f049 100644 --- a/ftpData.h +++ b/ftpData.h @@ -148,7 +148,10 @@ struct workerData struct clientData { + #ifdef OPENSSL_ENABLED SSL *ssl; + #endif + int tlsIsEnabled; pthread_mutex_t writeMutex; @@ -207,7 +210,10 @@ struct ConnectionParameters struct ftpData { - + #ifdef OPENSSL_ENABLED + SSL_CTX *ctx; + #endif + int connectedClients; char welcomeMessage[1024]; ConnectionData_DataType connectionData; @@ -247,8 +253,10 @@ int writeListDataInfoToSocket(char * thePath, int theSocket, int *filesNumber, i int searchInLoginFailsVector(void *loginFailsVector, void *element); void deleteLoginFailsData(void *element); void deleteListDataInfoVector(void *TheElementToDelete); + void resetWorkerData(workerDataType *pasvData, int isInitialization); -void resetClientData(clientDataType *clientData, int isInitialization); +void resetClientData(ftpDataType *data, int clientId, int isInitialization); + int compareStringCaseInsensitive(char *stringIn, char* stringRef, int stringLenght); int isCharInString(char *theString, int stringLen, char theChar); void destroyConfigurationVectorElement(void * data); diff --git a/ftpServer.c b/ftpServer.c index 8126b10..fbf6fde 100644 --- a/ftpServer.c +++ b/ftpServer.c @@ -48,7 +48,6 @@ #include "ftpCommandsElaborate.h" ftpDataType ftpData; -SSL_CTX *ctx; static int processCommand(int processingElement); @@ -160,11 +159,13 @@ void *connectionWorkerHandle(void * socketId) ftpData.clients[theSocketId].fileToStor.textLen > 0) { - #ifdef _LARGEFILE64_SOURCE + #ifdef LARGE_FILE_SUPPORT_ENABLED + //#warning LARGE FILE SUPPORT IS ENABLED! ftpData.clients[theSocketId].workerData.theStorFile = fopen64(ftpData.clients[theSocketId].fileToStor.text, "wb"); #endif - #ifndef _LARGEFILE64_SOURCE + #ifndef LARGE_FILE_SUPPORT_ENABLED + #warning LARGE FILE SUPPORT IS NOT ENABLED! ftpData.clients[theSocketId].workerData.theStorFile = fopen(ftpData.clients[theSocketId].fileToStor.text, "wb"); #endif @@ -325,9 +326,9 @@ void runFtpServer(void) { printf("\nHello uFTP server v%s starting..\n", UFTP_SERVER_VERSION); - /* Needed for Select*/ - static int processingSock = 0, returnCode = 0; + static int processingSock = 0, + returnCode = 0; /* Handle signals */ signalHandlerInstall(); @@ -351,9 +352,6 @@ void runFtpServer(void) /* the maximum socket fd is now the main socket descriptor */ ftpData.connectionData.maxSocketFD = ftpData.connectionData.theMainSocket+1; - initOpenssl(); - ctx = createContext(); - configureContext(ctx); //Endless loop ftp process while (1) @@ -391,8 +389,20 @@ void runFtpServer(void) if (FD_ISSET(ftpData.clients[processingSock].socketDescriptor, &ftpData.connectionData.rset) || FD_ISSET(ftpData.clients[processingSock].socketDescriptor, &ftpData.connectionData.eset)) { + + if (ftpData.clients[processingSock].tlsIsEnabled == 1) + { + #ifdef OPENSSL_ENABLED + ftpData.clients[processingSock].bufferIndex = SSL_read(ftpData.clients[processingSock].ssl, ftpData.clients[processingSock].buffer, CLIENT_BUFFER_STRING_SIZE); + #endif + } + else + { + ftpData.clients[processingSock].bufferIndex = read(ftpData.clients[processingSock].socketDescriptor, ftpData.clients[processingSock].buffer, CLIENT_BUFFER_STRING_SIZE); + } + //The client is not connected anymore - if ((ftpData.clients[processingSock].bufferIndex = read(ftpData.clients[processingSock].socketDescriptor, ftpData.clients[processingSock].buffer, CLIENT_BUFFER_STRING_SIZE)) == 0) + if ((ftpData.clients[processingSock].bufferIndex) == 0) { fdRemove(&ftpData, processingSock); closeSocket(&ftpData, processingSock); @@ -519,12 +529,12 @@ static int processCommand(int processingElement) else if(compareStringCaseInsensitive(ftpData.clients[processingElement].theCommandReceived, "AUTH", strlen("AUTH")) == 1) { printf("\nAUTH COMMAND RECEIVED"); + toReturn = parseCommandAuth(&ftpData, processingElement); - int returnCode; - //returnCode = dprintf(theClientData->socketDescriptor, "502 Security extensions not implemented.\r\n"); - returnCode = dprintf(ftpData.clients[processingElement].socketDescriptor, "234 AUTH TLS OK..\r\n"); - + //returnCode = dprintf(theClientData->socketDescriptor, "502 Security extensions not implemented.\r\n"); + //returnCode = dprintf(ftpData.clients[processingElement].socketDescriptor, "234 AUTH TLS OK..\r\n"); +/* ftpData.clients[processingElement].tlsIsEnabled = 1; SSL *ssl; ssl = SSL_new(ctx); @@ -559,8 +569,8 @@ static int processCommand(int processingElement) sleep(1); } +*/ - // toReturn = parseCommandAuth(&ftpData.clients[processingElement], ctx); } else if(compareStringCaseInsensitive(ftpData.clients[processingElement].theCommandReceived, "PWD", strlen("PWD")) == 1) { @@ -721,4 +731,8 @@ static int processCommand(int processingElement) void deallocateMemory(void) { printf("\n Deallocating the memory.. "); + #ifndef OPENSSL_ENABLED + SSL_CTX_free(ftpData.ctx); + cleanup_openssl(); + #endif } diff --git a/ftpServer.h b/ftpServer.h index d67da6c..583f20d 100644 --- a/ftpServer.h +++ b/ftpServer.h @@ -27,7 +27,9 @@ #define FTPSERVER_H #define MAX_FTP_CLIENTS 10 -#define UFTP_SERVER_VERSION "1.0.1 beta" +#define UFTP_SERVER_VERSION "2.0.0 beta" +#warning remove in final release, must be specified by makefile +#define OPENSSL_ENABLED void runFtpServer(void); void *connectionWorkerHandle(void * socketId); diff --git a/library/configRead.c b/library/configRead.c index f693182..339b873 100644 --- a/library/configRead.c +++ b/library/configRead.c @@ -30,6 +30,7 @@ #include "configRead.h" #include "../ftpData.h" #include "dynamicVectors.h" +#include "openSsl.h" #include "fileManagement.h" #include "daemon.h" @@ -122,10 +123,17 @@ void applyConfiguration(ftpParameters_DataType *ftpParameters) void initFtpData(ftpDataType *ftpData) { - int i; + int i; /* Intializes random number generator */ srand(time(NULL)); + #ifdef OPENSSL_ENABLED + #warning OPENSSL ENABLED! + initOpenssl(); + ftpData->ctx = createContext(); + configureContext(ftpData->ctx); + #endif + ftpData->connectedClients = 0; ftpData->clients = (clientDataType *) malloc( sizeof(clientDataType) * ftpData->ftpParameters.maxClients); @@ -143,7 +151,7 @@ void initFtpData(ftpDataType *ftpData) for (i = 0; i < ftpData->ftpParameters.maxClients; i++) { resetWorkerData(&ftpData->clients[i].workerData, 1); - resetClientData(&ftpData->clients[i], 1); + resetClientData(ftpData, i, 1); ftpData->clients[i].clientProgressiveNumber = i; } @@ -573,8 +581,7 @@ static int parseConfigurationFile(ftpParameters_DataType *ftpParameters, DYNV_Ve printf("\nuserData.gid = %d", userData.ownerShip.gid); printf("\nuserData.uid = %d", userData.ownerShip.uid); printf("\nuserData.ownerShipSet = %d", userData.ownerShip.ownerShipSet); - - + ftpParameters->usersVector.PushBack(&ftpParameters->usersVector, &userData, sizeof(usersParameters_DataType)); } diff --git a/library/connection.c b/library/connection.c index 4ae2964..4f82510 100644 --- a/library/connection.c +++ b/library/connection.c @@ -120,7 +120,18 @@ int socketPrintf(ftpDataType * ftpData, int clientId, const char *__restrict __f theStringSize > 0) { int theReturnCode = 0; - theReturnCode = write(ftpData->clients[clientId].socketDescriptor, theBuffer, theStringSize); + + if (ftpData->clients[clientId].tlsIsEnabled != 1) + { + theReturnCode = write(ftpData->clients[clientId].socketDescriptor, theBuffer, theStringSize); + } + else if (ftpData->clients[clientId].tlsIsEnabled == 1) + { + #ifdef OPENSSL_ENABLED + theReturnCode = SSL_write(ftpData->clients[clientId].ssl, theBuffer, theStringSize); + #endif + } + printf("%s", theBuffer); if (theReturnCode > 0) @@ -320,7 +331,7 @@ void closeSocket(ftpDataType * ftpData, int processingSocket) shutdown(ftpData->clients[processingSocket].socketDescriptor, SHUT_RDWR); close(ftpData->clients[processingSocket].socketDescriptor); - resetClientData(&ftpData->clients[processingSocket], 0); + resetClientData(ftpData, processingSocket, 0); resetWorkerData(&ftpData->clients[processingSocket].workerData, 0); //Update client connecteds @@ -495,7 +506,7 @@ int evaluateClientSocketConnection(ftpDataType * ftpData) } else { - int returnCode = socketPrintf(&ftpData, availableSocketIndex, "s", ftpData->welcomeMessage); + int returnCode = socketPrintf(ftpData, availableSocketIndex, "s", ftpData->welcomeMessage); if (returnCode <= 0) { ftpData->clients[availableSocketIndex].closeTheClient = 1; diff --git a/library/fileManagement.c b/library/fileManagement.c index 1096750..a0a9398 100644 --- a/library/fileManagement.c +++ b/library/fileManagement.c @@ -91,7 +91,8 @@ long int FILE_GetAvailableSpace(const char* path) /* Get the file size */ long long int FILE_GetFileSize(FILE *TheFilePointer) { -#ifdef _LARGEFILE64_SOURCE +#ifdef LARGE_FILE_SUPPORT_ENABLED + //#warning LARGE FILE SUPPORT IS ENABLED! long long int Prev = 0, TheFileSize = 0; Prev = ftello64(TheFilePointer); fseeko64(TheFilePointer, 0, SEEK_END); @@ -100,7 +101,8 @@ long long int FILE_GetFileSize(FILE *TheFilePointer) return TheFileSize; #endif -#ifndef _LARGEFILE64_SOURCE +#ifndef LARGE_FILE_SUPPORT_ENABLED + #warning LARGE FILE SUPPORT IS NOT ENABLED! long long int Prev = 0, TheFileSize = 0; Prev = ftell(TheFilePointer); fseek(TheFilePointer, 0, SEEK_END); @@ -114,7 +116,8 @@ long long int FILE_GetFileSizeFromPath(char *TheFileName) { -#ifdef _LARGEFILE64_SOURCE +#ifdef LARGE_FILE_SUPPORT_ENABLED + //#warning LARGE FILE SUPPORT IS ENABLED! if (FILE_IsFile(TheFileName) == 1) { FILE *TheFilePointer; @@ -133,7 +136,8 @@ long long int FILE_GetFileSizeFromPath(char *TheFileName) } #endif -#ifndef _LARGEFILE64_SOURCE +#ifndef LARGE_FILE_SUPPORT_ENABLED +#warning LARGE FILE SUPPORT IS NOT ENABLED! if (FILE_IsFile(TheFileName) == 1) { FILE *TheFilePointer; @@ -160,11 +164,13 @@ int FILE_IsFile(const char *TheFileName) { FILE *TheFile; - #ifdef _LARGEFILE64_SOURCE + #ifdef LARGE_FILE_SUPPORT_ENABLED + //#warning LARGE FILE SUPPORT IS ENABLED! TheFile = fopen64(TheFileName, "rb"); #endif - #ifndef _LARGEFILE64_SOURCE + #ifndef LARGE_FILE_SUPPORT_ENABLED +#warning LARGE FILE SUPPORT IS NOT ENABLED! TheFile = fopen(TheFileName, "rb"); #endif @@ -293,11 +299,13 @@ int FILE_GetStringFromFile(char * filename, char **file_content) } - #ifdef _LARGEFILE64_SOURCE + #ifdef LARGE_FILE_SUPPORT_ENABLED + //#warning LARGE FILE SUPPORT IS ENABLED! FILE *file = fopen64(filename, "rb"); #endif - #ifndef _LARGEFILE64_SOURCE + #ifndef LARGE_FILE_SUPPORT_ENABLED +#warning LARGE FILE SUPPORT IS NOT ENABLED! FILE *file = fopen(filename, "rb"); #endif diff --git a/library/openSsl.c b/library/openSsl.c index 28a8597..dc0641a 100644 --- a/library/openSsl.c +++ b/library/openSsl.c @@ -21,7 +21,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ - +#ifdef OPENSSL_ENABLED +#warning SSL ENABLED #include #include #include @@ -74,4 +75,5 @@ void configureContext(SSL_CTX *ctx) ERR_print_errors_fp(stderr); exit(EXIT_FAILURE); } -} \ No newline at end of file +} +#endif diff --git a/library/openSsl.h b/library/openSsl.h index a27958b..6503616 100644 --- a/library/openSsl.h +++ b/library/openSsl.h @@ -21,7 +21,8 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ - +#ifdef OPENSSL_ENABLED +#warning SSL ENABLED #ifndef OPENSSL_H #define OPENSSL_H @@ -43,4 +44,4 @@ void configureContext(SSL_CTX *ctx); #endif #endif /* OPENSSL_H */ - +#endif diff --git a/nbproject/Makefile-Debug.mk b/nbproject/Makefile-Debug.mk index 6b82ede..1fc9129 100644 --- a/nbproject/Makefile-Debug.mk +++ b/nbproject/Makefile-Debug.mk @@ -76,62 +76,62 @@ ${CND_DISTDIR}/${CND_CONF}/${CND_PLATFORM}/uftp: ${OBJECTFILES} ${OBJECTDIR}/ftpCommandElaborate.o: ftpCommandElaborate.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/ftpCommandElaborate.o ftpCommandElaborate.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/ftpCommandElaborate.o ftpCommandElaborate.c ${OBJECTDIR}/ftpData.o: ftpData.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/ftpData.o ftpData.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/ftpData.o ftpData.c ${OBJECTDIR}/ftpServer.o: ftpServer.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/ftpServer.o ftpServer.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/ftpServer.o ftpServer.c ${OBJECTDIR}/library/configRead.o: library/configRead.c ${MKDIR} -p ${OBJECTDIR}/library ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/configRead.o library/configRead.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/configRead.o library/configRead.c ${OBJECTDIR}/library/connection.o: library/connection.c ${MKDIR} -p ${OBJECTDIR}/library ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/connection.o library/connection.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/connection.o library/connection.c ${OBJECTDIR}/library/daemon.o: library/daemon.c ${MKDIR} -p ${OBJECTDIR}/library ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/daemon.o library/daemon.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/daemon.o library/daemon.c ${OBJECTDIR}/library/dynamicVectors.o: library/dynamicVectors.c ${MKDIR} -p ${OBJECTDIR}/library ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/dynamicVectors.o library/dynamicVectors.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/dynamicVectors.o library/dynamicVectors.c ${OBJECTDIR}/library/fileManagement.o: library/fileManagement.c ${MKDIR} -p ${OBJECTDIR}/library ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/fileManagement.o library/fileManagement.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/fileManagement.o library/fileManagement.c ${OBJECTDIR}/library/logFunctions.o: library/logFunctions.c ${MKDIR} -p ${OBJECTDIR}/library ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/logFunctions.o library/logFunctions.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/logFunctions.o library/logFunctions.c ${OBJECTDIR}/library/openSsl.o: library/openSsl.c ${MKDIR} -p ${OBJECTDIR}/library ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/openSsl.o library/openSsl.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/openSsl.o library/openSsl.c ${OBJECTDIR}/library/signals.o: library/signals.c ${MKDIR} -p ${OBJECTDIR}/library ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/signals.o library/signals.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/library/signals.o library/signals.c ${OBJECTDIR}/uFTP.o: uFTP.c ${MKDIR} -p ${OBJECTDIR} ${RM} "$@.d" - $(COMPILE.c) -g -Wall -D_LARGEFILE64_SOURCE -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/uFTP.o uFTP.c + $(COMPILE.c) -g -Wall -D_LARGE_FILE_SUPPORT_ENABLED -Ilibrary -include library/dynamicVectors.h -include library/fileManagement.h `pkg-config --cflags libcrypto` `pkg-config --cflags libssl` `pkg-config --cflags openssl` -MMD -MP -MF "$@.d" -o ${OBJECTDIR}/uFTP.o uFTP.c # Subprojects .build-subprojects: diff --git a/nbproject/configurations.xml b/nbproject/configurations.xml index 9c09f8c..948d338 100644 --- a/nbproject/configurations.xml +++ b/nbproject/configurations.xml @@ -80,7 +80,7 @@ library/fileManagement.h - _LARGEFILE64_SOURCE + _LARGE_FILE_SUPPORT_ENABLED 2