Finished Message
struct {
opaque verify_data[Hash.length];
} Finished;
verify_data = HMAC(
key = HKDF-Expand-Label(BaseKey, "finished", "", Hash.length),
msg = Transcript-Hash(Handshake Context, Certificate, CertificateVerify)
)
For the server Finished, BaseKey = server_handshake_traffic_secret.
After the client verifies the Finished, it sends its own Finished.
After both Finished messages, the handshake is complete and application traffic keys activate.