Advertisement
Guest User

Untitled

a guest
Jun 29th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.18 KB | None | 0 0
  1. int sec_init(int socket, int verbose, int reliable, int secure)
  2. {
  3.  
  4.     char get_key[] = "get public key";
  5.     int length = strlen( get_key );
  6.     char *public_key = calloc(PUB_KEY_SIZE,sizeof(char));
  7.     int public_len = PUB_KEY_SIZE;
  8.     int i;
  9.     char out[ENCRYPTED_KEY_SIZE];
  10.     char *server_response = calloc(MAX_DATA,sizeof(char));
  11.    
  12.     frag_init();
  13.  
  14.     if(!secure)
  15.         return 1;
  16.  
  17.  
  18.     frag_send_data(socket, get_key, length, verbose, reliable);
  19.     frag_receive_data(socket, &public_key, &public_len, verbose, reliable);
  20.     /* Generate a string of 160 random bits for use as the secret key.  */
  21.     time_t seconds;
  22.     time(&seconds);
  23.     srand((unsigned int) seconds);
  24.     for (i = 0; i < SECRET_KEY_SIZE; i++)
  25.         secret_key[i] = (unsigned char) rand();
  26.  
  27.     sec_pk_encrypt((char*) &secret_key[SECRET_KEY_SIZE], &out[ENCRYPTED_KEY_SIZE], &public_key[public_len]);
  28.     frag_send_data(socket, out, ENCRYPTED_KEY_SIZE, verbose, reliable);
  29.  
  30.     int server_len;
  31.     frag_receive_data(socket, &server_response, &server_len, verbose, reliable);
  32.     fprintf(stderr, "Received server resp\n");
  33.     if (!strcmp(server_response, "OK")) return 1;
  34.     return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement