Exemplo n.º 1
0
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 */
}
Exemplo n.º 2
0
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 */
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
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 */
}
Exemplo n.º 5
0
/*---------------------------------------------------------------------*/
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);			
}
Exemplo n.º 6
0
/* 
Begin-Doc
Name: thr_watch_port
Description: thread handler to listen to a tcp port
Syntax: thr_watch_port(port_in_string_form)
End-Doc
*/
void *thr_watch_port(void *threadarg)
{
    int sockfd;
    int server_port;
    struct sockaddr_in cli_addr;
    unsigned int clilen;
    int newsockfd;
    char *cliaddr;

    server_port = atoi((char *)threadarg);

    Debug(("opening listener socket on port %d\n", server_port));
    syslog(LOG_DEBUG, "opening listener socket on port %d", server_port);
    sockfd = OpenListener(server_port, 10);
    if (!sockfd) {
        Error(("Unable to open listener port! (%s)\n", strerror(errno)));
        syslog(LOG_ERR, "unable to open listener port (%s)\n", strerror(errno));
        exit(1);
    }
    Debug(("opened listener socket on port %d\n", server_port));
    syslog(LOG_DEBUG, "opened listener socket on port %d", server_port);

    while (1) {
        clilen = sizeof(cli_addr);

        Debug(("waiting for socket connection\n"));
        syslog(LOG_DEBUG, "waiting for socket connection");

        newsockfd = accept(sockfd, (struct sockaddr *)&cli_addr, &clilen);

        if (newsockfd) {
            syslog(LOG_DEBUG, "got a socket connection");
            Debug(("got a socket connection\n"));
            cliaddr = clientaddr(newsockfd);

            syslog(LOG_DEBUG,
                   "got a socket connection on port %d from %s, triggering updates",
                   server_port, NullCk(cliaddr));

            if (cliaddr) {
                free(cliaddr);
            }

            mark_updated();
            close(newsockfd);
        } else {
            syslog(LOG_ERR,
                   "error accepting socket connection (%s)", strerror(errno));
        }
    }
}
Exemplo n.º 7
0
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 */
}