mirror of
https://github.com/openssl/openssl.git
synced 2026-01-18 17:11:31 +01:00
apps/speed.c: support algorithm name aliases in kem and sig lookup
Fixes #29355 Reviewed-by: Paul Dale <paul.dale@oracle.com> Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> (Merged from https://github.com/openssl/openssl/pull/29571)
This commit is contained in:
committed by
Norbert Pocs
parent
b45fb748bd
commit
d2e4f588b6
28
apps/speed.c
28
apps/speed.c
@@ -1895,6 +1895,8 @@ static void collect_kem(EVP_KEM *kem, void *stack)
|
||||
static int kem_locate(const char *algo, unsigned int *idx)
|
||||
{
|
||||
unsigned int i;
|
||||
EVP_KEM *kem;
|
||||
const char *canonical_name;
|
||||
|
||||
for (i = 0; i < kems_algs_len; i++) {
|
||||
if (strcmp(kems_algname[i], algo) == 0) {
|
||||
@@ -1902,6 +1904,18 @@ static int kem_locate(const char *algo, unsigned int *idx)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
kem = EVP_KEM_fetch(app_get0_libctx(), algo, app_get0_propq());
|
||||
if (kem != NULL) {
|
||||
canonical_name = EVP_KEM_get0_name(kem);
|
||||
for (i = 0; i < kems_algs_len; i++) {
|
||||
if (strcmp(kems_algname[i], canonical_name) == 0) {
|
||||
*idx = i;
|
||||
EVP_KEM_free(kem);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
EVP_KEM_free(kem);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1927,6 +1941,8 @@ static void collect_signatures(EVP_SIGNATURE *sig, void *stack)
|
||||
static int sig_locate(const char *algo, unsigned int *idx)
|
||||
{
|
||||
unsigned int i;
|
||||
EVP_SIGNATURE *sig;
|
||||
const char *canonical_name;
|
||||
|
||||
for (i = 0; i < sigs_algs_len; i++) {
|
||||
if (strcmp(sigs_algname[i], algo) == 0) {
|
||||
@@ -1934,6 +1950,18 @@ static int sig_locate(const char *algo, unsigned int *idx)
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
sig = EVP_SIGNATURE_fetch(app_get0_libctx(), algo, app_get0_propq());
|
||||
if (sig != NULL) {
|
||||
canonical_name = EVP_SIGNATURE_get0_name(sig);
|
||||
for (i = 0; i < sigs_algs_len; i++) {
|
||||
if (strcmp(sigs_algname[i], canonical_name) == 0) {
|
||||
*idx = i;
|
||||
EVP_SIGNATURE_free(sig);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
EVP_SIGNATURE_free(sig);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user