Hi All,
I have been able to complete handshake till client_finished message. However, i am a little confused in client_finished message. Here is what i understand:
client finished message as given in RFC draft, is:
<snip>
enum { client(0x434C4E54), server(0x53525652) } Sender;
struct {
opaque md5_hash[16];
opaque sha_hash[20];
} Finished;
md5_hash MD5(master_secret + pad2 +
MD5(handshake_messages + Sender +
master_secret + pad1));
sha_hash SHA(master_secret + pad2 +
SHA(handshake_messages + Sender +
master_secret + pad1));
handshake_messages All of the data from all handshake messages
up to but not including this message. This
is only data visible at the handshake layer
and does not include record layer headers.
</snip>
However, i am not able to understand what they mean by handshake_messages
Is it:
client_random_number sent in client_hello message [28] +
server_random_number received in server_hello_message [28] +
client_random_number sent in client_key_exchange [48 bits]
???
Also, to form a md5 hash, shall i use:
<snip>
MD5_CTX ctx;
MD5_Init(&ctx);
and repeat
MD5_Update(&ctx,<handshake_messages>,length of handshake_messages);
till i exhaust all messages
</snip>
Is PRF function in TLS easier than this, because, i read somewhere that, in TLS, we have:
master secret = PRF(server random number, client random number, pre master secret)
key_material = PRF(master secret, client random number, server random
number)
Please advice me if there is any tls library function that finds Pseudo Random (PRF?)
Thanks and Regards,
Suchindra Chandrahas
Boardwalk for $500? In 2007? Ha!
Play Monopoly Here and Now (it's updated for today's economy) at Yahoo! Games.