diff --git a/src/dnssec-crypto.h b/src/dnssec-crypto.h index 3591556..c89dd25 100644 --- a/src/dnssec-crypto.h +++ b/src/dnssec-crypto.h @@ -45,5 +45,6 @@ struct VerifyAlgCtx int verifyalg_supported(int algo); VerifyAlgCtx* verifyalg_alloc(int algo); void verifyalg_free(VerifyAlgCtx *a); +int verifyalg_algonum(VerifyAlgCtx *a); #endif /* DNSSEC_CRYPTO_H */ diff --git a/src/dnssec-openssl.c b/src/dnssec-openssl.c index 5cf2c41..3151cdb 100644 --- a/src/dnssec-openssl.c +++ b/src/dnssec-openssl.c @@ -201,3 +201,11 @@ void verifyalg_free(VerifyAlgCtx *a) pool_used &= ~(1 << pool_idx); } + +int verifyalg_algonum(VerifyAlgCtx *a) +{ + int num = a->vtbl - valgs; + if (num < 0 || num >= countof(valgs)) + return -1; + return num; +}