create TLSv1 master secret
| 1019 | |
| 1020 | // create TLSv1 master secret |
| 1021 | void SSL::makeTLSMasterSecret() |
| 1022 | { |
| 1023 | opaque seed[SEED_LEN]; |
| 1024 | |
| 1025 | memcpy(seed, secure_.get_connection().client_random_, RAN_LEN); |
| 1026 | memcpy(&seed[RAN_LEN], secure_.get_connection().server_random_, RAN_LEN); |
| 1027 | |
| 1028 | PRF(secure_.use_connection().master_secret_, SECRET_LEN, |
| 1029 | secure_.get_connection().pre_master_secret_, |
| 1030 | secure_.get_connection().pre_secret_len_, |
| 1031 | master_label, MASTER_LABEL_SZ, |
| 1032 | seed, SEED_LEN); |
| 1033 | |
| 1034 | deriveTLSKeys(); |
| 1035 | } |
| 1036 | |
| 1037 | |
| 1038 | // derive mac, write, and iv keys for server and client, see page 34, 6.2.2 |