tls-crypto: Rename methods to calculate finished message

Instead of the version number use "legacy" for the one for earlier TLS
versions.
This commit is contained in:
Tobias Brunner
2021-02-12 11:45:44 +01:00
parent f116a4823f
commit 2e1c0a2776
4 changed files with 17 additions and 14 deletions
+3 -3
View File
@@ -1782,7 +1782,7 @@ METHOD(tls_crypto_t, verify_handshake, bool,
return verify(this, key, reader, this->handshake); return verify(this, key, reader, this->handshake);
} }
METHOD(tls_crypto_t, calculate_finished, bool, METHOD(tls_crypto_t, calculate_finished_legacy, bool,
private_tls_crypto_t *this, char *label, char out[12]) private_tls_crypto_t *this, char *label, char out[12])
{ {
chunk_t seed; chunk_t seed;
@@ -1804,7 +1804,7 @@ METHOD(tls_crypto_t, calculate_finished, bool,
return TRUE; return TRUE;
} }
METHOD(tls_crypto_t, calculate_finished_tls13, bool, METHOD(tls_crypto_t, calculate_finished, bool,
private_tls_crypto_t *this, bool is_server, chunk_t *out) private_tls_crypto_t *this, bool is_server, chunk_t *out)
{ {
chunk_t finished_key, finished_hash; chunk_t finished_key, finished_hash;
@@ -2121,8 +2121,8 @@ tls_crypto_t *tls_crypto_create(tls_t *tls, tls_cache_t *cache)
.verify = _verify, .verify = _verify,
.sign_handshake = _sign_handshake, .sign_handshake = _sign_handshake,
.verify_handshake = _verify_handshake, .verify_handshake = _verify_handshake,
.calculate_finished_legacy = _calculate_finished_legacy,
.calculate_finished = _calculate_finished, .calculate_finished = _calculate_finished,
.calculate_finished_tls13 = _calculate_finished_tls13,
.derive_secrets = _derive_secrets, .derive_secrets = _derive_secrets,
.derive_handshake_keys = _derive_handshake_keys, .derive_handshake_keys = _derive_handshake_keys,
.derive_app_keys = _derive_app_keys, .derive_app_keys = _derive_app_keys,
+4 -3
View File
@@ -525,7 +525,8 @@ struct tls_crypto_t {
* @param out buffer to write finished data to * @param out buffer to write finished data to
* @return TRUE if calculation successful * @return TRUE if calculation successful
*/ */
bool (*calculate_finished)(tls_crypto_t *this, char *label, char out[12]); bool (*calculate_finished_legacy)(tls_crypto_t *this, char *label,
char out[12]);
/** /**
* Calculate the data of a TLS finished message. * Calculate the data of a TLS finished message.
@@ -533,8 +534,8 @@ struct tls_crypto_t {
* @param out buffer to write finished data to * @param out buffer to write finished data to
* @return TRUE if calculation successful * @return TRUE if calculation successful
*/ */
bool (*calculate_finished_tls13)(tls_crypto_t *this, bool is_server, bool (*calculate_finished)(tls_crypto_t *this, bool is_server,
chunk_t *out); chunk_t *out);
/** /**
* Derive the master secret, MAC and encryption keys. * Derive the master secret, MAC and encryption keys.
+6 -6
View File
@@ -874,8 +874,8 @@ static status_t process_finished(private_tls_peer_t *this, bio_reader_t *reader)
this->alert->add(this->alert, TLS_FATAL, TLS_DECODE_ERROR); this->alert->add(this->alert, TLS_FATAL, TLS_DECODE_ERROR);
return NEED_MORE; return NEED_MORE;
} }
if (!this->crypto->calculate_finished(this->crypto, "server finished", if (!this->crypto->calculate_finished_legacy(this->crypto,
buf)) "server finished", buf))
{ {
DBG1(DBG_TLS, "calculating server finished failed"); DBG1(DBG_TLS, "calculating server finished failed");
this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR); this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR);
@@ -897,7 +897,7 @@ static status_t process_finished(private_tls_peer_t *this, bio_reader_t *reader)
this->alert->add(this->alert, TLS_FATAL, TLS_DECODE_ERROR); this->alert->add(this->alert, TLS_FATAL, TLS_DECODE_ERROR);
return NEED_MORE; return NEED_MORE;
} }
if (!this->crypto->calculate_finished_tls13(this->crypto, true, if (!this->crypto->calculate_finished(this->crypto, true,
&verify_data)) &verify_data))
{ {
DBG1(DBG_TLS, "calculating server finished failed"); DBG1(DBG_TLS, "calculating server finished failed");
@@ -1469,7 +1469,8 @@ static status_t send_finished(private_tls_peer_t *this,
{ {
char buf[12]; char buf[12];
if (!this->crypto->calculate_finished(this->crypto, "client finished", buf)) if (!this->crypto->calculate_finished_legacy(this->crypto,
"client finished", buf))
{ {
DBG1(DBG_TLS, "calculating client finished data failed"); DBG1(DBG_TLS, "calculating client finished data failed");
this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR); this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR);
@@ -1480,8 +1481,7 @@ static status_t send_finished(private_tls_peer_t *this,
} }
else else
{ {
if (!this->crypto->calculate_finished_tls13(this->crypto, false, if (!this->crypto->calculate_finished(this->crypto, FALSE, &verify_data))
&verify_data))
{ {
DBG1(DBG_TLS, "calculating client finished data failed"); DBG1(DBG_TLS, "calculating client finished data failed");
this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR); this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR);
+4 -2
View File
@@ -601,7 +601,8 @@ static status_t process_finished(private_tls_server_t *this,
this->alert->add(this->alert, TLS_FATAL, TLS_DECODE_ERROR); this->alert->add(this->alert, TLS_FATAL, TLS_DECODE_ERROR);
return NEED_MORE; return NEED_MORE;
} }
if (!this->crypto->calculate_finished(this->crypto, "client finished", buf)) if (!this->crypto->calculate_finished_legacy(this->crypto,
"client finished", buf))
{ {
DBG1(DBG_TLS, "calculating client finished failed"); DBG1(DBG_TLS, "calculating client finished failed");
this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR); this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR);
@@ -974,7 +975,8 @@ static status_t send_finished(private_tls_server_t *this,
{ {
char buf[12]; char buf[12];
if (!this->crypto->calculate_finished(this->crypto, "server finished", buf)) if (!this->crypto->calculate_finished_legacy(this->crypto,
"server finished", buf))
{ {
DBG1(DBG_TLS, "calculating server finished data failed"); DBG1(DBG_TLS, "calculating server finished data failed");
this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR); this->alert->add(this->alert, TLS_FATAL, TLS_INTERNAL_ERROR);