Exemplo n.º 1
0
int main(int argc, char *argv[])
{
    int pkfd,skfd;
    unsigned char pk[crypto_box_PUBLICKEYBYTES];
    unsigned char sk[crypto_box_SECRETKEYBYTES];
    if(argc!=3) err_usage();
    pkfd = open_excl(argv[1]); if(pkfd==-1) err_open(argv[1]);
    skfd = open_excl(argv[2]); if(skfd==-1) err_open(argv[2]);
    if(crypto_box_keypair(pk,sk)!=0) err_keypair();
    if(write(pkfd,pk,sizeof(pk))!=sizeof(pk)) err_write(argv[1]);
    if(write(skfd,sk,sizeof(sk))!=sizeof(sk)) err_write(argv[2]);
    return 0;
}
Exemplo n.º 2
0
void CreateLCObjects()
{
	int n;
	int obj;
	char c;

	for(obj=1; obj<=app_num_objects; obj++)
	{
		Print("+ Encoding Object #%-2d:   ",obj);

		n=create_lc_object(obj);
		if(n!=0)
		{
			Print("Error!     \n");
			if(n==-1) err_seek(tempname1);
			if(n==-2) err_read(tempname1);
			if(n==-3) err_mem();
			if(n==-4) err_write(tempname2);
			if(n==-5) err_lcobjhdr(tempname1);
		}

		c = app_obj_seekattr[obj] ? '*':' ';

		if(!quiet)
		{
			printf("[û]  ");
			if(!verbose) printf("(%1.1f%%)\n", ((float)(obj_new_size+0.01)/(float)(obj_old_size+0.01))*100);
			else
			{	  		 printf("Old=%7d,   New=%7d,   (%1.1f%%)  (%s)%c\n", obj_old_size,obj_new_size, ((float)(obj_new_size+0.01)/(float)(obj_old_size+0.01))*100, encodetype[app_enc_status], c);
			if(verbxtra) printf("                               ** %s **,   ** %s **,   %7d - fixups\n", app_obj_iscode ? "CODE":"DATA", app_obj_is32bit ? "32bit":"16bit", app_obj_seekattr[obj]);
			}
		}
	}
}
Exemplo n.º 3
0
void CreateLCHeader()
{
	int n;

	Print("+ Creating LC Header :   ");
	n=create_lc_header();
	if(n!=0)
	{
		Print("Error!     \n");
		if(n==-1)
			err_seek(tempname1);
		if(n==-2)
			err_read(tempname1);
		if(n==-3)
			err_write(tempname2);
		if(n==-4)
			err_linker(tempname1);
		if(n==-5)
			err_objects(tempname1);
	}
	else
	{
		if(!verbose)
			Print("Ok.\n");
		else
			Print("Ok.  (%d Objects)\n",app_num_objects);
	}
}
Exemplo n.º 4
0
/*
** close_output
**
** close output file, if it not stdout
*/
VOID close_output( VOID )
{
    if ( outfile ) {

        if ( (return_code == RC_OK)
             || (return_code == RC_WARN)
             || debug )
        {

            status_msg( "Writting output" );
            errno = 0;
            outfclose( outfile );
            if ( errno )
                err_write( outfile );
            status_clear();

        } else {

            status_msg( "No output written" );
            status_lf();
            outfclear( outfile );

        }
    }
}
Exemplo n.º 5
0
int main(int argc, char *argv[])
{
    int skfd;
    unsigned char sk[crypto_secretbox_KEYBYTES];
    if(argc!=2) err_usage();
    skfd = open_excl(argv[1]); if(skfd==-1) err_open(argv[1]);
    randombytes(sk,crypto_secretbox_KEYBYTES);
    if(write(skfd,sk,sizeof(sk))!=sizeof(sk)) err_write(argv[1]);
    return 0;
}
Exemplo n.º 6
0
/*
** outch
*/
int outch( char ch )
{
    int this_ch = EOF;
    if ( !fatal_error ) {

        if ( suppress_output )
            this_ch = ch;
        else
            this_ch = fputc( ch, outfile );
        if ( this_ch == EOF )
             err_write( outfile );
   }

    return ( this_ch );
}
Exemplo n.º 7
0
/*
** outstr
*/
int outstr( CONSTRPTR str )
{
    int ch_written = 0;

    if ( suppress_output )
        ch_written = strlen( str );
    else {

        ch_written = outfputs( str, outfile );
        if ( ch_written == EOF )
            err_write( outfile );

    }

    return( ch_written );
}
Exemplo n.º 8
0
void CreateLCFixups()
{
	int n;

	Print("+ Encoding LC Fixups :   ");
	n=create_lc_fixups();
	if(n!=0)
	{
		Print("Error!\n");
		if(n==-1) err_seek(tempname1);
		if(n==-2) err_read(tempname1);
		if(n==-3) err_mem();
		if(n==-4) err_write(tempname2);
	}

	if(quiet!=TRUE)
	{
		printf("[û]  ");
		if(!verbose) printf("(%1.1f%%)\n", ((float)(obj_new_size+0.01)/(float)(obj_old_size+0.01))*100);
		else	     printf("Old=%7d,   New=%7d,   (%1.1f%%)  (%s)\n", obj_old_size,obj_new_size, ((float)(obj_new_size+0.01)/(float)(obj_old_size+0.01))*100, encodetype[app_enc_status]);
	}
}
Exemplo n.º 9
0
void arcit(char *inname)
{
  struct _fizhdr fh;
  char *p;
  long pos;

  if ((infile=fopen(inname, "rb"))==NULL)
    err_open(inname);

  printf("archiving %s", inname);
  fflush(stdout);

  origsize=compsize=unpackable=0;
  
  crc=INIT_CRC;
  
  pos=ftell(outfile);
  
  if (fwrite((char *)&fh, sizeof(fh), 1, outfile) != 1)
    err_write("archive");

  /* strip off the path specification */

  if ((p=strrchr(inname, '\\'))==NULL)
    p=inname;
  else p++;

  if (fwrite(p, strlen(p), 1, outfile) != 1)
    err_write("archive");

  
  encode();

  if (unpackable)
  {
    printf("storing");
    fflush(stdout);

    fh.method=0;
    fseek(outfile, pos+sizeof(fh)+strlen(p), SEEK_SET);
    fseek(infile, 0L, SEEK_SET);
    store();
  }
  else
  {
    fh.method=1;
  }

  fh.id=FIZ_ID;
  fh.fnlen=strlen(p);
  fh.origsize=origsize;
  fh.compsize=compsize;
  fh.crc = crc;
  get_fdt(fileno(infile), &fh.date);

  fseek(outfile, pos, SEEK_SET);

  if (fwrite((char *)&fh, sizeof(fh), 1, outfile) != 1)
    err_write("archive");

  fseek(outfile, 0L, SEEK_END);

  fclose(infile);

  printf("\n");
}
Exemplo n.º 10
0
int main(int argc, char *argv[])
{
    int sockfd, newsockfd, portno;
    socklen_t clilen;
    char buffer[RCVLEN];
    char sendbuff[SNDLEN];
    struct sockaddr_in serv_addr, cli_addr;
    int n,i,j,newtargetsockfd;
    int yes = 1;

    // file descriptor bookkeeping
    int fdmax;
    fd_set master;
    fd_set read_fds;
    int connections[32][2] = {0}; // length of a fd_set
    
    if (argc < 2) {
        fprintf(stderr,"error, no port provided\n");
        exit(1);
    }

    // set up listener socket
    sockfd = err_socket(AF_INET, SOCK_STREAM, 0);
    bzero((char *) &serv_addr, sizeof(serv_addr));
    portno = atoi(argv[1]);
    serv_addr.sin_family = AF_INET;
    serv_addr.sin_addr.s_addr = INADDR_ANY;
    serv_addr.sin_port = htons(portno);
    setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(int));
    if (bind(sockfd, (struct sockaddr *) &serv_addr,
            sizeof(serv_addr)) < 0) 
            err_exit("error on binding");

    // listen only supports up to 5 backlog
    listen(sockfd,32);
    fdmax = sockfd;
    connections[0][0] = sockfd;
    connections[0][1] = sockfd;
    FD_SET(sockfd, &master);

    fprintf(stderr,"starting server \n");
    int loop = 0;
    for (;;){

        read_fds = master;
        if (select(fdmax+1, &read_fds, NULL, NULL, NULL) == -1)
            err_exit("error on select");

        for(i = 0; i <= 32; i++){
            if (connections[i][0] && connections[i][0] < 32) {
                if (!FD_ISSET(connections[i][0],&read_fds))
                    continue;
                fprintf(stderr,"checking connection...\n");
                if (connections[i][0] == sockfd){ // handle new connections

                    fprintf(stderr,"found new connection\n");
                    clilen = sizeof(cli_addr);
                    newsockfd = accept(sockfd, 
                                (struct sockaddr *) &cli_addr, 
                                &clilen);
                    if (newsockfd < 0) 
                        err_exit("error on accept");

                    // add new fd to connections list
                    for (j = 0; j < 32; j++){
                        if (!connections[j][0]){
                            connections[j][0] = newsockfd;
                            connections[j][1] = newsockfd;
                            break;
                        }
                    }

                    FD_SET(newsockfd, &master);
                    if (newsockfd > fdmax)
                        fdmax = newsockfd;
                }
                else { // handle each client
                    fprintf(stderr,"handling client %d\n",connections[i][0]);
                    bzero(buffer,256);
                    err_read(connections[i][0],buffer,RCVLEN-1);

                    if (strcmp(buffer,"LIST\n") == 0){ // list all connected clients
                        sprintf(buffer,"you are client %d\n",connections[i][0]);
                        err_write(connections[i][0],buffer,strlen(buffer));
                        err_write(connections[i][0],"listing all connections...\n",27);
                        for (j = 0; j < 32; j++){
                            if (connections[j][0] && connections[j][0] != sockfd){
                                sprintf(buffer,"client found: %d\n",connections[j][0]);
                                err_write(connections[i][0],buffer, strlen(buffer));
                            }
                        }
                        n = err_write(connections[i][0],"done listing connections\n",25);
                    }
                    else if (sscanf(buffer,"CONNECT TO %d\n",&newtargetsockfd) > 0){ // set up forwarding
                        fprintf(stderr,"connecting client %d to client %d\n",connections[i][0],newtargetsockfd);

                        for(j = 0; j < 32; j++){
                            if (connections[j][0] == newtargetsockfd){
                                connections[i][1] = newtargetsockfd;
                                sprintf(buffer,"connected to client %d\n",newtargetsockfd);
                                err_write(connections[i][0],buffer,strlen(buffer));
                                j = 40;
                                break;
                            }
                        }
                        if (j != 40){
                            err_write(connections[i][0],"could not connect to client\n",28);
                        }
                    }
                    else{ // read from one client, and write to another (input/output clients could be the same)
                        printf("Here is the message: %s\n",buffer);
                        err_write(connections[i][0],"message recieved\n",17);

                        sprintf(sendbuff,"recieved message from client %d: %s\n",connections[i][0],buffer);
                        err_write(connections[i][1],sendbuff,strlen(sendbuff));
                    }
                }
            }
        }// loop through file descriptors
    }

    close(newsockfd);
    close(sockfd);
    return 0; 
}