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

Function buildMD5

extra/yassl/src/handshake.cpp:166–191  ·  view source on GitHub ↗

calculate MD5 hash for finished

Source from the content-addressed store, hash-verified

164
165// calculate MD5 hash for finished
166void buildMD5(SSL& ssl, Finished& fin, const opaque* sender)
167{
168
169 opaque md5_result[MD5_LEN];
170 opaque md5_inner[SIZEOF_SENDER + SECRET_LEN + PAD_MD5];
171 opaque md5_outer[SECRET_LEN + PAD_MD5 + MD5_LEN];
172
173 const opaque* master_secret =
174 ssl.getSecurity().get_connection().master_secret_;
175
176 // make md5 inner
177 memcpy(md5_inner, sender, SIZEOF_SENDER);
178 memcpy(&md5_inner[SIZEOF_SENDER], master_secret, SECRET_LEN);
179 memcpy(&md5_inner[SIZEOF_SENDER + SECRET_LEN], PAD1, PAD_MD5);
180
181 ssl.useHashes().use_MD5().get_digest(md5_result, md5_inner,
182 sizeof(md5_inner));
183
184 // make md5 outer
185 memcpy(md5_outer, master_secret, SECRET_LEN);
186 memcpy(&md5_outer[SECRET_LEN], PAD2, PAD_MD5);
187 memcpy(&md5_outer[SECRET_LEN + PAD_MD5], md5_result, MD5_LEN);
188
189 ssl.useHashes().use_MD5().get_digest(fin.set_md5(), md5_outer,
190 sizeof(md5_outer));
191}
192
193
194// calculate SHA hash for finished

Callers 1

buildFinishedFunction · 0.85

Calls 2

get_digestMethod · 0.80
set_md5Method · 0.80

Tested by

no test coverage detected