masterFromPreMasterSecret generates the master secret from the pre-master secret. See RFC 5246, Section 8.1.
(version uint16, suite *cipherSuite, preMasterSecret, clientRandom, serverRandom []byte)
| 106 | // masterFromPreMasterSecret generates the master secret from the pre-master |
| 107 | // secret. See RFC 5246, Section 8.1. |
| 108 | func masterFromPreMasterSecret(version uint16, suite *cipherSuite, preMasterSecret, clientRandom, serverRandom []byte) []byte { |
| 109 | seed := make([]byte, 0, len(clientRandom)+len(serverRandom)) |
| 110 | seed = append(seed, clientRandom...) |
| 111 | seed = append(seed, serverRandom...) |
| 112 | |
| 113 | masterSecret := make([]byte, masterSecretLength) |
| 114 | prfForVersion(version, suite)(masterSecret, preMasterSecret, masterSecretLabel, seed) |
| 115 | return masterSecret |
| 116 | } |
| 117 | |
| 118 | // keysFromMasterSecret generates the connection keys from the master |
| 119 | // secret, given the lengths of the MAC key, cipher key and IV, as defined in |
no test coverage detected
searching dependent graphs…