40 lines
774 B
C
40 lines
774 B
C
|
/* 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)
|