derive mac, write, and iv keys for server and client
| 1079 | |
| 1080 | // derive mac, write, and iv keys for server and client |
| 1081 | void SSL::deriveTLSKeys() |
| 1082 | { |
| 1083 | int length = 2 * secure_.get_parms().hash_size_ + |
| 1084 | 2 * secure_.get_parms().key_size_ + |
| 1085 | 2 * secure_.get_parms().iv_size_; |
| 1086 | opaque seed[SEED_LEN]; |
| 1087 | input_buffer key_data(length); |
| 1088 | |
| 1089 | memcpy(seed, secure_.get_connection().server_random_, RAN_LEN); |
| 1090 | memcpy(&seed[RAN_LEN], secure_.get_connection().client_random_, RAN_LEN); |
| 1091 | |
| 1092 | PRF(key_data.get_buffer(), length, secure_.get_connection().master_secret_, |
| 1093 | SECRET_LEN, key_label, KEY_LABEL_SZ, seed, SEED_LEN); |
| 1094 | |
| 1095 | storeKeys(key_data.get_buffer()); |
| 1096 | } |
| 1097 | |
| 1098 | |
| 1099 | // store mac, write, and iv keys for client and server |
no test coverage detected