summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/Makefile3
-rw-r--r--lib/console.c30
2 files changed, 29 insertions, 4 deletions
diff --git a/lib/Makefile b/lib/Makefile
index ad18f391..db5ff711 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -2,7 +2,8 @@ TARGET = lib.a
LIBFILES = simple_file.o guid.o console.o execute.o configtable.o shell.o variables.o security_policy.o
-EFI_INCLUDES = -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol -I$(TOPDIR)/../include
+EFI_INCLUDES = -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol -I$(TOPDIR)/../include \
+ -I$(TOPDIR)/CryptLib/Include/openssl/
lib.a: $(LIBFILES)
$(AR) rcs lib.a $(LIBFILES)
diff --git a/lib/console.c b/lib/console.c
index 31ac110d..cd8d1de2 100644
--- a/lib/console.c
+++ b/lib/console.c
@@ -6,10 +6,14 @@
*/
#include <efi.h>
#include <efilib.h>
-
+#include <stdarg.h>
+#include <stdbool.h>
#include <console.h>
#include <variables.h>
#include <errors.h>
+#include <Library/BaseCryptLib.h>
+#include <openssl/err.h>
+#include <openssl/crypto.h>
static EFI_GUID SHIM_LOCK_GUID = { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} };
@@ -383,7 +387,6 @@ err_string (
return L"";
}
-
void
console_error(CHAR16 *err, EFI_STATUS status)
@@ -396,7 +399,8 @@ console_error(CHAR16 *err, EFI_STATUS status)
};
CHAR16 str[512];
- SPrint(str, sizeof(str), L"%s: (%d) %s", err, status, err_string(status));
+ SPrint(str, sizeof(str), L"%s: (0x%x) %s", err, status, err_string(status));
+
err_arr[2] = str;
@@ -460,6 +464,26 @@ VOID setup_console (int text)
uefi_call_wrapper(concon->SetMode, 2, concon, new_mode);
}
+static int
+print_errors_cb(const char *str, size_t len, void *u)
+{
+ Print(L"%a", str);
+
+ return len;
+}
+
+EFI_STATUS
+print_crypto_errors(EFI_STATUS rc, char *file, const char *func, int line)
+{
+ if (!(verbose && EFI_ERROR(rc)))
+ return rc;
+
+ Print(L"SSL Error: %a:%d %a(): %r\n", file, line, func, rc);
+ ERR_print_errors_cb(print_errors_cb, NULL);
+
+ return rc;
+}
+
VOID
msleep(unsigned long msecs)
{