33 lines
678 B
C
33 lines
678 B
C
|
/* SPDX-License-Identifier: LGPL-2.1+ */
|
||
|
/*
|
||
|
* SSL helper functions shared by sign-file and extract-cert.
|
||
|
*/
|
||
|
|
||
|
static void drain_openssl_errors(int l, int silent)
|
||
|
{
|
||
|
const char *file;
|
||
|
char buf[120];
|
||
|
int e, line;
|
||
|
|
||
|
if (ERR_peek_error() == 0)
|
||
|
return;
|
||
|
if (!silent)
|
||
|
fprintf(stderr, "At main.c:%d:\n", l);
|
||
|
|
||
|
while ((e = ERR_peek_error_line(&file, &line))) {
|
||
|
ERR_error_string(e, buf);
|
||
|
if (!silent)
|
||
|
fprintf(stderr, "- SSL %s: %s:%d\n", buf, file, line);
|
||
|
ERR_get_error();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#define ERR(cond, fmt, ...) \
|
||
|
do { \
|
||
|
bool __cond = (cond); \
|
||
|
drain_openssl_errors(__LINE__, 0); \
|
||
|
if (__cond) { \
|
||
|
errx(1, fmt, ## __VA_ARGS__); \
|
||
|
} \
|
||
|
} while (0)
|