mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-02-21 15:41:00 +00:00
Benchmark: remove the legacy-context ECDH block
We have two blocks of code to benchmark ECDH. One uses the legacy context structure, which is only enabled when MBEDTLS_ECP_RESTARTABLE is enabled. That block doesn't convey any information that's specific to restartable ECC, it exists only for historical reasons (it came first). The other block uses only the implementation-agnostic API. Remove the block that uses the legacy context. It doesn't provide much extra information and most users won't even see it. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
0aab69d2eb
commit
984352d6f1
@ -1188,135 +1188,6 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(MBEDTLS_ECDH_C) && defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
|
||||
if (todo.ecdh) {
|
||||
mbedtls_ecdh_context ecdh;
|
||||
mbedtls_mpi z;
|
||||
const mbedtls_ecp_curve_info montgomery_curve_list[] = {
|
||||
#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
|
||||
{ MBEDTLS_ECP_DP_CURVE25519, 0, 0, "Curve25519" },
|
||||
#endif
|
||||
#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
|
||||
{ MBEDTLS_ECP_DP_CURVE448, 0, 0, "Curve448" },
|
||||
#endif
|
||||
{ MBEDTLS_ECP_DP_NONE, 0, 0, 0 }
|
||||
};
|
||||
const mbedtls_ecp_curve_info *curve_info;
|
||||
size_t olen;
|
||||
const mbedtls_ecp_curve_info *selected_montgomery_curve_list =
|
||||
montgomery_curve_list;
|
||||
|
||||
if (curve_list == (const mbedtls_ecp_curve_info *) &single_curve) {
|
||||
mbedtls_ecp_group grp;
|
||||
|
||||
mbedtls_ecp_group_init(&grp);
|
||||
if (mbedtls_ecp_group_load(&grp, curve_list->grp_id) != 0) {
|
||||
mbedtls_exit(1);
|
||||
}
|
||||
if (mbedtls_ecp_get_type(&grp) == MBEDTLS_ECP_TYPE_MONTGOMERY) {
|
||||
selected_montgomery_curve_list = single_curve;
|
||||
} else { /* empty list */
|
||||
selected_montgomery_curve_list = single_curve + 1;
|
||||
}
|
||||
mbedtls_ecp_group_free(&grp);
|
||||
}
|
||||
|
||||
for (curve_info = curve_list;
|
||||
curve_info->grp_id != MBEDTLS_ECP_DP_NONE;
|
||||
curve_info++) {
|
||||
if (!mbedtls_ecdh_can_do(curve_info->grp_id)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
mbedtls_ecdh_init(&ecdh);
|
||||
|
||||
CHECK_AND_CONTINUE(mbedtls_ecp_group_load(&ecdh.grp, curve_info->grp_id));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh, &olen, buf, sizeof(buf),
|
||||
myrand, NULL));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecp_copy(&ecdh.Qp, &ecdh.Q));
|
||||
|
||||
mbedtls_snprintf(title, sizeof(title), "ECDHE-%s",
|
||||
curve_info->name);
|
||||
TIME_PUBLIC(title, "handshake",
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh, &olen, buf, sizeof(buf),
|
||||
myrand, NULL));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_calc_secret(&ecdh, &olen, buf, sizeof(buf),
|
||||
myrand, NULL)));
|
||||
mbedtls_ecdh_free(&ecdh);
|
||||
}
|
||||
|
||||
/* Montgomery curves need to be handled separately */
|
||||
for (curve_info = selected_montgomery_curve_list;
|
||||
curve_info->grp_id != MBEDTLS_ECP_DP_NONE;
|
||||
curve_info++) {
|
||||
mbedtls_ecdh_init(&ecdh);
|
||||
mbedtls_mpi_init(&z);
|
||||
|
||||
CHECK_AND_CONTINUE(mbedtls_ecp_group_load(&ecdh.grp, curve_info->grp_id));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_gen_public(&ecdh.grp, &ecdh.d, &ecdh.Qp, myrand, NULL));
|
||||
|
||||
mbedtls_snprintf(title, sizeof(title), "ECDHE-%s",
|
||||
curve_info->name);
|
||||
TIME_PUBLIC(title, "handshake",
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_gen_public(&ecdh.grp, &ecdh.d, &ecdh.Q,
|
||||
myrand, NULL));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_compute_shared(&ecdh.grp, &z, &ecdh.Qp,
|
||||
&ecdh.d,
|
||||
myrand, NULL)));
|
||||
|
||||
mbedtls_ecdh_free(&ecdh);
|
||||
mbedtls_mpi_free(&z);
|
||||
}
|
||||
|
||||
for (curve_info = curve_list;
|
||||
curve_info->grp_id != MBEDTLS_ECP_DP_NONE;
|
||||
curve_info++) {
|
||||
if (!mbedtls_ecdh_can_do(curve_info->grp_id)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
mbedtls_ecdh_init(&ecdh);
|
||||
|
||||
CHECK_AND_CONTINUE(mbedtls_ecp_group_load(&ecdh.grp, curve_info->grp_id));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh, &olen, buf, sizeof(buf),
|
||||
myrand, NULL));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecp_copy(&ecdh.Qp, &ecdh.Q));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_make_public(&ecdh, &olen, buf, sizeof(buf),
|
||||
myrand, NULL));
|
||||
|
||||
mbedtls_snprintf(title, sizeof(title), "ECDH-%s",
|
||||
curve_info->name);
|
||||
TIME_PUBLIC(title, "handshake",
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_calc_secret(&ecdh, &olen, buf, sizeof(buf),
|
||||
myrand, NULL)));
|
||||
mbedtls_ecdh_free(&ecdh);
|
||||
}
|
||||
|
||||
/* Montgomery curves need to be handled separately */
|
||||
for (curve_info = selected_montgomery_curve_list;
|
||||
curve_info->grp_id != MBEDTLS_ECP_DP_NONE;
|
||||
curve_info++) {
|
||||
mbedtls_ecdh_init(&ecdh);
|
||||
mbedtls_mpi_init(&z);
|
||||
|
||||
CHECK_AND_CONTINUE(mbedtls_ecp_group_load(&ecdh.grp, curve_info->grp_id));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_gen_public(&ecdh.grp, &ecdh.d, &ecdh.Qp,
|
||||
myrand, NULL));
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_gen_public(&ecdh.grp, &ecdh.d, &ecdh.Q, myrand, NULL));
|
||||
|
||||
mbedtls_snprintf(title, sizeof(title), "ECDH-%s",
|
||||
curve_info->name);
|
||||
TIME_PUBLIC(title, "handshake",
|
||||
CHECK_AND_CONTINUE(mbedtls_ecdh_compute_shared(&ecdh.grp, &z, &ecdh.Qp,
|
||||
&ecdh.d,
|
||||
myrand, NULL)));
|
||||
|
||||
mbedtls_ecdh_free(&ecdh);
|
||||
mbedtls_mpi_free(&z);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(MBEDTLS_ECDH_C)
|
||||
if (todo.ecdh) {
|
||||
mbedtls_ecdh_context ecdh_srv, ecdh_cli;
|
||||
|
Loading…
x
Reference in New Issue
Block a user