MCPcopy Create free account
hub / github.com/Meituan-Dianping/SQLAdvisor / deriveTLSKeys

Method deriveTLSKeys

extra/yassl/src/yassl_int.cpp:1081–1096  ·  view source on GitHub ↗

derive mac, write, and iv keys for server and client

Source from the content-addressed store, hash-verified

1079
1080// derive mac, write, and iv keys for server and client
1081void 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

Callers 1

ProcessMethod · 0.80

Calls 3

PRFFunction · 0.85
get_parmsMethod · 0.80
get_bufferMethod · 0.45

Tested by

no test coverage detected