Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int sec_init(int socket, int verbose, int reliable, int secure)
- {
- char get_key[] = "get public key";
- int length = strlen( get_key );
- char *public_key = calloc(PUB_KEY_SIZE,sizeof(char));
- int public_len = PUB_KEY_SIZE;
- int i;
- char out[ENCRYPTED_KEY_SIZE];
- char *server_response = calloc(MAX_DATA,sizeof(char));
- frag_init();
- if(!secure)
- return 1;
- frag_send_data(socket, get_key, length, verbose, reliable);
- frag_receive_data(socket, &public_key, &public_len, verbose, reliable);
- /* Generate a string of 160 random bits for use as the secret key. */
- time_t seconds;
- time(&seconds);
- srand((unsigned int) seconds);
- for (i = 0; i < SECRET_KEY_SIZE; i++)
- secret_key[i] = (unsigned char) rand();
- sec_pk_encrypt((char*) &secret_key[SECRET_KEY_SIZE], &out[ENCRYPTED_KEY_SIZE], &public_key[public_len]);
- frag_send_data(socket, out, ENCRYPTED_KEY_SIZE, verbose, reliable);
- int server_len;
- frag_receive_data(socket, &server_response, &server_len, verbose, reliable);
- fprintf(stderr, "Received server resp\n");
- if (!strcmp(server_response, "OK")) return 1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement