Skip to content

Commit e3c722f

Browse files
committed
Use empty entry to indicate end of aliases
1 parent 4dbf24d commit e3c722f

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

ext/openssl/ossl_pkey.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -437,19 +437,20 @@ static const struct pkey_from_parameters_alias rsa_aliases[] = {
437437
{ "q", OSSL_PKEY_PARAM_RSA_FACTOR2 },
438438
{ "dmp1", OSSL_PKEY_PARAM_RSA_EXPONENT1 },
439439
{ "dmq1", OSSL_PKEY_PARAM_RSA_EXPONENT2 },
440-
{ "iqmp", OSSL_PKEY_PARAM_RSA_COEFFICIENT1 }
440+
{ "iqmp", OSSL_PKEY_PARAM_RSA_COEFFICIENT1 },
441+
{ "", "" }
441442
};
442443

443444
static const struct pkey_from_parameters_alias fcc_aliases[] = {
444445
{ "pub_key", OSSL_PKEY_PARAM_PUB_KEY },
445-
{ "priv_key", OSSL_PKEY_PARAM_PRIV_KEY }
446+
{ "priv_key", OSSL_PKEY_PARAM_PRIV_KEY },
447+
{ "", "" }
446448
};
447449

448450
struct pkey_from_parameters_arg {
449451
OSSL_PARAM_BLD *param_bld;
450452
const OSSL_PARAM *settable_params;
451453
const struct pkey_from_parameters_alias *aliases;
452-
size_t nAliases;
453454
};
454455

455456
static int
@@ -463,7 +464,7 @@ add_parameter_to_builder(VALUE key, VALUE value, VALUE arg) {
463464
const char *key_ptr = StringValueCStr(key);
464465
const struct pkey_from_parameters_arg *params = (const struct pkey_from_parameters_arg *) arg;
465466

466-
for(size_t i = 0; i < params->nAliases; i++) {
467+
for(int i = 0; strlen(params->aliases[i].alias) > 0; i++) {
467468
if(strcmp(params->aliases[i].alias, key_ptr) == 0) {
468469
key_ptr = params->aliases[i].param_name;
469470
break;
@@ -517,7 +518,7 @@ add_parameter_to_builder(VALUE key, VALUE value, VALUE arg) {
517518
cur += snprintf(cur, end-cur, fmt, settable_params->key);
518519
}
519520

520-
for(size_t i = 0; i < params->nAliases; i++) {
521+
for(int i = 0; strlen(params->aliases[i].alias) > 0; i++) {
521522
const char *fmt = cur == message_buffer ? "%s" : ", %s";
522523
if (cur > end)
523524
break;
@@ -556,13 +557,10 @@ pkey_from_parameters(int argc, VALUE *argv, VALUE self)
556557
ossl_raise(ePKeyError, "EVP_PKEY_fromdata_settable");
557558
}
558559

559-
if (strcmp("RSA", algorithm) == 0) {
560+
if (strcmp("RSA", algorithm) == 0)
560561
from_params_args.aliases = rsa_aliases;
561-
from_params_args.nAliases = sizeof(rsa_aliases)/sizeof((rsa_aliases)[0]);
562-
} else {
562+
else
563563
from_params_args.aliases = fcc_aliases;
564-
from_params_args.nAliases = sizeof(fcc_aliases)/sizeof((fcc_aliases)[0]);
565-
}
566564

567565
rb_hash_foreach(options, &add_parameter_to_builder, (VALUE) &from_params_args);
568566

0 commit comments

Comments
 (0)