Commit 300e6d41 authored by Jan Stancek's avatar Jan Stancek Committed by Jarkko Sakkinen
Browse files

sign-file,extract-cert: move common SSL helper functions to a header



Couple error handling helpers are repeated in both tools, so
move them to a common header.

Signed-off-by: default avatarJan Stancek <jstancek@redhat.com>
Reviewed-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
Tested-by: default avatarR Nageswara Sastry <rnsastry@linux.ibm.com>
Reviewed-by: default avatarNeal Gompa <neal@gompa.dev>
Signed-off-by: default avatarJarkko Sakkinen <jarkko@kernel.org>
parent 70fd1966
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5204,6 +5204,7 @@ S: Maintained
F:	Documentation/admin-guide/module-signing.rst
F:	certs/
F:	scripts/sign-file.c
F:	scripts/ssl-common.h
F:	tools/certs/
CFAG12864B LCD DRIVER
+1 −1
Original line number Diff line number Diff line
@@ -84,5 +84,5 @@ targets += x509_revocation_list

hostprogs := extract-cert

HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null)
HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_CONFIG) --cflags libcrypto 2> /dev/null) -I$(srctree)/scripts
HOSTLDLIBS_extract-cert = $(shell $(HOSTPKG_CONFIG) --libs libcrypto 2> /dev/null || echo -lcrypto)
+2 −35
Original line number Diff line number Diff line
@@ -23,6 +23,8 @@
#include <openssl/err.h>
#include <openssl/engine.h>

#include "ssl-common.h"

/*
 * OpenSSL 3.0 deprecates the OpenSSL's ENGINE API.
 *
@@ -40,41 +42,6 @@ void format(void)
	exit(2);
}

static void display_openssl_errors(int l)
{
	const char *file;
	char buf[120];
	int e, line;

	if (ERR_peek_error() == 0)
		return;
	fprintf(stderr, "At main.c:%d:\n", l);

	while ((e = ERR_get_error_line(&file, &line))) {
		ERR_error_string(e, buf);
		fprintf(stderr, "- SSL %s: %s:%d\n", buf, file, line);
	}
}

static void drain_openssl_errors(void)
{
	const char *file;
	int line;

	if (ERR_peek_error() == 0)
		return;
	while (ERR_get_error_line(&file, &line)) {}
}

#define ERR(cond, fmt, ...)				\
	do {						\
		bool __cond = (cond);			\
		display_openssl_errors(__LINE__);	\
		if (__cond) {				\
			err(1, fmt, ## __VA_ARGS__);	\
		}					\
	} while(0)

static const char *key_pass;
static BIO *wb;
static char *cert_dst;
+2 −35
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@
#include <openssl/err.h>
#include <openssl/engine.h>

#include "ssl-common.h"

/*
 * OpenSSL 3.0 deprecates the OpenSSL's ENGINE API.
 *
@@ -83,41 +85,6 @@ void format(void)
	exit(2);
}

static void display_openssl_errors(int l)
{
	const char *file;
	char buf[120];
	int e, line;

	if (ERR_peek_error() == 0)
		return;
	fprintf(stderr, "At main.c:%d:\n", l);

	while ((e = ERR_get_error_line(&file, &line))) {
		ERR_error_string(e, buf);
		fprintf(stderr, "- SSL %s: %s:%d\n", buf, file, line);
	}
}

static void drain_openssl_errors(void)
{
	const char *file;
	int line;

	if (ERR_peek_error() == 0)
		return;
	while (ERR_get_error_line(&file, &line)) {}
}

#define ERR(cond, fmt, ...)				\
	do {						\
		bool __cond = (cond);			\
		display_openssl_errors(__LINE__);	\
		if (__cond) {				\
			errx(1, fmt, ## __VA_ARGS__);	\
		}					\
	} while(0)

static const char *key_pass;

static int pem_pw_cb(char *buf, int len, int w, void *v)

scripts/ssl-common.h

0 → 100644
+39 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: LGPL-2.1+ */
/*
 * SSL helper functions shared by sign-file and extract-cert.
 */

static void display_openssl_errors(int l)
{
	const char *file;
	char buf[120];
	int e, line;

	if (ERR_peek_error() == 0)
		return;
	fprintf(stderr, "At main.c:%d:\n", l);

	while ((e = ERR_get_error_line(&file, &line))) {
		ERR_error_string(e, buf);
		fprintf(stderr, "- SSL %s: %s:%d\n", buf, file, line);
	}
}

static void drain_openssl_errors(void)
{
	const char *file;
	int line;

	if (ERR_peek_error() == 0)
		return;
	while (ERR_get_error_line(&file, &line)) {}
}

#define ERR(cond, fmt, ...)				\
	do {						\
		bool __cond = (cond);			\
		display_openssl_errors(__LINE__);	\
		if (__cond) {				\
			errx(1, fmt, ## __VA_ARGS__);	\
		}					\
	} while (0)