Skip to content

Commit

Permalink
sign-file,extract-cert: move common SSL helper functions to a header
Browse files Browse the repository at this point in the history
Couple error handling helpers are repeated in both tools, so
move them to a common header.

Signed-off-by: Jan Stancek <[email protected]>
Reviewed-by: Jarkko Sakkinen <[email protected]>
Tested-by: R Nageswara Sastry <[email protected]>
Reviewed-by: Neal Gompa <[email protected]>
Signed-off-by: Jarkko Sakkinen <[email protected]>
  • Loading branch information
jstancek authored and jarkkojs committed Sep 20, 2024
1 parent 70fd196 commit 300e6d4
Show file tree
Hide file tree
Showing 5 changed files with 45 additions and 71 deletions.
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion certs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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)
37 changes: 2 additions & 35 deletions certs/extract-cert.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand All @@ -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;
Expand Down
37 changes: 2 additions & 35 deletions scripts/sign-file.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand Down Expand Up @@ -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)
Expand Down
39 changes: 39 additions & 0 deletions scripts/ssl-common.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/* 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)

0 comments on commit 300e6d4

Please sign in to comment.