134 |
uint8 key_block[48]; |
uint8 key_block[48]; |
135 |
|
|
136 |
/* Construct pre-master secret */ |
/* Construct pre-master secret */ |
137 |
memcpy(pre_master_secret, client_random, 24); |
memcpy(pre_master_secret, client_random, 24); |
138 |
memcpy(pre_master_secret + 24, server_random, 24); |
memcpy(pre_master_secret + 24, server_random, 24); |
139 |
|
|
140 |
/* Generate master secret and then key material */ |
/* Generate master secret and then key material */ |
141 |
sec_hash_48(master_secret, pre_master_secret, client_random, server_random, 'A'); |
sec_hash_48(master_secret, pre_master_secret, client_random, server_random, 'A'); |
142 |
sec_hash_48(key_block, master_secret, client_random, server_random, 'X'); |
sec_hash_48(key_block, master_secret, client_random, server_random, 'X'); |
143 |
|
|
144 |
/* First 16 bytes of key material is MAC secret */ |
/* First 16 bytes of key material is MAC secret */ |
145 |
memcpy(sec_sign_key, key_block, 16); |
memcpy(sec_sign_key, key_block, 16); |