int main(int count, char *strings[]) { SSL_CTX *ctx; int server; char *portnum; if ( count != 2 ) { printf("Usage: %s <portnum>\n", strings[0]); exit(0); } SSL_library_init(); portnum = strings[1]; ctx = InitServerCTX(); /* initialize SSL */ LoadCertificates(ctx, "cert.pem", "key.pem"); /* load certs */ server = OpenListener(atoi(portnum)); /* create server socket */ while (1) { struct sockaddr_in addr; socklen_t len = sizeof(addr); SSL *ssl; int client = accept(server, (struct sockaddr*)&addr, &len); /* accept connection as usual */ printf("Connection: %s:%d\n",inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); ssl = SSL_new(ctx); /* get new SSL state with context */ SSL_set_fd(ssl, client); /* set connection socket to SSL state */ Servlet(ssl); /* service connection */ } close(server); /* close server socket */ SSL_CTX_free(ctx); /* release context */ }
int main(int argc, char *argv[]) { remove("bankecents.txt"); SSL_CTX *ctx; int server; const char * localport; const char * localhost; if ( argc < 2 ){ printf("Usage:server localhost localport \n"); exit(0); } SSL_library_init(); localhost = argv[1]; localport = argv[2]; ctx = InitServerCTX(); /* initialize SSL */ LoadCertificates(ctx, "mycert2.pem", "mycert2.pem"); /* load certs */ server = OpenListener(localhost, localport); /* create server socket */ while (1) { struct sockaddr_in addr; socklen_t len = sizeof(addr); SSL *ssl; int client = accept(server, (struct sockaddr*)&addr, &len); /* accept connection as usual */ printf("Connection: %s:%d\n",inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); ssl = SSL_new(ctx); /* get new SSL state with context */ SSL_set_fd(ssl, client); /* set connection socket to SSL state */ Servlet(ssl); /* service connection */ } close(server); /* close server socket */ SSL_CTX_free(ctx); /* release context */ }
void *main_server(void* unused) { SSL_CTX *ctx; ctx = InitServerCTX();/* initialize SSL */ LoadCertificates(ctx, "ca.crt", "ca.pem");/* load certs */ SSL_CTX_set_cipher_list(ctx, "ECDH-ECDSA-AES128-GCM-SHA256"); int server = OpenListener(port);/* create server socket */ while (1) { struct sockaddr_in addr; unsigned int len = sizeof(addr); SSL *ssl; int client = accept(server, (struct sockaddr*) &addr, &len);/* accept connection as usual */ ssl = SSL_new(ctx); /* get new SSL state with context */ SSL_set_fd(ssl, client);/* set connection socket to SSL state */ Servlet(client, ssl);/* service connection */ } close(server);/* close server socket */ SSL_CTX_free(ctx);/* release context */ return NULL; }
int main(int argc , char *argv[]){ int socket_desc; int new_socket; int socklen; int* new_sock; struct sockaddr_in server; struct sockaddr_in client; char* message; struct ThreadData masterThread; struct User* user_List = malloc(sizeof(struct User*)); masterThread.users = user_List; SSL_CTX *ctx; SSL_library_init(); ctx = InitServerCTX(); LoadCertificates(ctx, "cert.pem", "key.pem"); socket_desc = socket(AF_INET , SOCK_STREAM , 0); if (socket_desc == -1){ printf("Could not create socket"); } server.sin_family = AF_INET; server.sin_addr.s_addr = INADDR_ANY; int port = 5900; server.sin_port = htons( port ); int user_num = 0; while( bind(socket_desc,(struct sockaddr *)&server , sizeof(server)) < 0){ puts("Bind failed"); sleep(10); } puts("Bind done at"); printf("%d\n", port); listen(socket_desc , 3); puts("Waiting for incoming connections..."); socklen = sizeof(struct sockaddr_in); while( (new_socket = accept(socket_desc, (struct sockaddr *)&client, (socklen_t*)&socklen)) ){ puts("Connection accepted"); puts("Initiating thread"); SSL* ssl; ssl = SSL_new(ctx); SSL_set_fd(ssl, new_socket); pthread_t sniffer_thread; new_sock = malloc(1); *new_sock = new_socket; masterThread.new_socket = new_sock; masterThread.user = &user_num; masterThread.ssl = ssl; if( pthread_create( &sniffer_thread , NULL , connection_handler , &masterThread) < 0){ perror("Could not create thread"); return 1; } puts("Handel user with thread"); } if (new_socket<0){ perror("Failed"); return 1; } return 0; }
int main(int count, char *strings[]) { SSL_CTX *ctx; int server; char *portnum; if(!isRoot()) { printf("This program must be run as root/sudo user!!\n"); exit(0); } if ( count != 2 ) { printf("Usage: %s <portnum>\n", strings[0]); exit(0); } SSL_library_init(); portnum = strings[1]; ctx = InitServerCTX(); /* initialize SSL */ //checking if cert and key are availble or not. FILE *f,*g; f = fopen("/home/shagun/ca/certs/server.cert.pem","r"); if(f==NULL) { printf("Certificate doesn't exist. Aborting now.\n"); exit(0); } fclose(f); g = fopen("/home/shagun/ca/private/server.key.pem","r"); if(g==NULL) { printf("Key doesn't exist. Aborting now.\n"); exit(0); } fclose(g); LoadCertificates(ctx, "/home/shagun/ca/certs/server.cert.pem", "/home/shagun/ca/private/server.key.pem"); /* load certs */ server = OpenListener(atoi(portnum)); /* create server socket */ while (1) { struct sockaddr_in addr; socklen_t len = sizeof(addr); SSL *ssl; int client = accept(server, (struct sockaddr*)&addr, &len); /* accept connection as usual */ printf("Connection: %s:%d\n",inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); ssl = SSL_new(ctx); /* get new SSL state with context */ SSL_set_fd(ssl, client); /* set connection socket to SSL state */ Servlet(ssl); /* service connection */ } close(server); /* close server socket */ SSL_CTX_free(ctx); /* release context */ }
int startServer(const unsigned int port) { int serverSocket; int clientSocket; char clientIP[16]; unsigned int clientPort; SSL_CTX *ctx; int pid; //Init SSL library SSL_library_init(); //Init SSL socket ctx = InitServerCTX(); //Load certificates LoadCertificates(ctx, "Certificates/cert.pem", "Certificates/key.pem"); serverSocket = newTCPServerSocket4("0.0.0.0",port,5); if(serverSocket == -1) { error(errno,"Can't create Socket"); return FALSE; } debug(4,"Server Socket Created"); while(TRUE) { clientSocket = waitConnection4(serverSocket,clientIP,&clientPort); if(clientSocket == -1) { debug(1,"%s","ERROR: Cannot get Client Socket"); continue; } debug(2,"Connected Client %s:%u",clientIP,clientPort); pid = fork(); if(pid == -1) { debug(0,"Can't Fork!"); close(clientSocket); continue; } else if(pid == 0 ) { //Create secure connection // Soy el Hijo. clientProccess(ctx, clientSocket); } else if (pid > 0 ) { // Soy el Padre close(clientSocket); } } return TRUE; }
/*---------------------------------------------------------------------*/ int main(int count, char *strings[]) { pthread_t threads[NUM_THREADS]; /* Arreglo de hilos */ struct thread_data thread_data_array[NUM_THREADS]; int t=0; int rc; SSL_CTX *ctx; int server; char *portnum; SSL_library_init(); if ( count != 2 ) { printf("Uso: %s <portnum>\n", strings[0]); exit(0); } portnum = strings[1]; ctx = InitServerCTX(); LoadCertificates(ctx, "serv.pem", "serv.key"); server = OpenListener(atoi(portnum)); printf("Esperando por conexiones [%d] \n", server); printf("Inicia a aceptar conexiones \n"); while (1) { struct sockaddr_in addr; SSL *ssl; int len = sizeof(addr); int client = accept(server, (struct sockaddr*)&addr, &len); printf("Connection: %d:%d\n", inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, NULL); if (!SSL_CTX_load_verify_locations(ctx, "cacert.pem", NULL)) { fprintf(stderr,"Certificado Invalido\n"); ERR_print_errors_fp(stderr); exit(1); } /*Se crea contexto*/ ssl = SSL_new(ctx); SSL_set_fd(ssl, client); /*Se da numero de pthread */ t++; /*Se le da el id del thread al thread */ thread_data_array[t].thread_id = t; /*Se le da el asigna el contexto de la conexion al thread */ thread_data_array[t].message = ssl; /*Se crea el hilo y se le manda la estructura rellenada previamente */ rc = pthread_create(&threads[t], NULL, Servlet, (void *) &thread_data_array[t]); } close(server); SSL_CTX_free(ctx); }
SSL_CTX* initialize_SSL(uint16_t server_port, uint16_t max_clients, char* module_name) { SSL_CTX *ctx; mysyslog(LOG_INFO, "%s initing..\n", module_name); ext_server_port = server_port; ext_max_clients = max_clients; strcpy(ext_module_name, module_name); memset(used_ports,0,max_clients*sizeof(struct used_port)); if((ctx = InitServerCTX()) == NULL) /* initialize SSL */ { mysyslog(LOG_ERR,"Error while creating ctx\n"); abort(); } return ctx; }
int main(int count, char *strings[]) { SSL_CTX *ctx; int server; char *portnum; char buf[1024]; char reply[1024]; int recvlen = 0; struct sockaddr_in remaddr; /* remote address */ socklen_t addrlen = sizeof(remaddr); if(!isRoot()) { printf("This program must be run as root/sudo user!!"); exit(0); } if ( count != 2 ) { printf("Usage: %s <portnum>\n", strings[0]); exit(0); } SSL_library_init(); portnum = strings[1]; ctx = InitServerCTX(); /* initialize SSL */ char cert[] = "mycert.pem"; LoadCertificates(ctx, cert, cert); /* load certs */ server = OpenListener(atoi(portnum)); /* create server socket */ while (1) { struct sockaddr_in addr; socklen_t len = sizeof(addr); SSL *ssl; recvlen = 0; //int client = accept(server, (struct sockaddr*)&addr, &len); /* accept connection as usual */ while(recvlen == 0) recvlen = recvfrom(server, buf, 1024, 0, (struct sockaddr *)&remaddr, &addrlen); printf("Connection: %s:%d\n",inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); ssl = SSL_new(ctx); /* get new SSL state with context */ SSL_set_fd(ssl, server); /* set connection socket to SSL state */ Servlet(ssl); /* service connection */ } close(server); /* close server socket */ SSL_CTX_free(ctx); /* release context */ }
void PeerConnectionListener::run(int portNum){ SSL_CTX *ctx; int server; SSL_library_init(); ctx = InitServerCTX(); /* initialize SSL */ LoadCertificates(ctx, "cert.pem", "key.pem"); /* load certs */ server = OpenListener(portNum); /* create server socket */ while(1){ struct sockaddr_in addr; socklen_t len = sizeof(addr); SSL *ssl; qDebug() << "listening"; int client = accept(server, (struct sockaddr*)&addr, &len); /* accept connection as usual */ printf("Connection: %s:%d\n",inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); ssl = SSL_new(ctx); /* get new SSL state with context */ SSL_set_fd(ssl, client); /* set connection socket to SSL state */ Servlet(ssl); /* service connection */ } close(server); /* close server socket */ qDebug() << "server socket closed"; SSL_CTX_free(ctx); /* release context */ qDebug() << "context freed"; }
int main(int count, char *strings[]) { SSL_CTX *ctx; int server,err; char *portnum; char *msg = "sagar"; printf("1"); if(!isRoot()) { printf("This program must be run as root/sudo user!!"); exit(0); } if ( count != 2 ) { printf("Usage: %s <portnum>\n", strings[0]); exit(0); } printf("12"); SSL_library_init(); portnum = strings[1]; ctx = InitServerCTX(); /* initialize SSL */ LoadCertificates(ctx, "mycert.pem", "mycert.pem"); /* load certs */ server = OpenListener(atoi(portnum)); /* create server socket */ while (1) { struct sockaddr_in addr; socklen_t len = sizeof(addr); SSL *ssl,*ssl1; int client = accept(server, (struct sockaddr*)&addr, &len); /* accept connection as usual */ printf("Connection: %s:%d\n",inet_ntoa(addr.sin_addr), ntohs(addr.sin_port)); ssl = SSL_new(ctx); /* get new SSL state with context */ SSL_set_fd(ssl, client); /* set connection socket to SSL state */ Servlet(ssl); // ssl1 = SSL_new(ctx); /* get new SSL state with context */ //SSL_set_fd(ssl1, client); /* set connection socket to SSL state */ // err=SSL_write(ssl1,msg,strlen(msg)); //RETURN_SSL(err); // Servlet(ssl1); //tostring(a,p); //printf("%s %d\n",a,p); //printf("%s",has1); // //hash(p); printf("22"); /* service connection */ } close(server); /* close server socket */ SSL_CTX_free(ctx); /* release context */ }