build TLS finished message
| 398 | |
| 399 | // build TLS finished message |
| 400 | void buildFinishedTLS(SSL& ssl, Finished& fin, const opaque* sender) |
| 401 | { |
| 402 | opaque handshake_hash[FINISHED_SZ]; |
| 403 | |
| 404 | ssl.useHashes().use_MD5().get_digest(handshake_hash); |
| 405 | ssl.useHashes().use_SHA().get_digest(&handshake_hash[MD5_LEN]); |
| 406 | |
| 407 | const opaque* side; |
| 408 | if ( strncmp((const char*)sender, (const char*)client, SIZEOF_SENDER) == 0) |
| 409 | side = tls_client; |
| 410 | else |
| 411 | side = tls_server; |
| 412 | |
| 413 | PRF(fin.set_md5(), TLS_FINISHED_SZ, |
| 414 | ssl.getSecurity().get_connection().master_secret_, SECRET_LEN, |
| 415 | side, FINISHED_LABEL_SZ, |
| 416 | handshake_hash, FINISHED_SZ); |
| 417 | |
| 418 | fin.set_length(TLS_FINISHED_SZ); // shorter length for TLS |
| 419 | } |
| 420 | |
| 421 | |
| 422 | // compute p_hash for MD5 or SHA-1 for TLSv1 PRF |
no test coverage detected