From db3ecfd8885f583ed22f080a9aa5f1595d4fcca9 Mon Sep 17 00:00:00 2001 From: jsing Date: Wed, 9 Nov 2022 17:15:59 +0000 Subject: [PATCH] Add some regress coverage for EVP_PKEY_METHOD. --- regress/lib/libcrypto/evp/evp_test.c | 43 ++++++++++++++++++++++++++-- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/regress/lib/libcrypto/evp/evp_test.c b/regress/lib/libcrypto/evp/evp_test.c index bf43d7a5ab4..c4721cc3651 100644 --- a/regress/lib/libcrypto/evp/evp_test.c +++ b/regress/lib/libcrypto/evp/evp_test.c @@ -1,4 +1,4 @@ -/* $OpenBSD: evp_test.c,v 1.1 2022/11/09 16:13:39 jsing Exp $ */ +/* $OpenBSD: evp_test.c,v 1.2 2022/11/09 17:15:59 jsing Exp $ */ /* * Copyright (c) 2022 Joel Sing * @@ -21,7 +21,7 @@ #include "evp_locl.h" static int -evp_meth_find_test(void) +evp_asn1_method_test(void) { const EVP_PKEY_ASN1_METHOD *method; int count, pkey_id, i; @@ -101,12 +101,49 @@ evp_meth_find_test(void) return failed; } +static int +evp_pkey_method_test(void) +{ + const EVP_PKEY_METHOD *method; + int pkey_id; + int failed = 1; + + if ((method = EVP_PKEY_meth_find(EVP_PKEY_RSA)) == NULL) { + fprintf(stderr, "FAIL: failed to find RSA method\n"); + goto failure; + } + EVP_PKEY_meth_get0_info(&pkey_id, NULL, method); + if (pkey_id != EVP_PKEY_RSA) { + fprintf(stderr, "FAIL: method ID mismatch (%d != %d)\n", + pkey_id, EVP_PKEY_RSA); + goto failure; + } + + if ((method = EVP_PKEY_meth_find(EVP_PKEY_RSA_PSS)) == NULL) { + fprintf(stderr, "FAIL: failed to find RSA-PSS method\n"); + goto failure; + } + EVP_PKEY_meth_get0_info(&pkey_id, NULL, method); + if (pkey_id != EVP_PKEY_RSA_PSS) { + fprintf(stderr, "FAIL: method ID mismatch (%d != %d)\n", + pkey_id, EVP_PKEY_RSA_PSS); + goto failure; + } + + failed = 0; + + failure: + + return failed; +} + int main(int argc, char **argv) { int failed = 0; - failed |= evp_meth_find_test(); + failed |= evp_asn1_method_test(); + failed |= evp_pkey_method_test(); return failed; } -- 2.20.1