summaryrefslogtreecommitdiff
path: root/src/usr.bin/openssl/apps.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr.bin/openssl/apps.c')
-rw-r--r--src/usr.bin/openssl/apps.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/src/usr.bin/openssl/apps.c b/src/usr.bin/openssl/apps.c
index 392d3cc339..fd13371f5d 100644
--- a/src/usr.bin/openssl/apps.c
+++ b/src/usr.bin/openssl/apps.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: apps.c,v 1.61 2021/11/26 16:23:27 tb Exp $ */ 1/* $OpenBSD: apps.c,v 1.62 2022/01/10 12:17:49 tb Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -2262,3 +2262,31 @@ show_cipher(const OBJ_NAME *name, void *arg)
2262 2262
2263 fprintf(stderr, " -%-24s%s", name->name, (++*n % 3 != 0 ? "" : "\n")); 2263 fprintf(stderr, " -%-24s%s", name->name, (++*n % 3 != 0 ? "" : "\n"));
2264} 2264}
2265
2266int
2267pkey_check(BIO *out, EVP_PKEY *pkey, int (check_fn)(EVP_PKEY_CTX *),
2268 const char *desc)
2269{
2270 EVP_PKEY_CTX *ctx;
2271
2272 if ((ctx = EVP_PKEY_CTX_new(pkey, NULL)) == NULL) {
2273 ERR_print_errors(bio_err);
2274 return 0;
2275 }
2276
2277 if (check_fn(ctx) == 1) {
2278 BIO_printf(out, "%s valid\n", desc);
2279 } else {
2280 unsigned long err;
2281
2282 BIO_printf(out, "%s invalid\n", desc);
2283
2284 while ((err = ERR_get_error()) != 0)
2285 BIO_printf(out, "Detailed error: %s\n",
2286 ERR_reason_error_string(err));
2287 }
2288
2289 EVP_PKEY_CTX_free(ctx);
2290
2291 return 1;
2292}