diff --git a/lib/lib_private.h b/lib/lib_private.h
index 7768eea..8532636 100644
--- a/lib/lib_private.h
+++ b/lib/lib_private.h
@@ -58,14 +58,11 @@
 void *libfsverity_memdup(const void *mem, size_t size);
 
 __cold void
-libfsverity_do_error_msg(const char *format, va_list va, int err);
+libfsverity_do_error_msg(const char *format, va_list va);
 
 __printf(1, 2) __cold void
 libfsverity_error_msg(const char *format, ...);
 
-__printf(1, 2) __cold void
-libfsverity_error_msg_errno(const char *format, ...);
-
 __cold void
 libfsverity_warn_on(const char *condition, const char *file, int line);
 
diff --git a/lib/sign_digest.c b/lib/sign_digest.c
index 8ec0990..d726772 100644
--- a/lib/sign_digest.c
+++ b/lib/sign_digest.c
@@ -38,7 +38,7 @@
 	va_list va;
 
 	va_start(va, format);
-	libfsverity_do_error_msg(format, va, 0);
+	libfsverity_do_error_msg(format, va);
 	va_end(va);
 
 	if (ERR_peek_error() == 0)
diff --git a/lib/utils.c b/lib/utils.c
index 036dd60..d506ef1 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -51,16 +51,7 @@
 	libfsverity_error_cb = cb;
 }
 
-#ifdef _WIN32
-static char *strerror_r(int errnum, char *buf, size_t buflen)
-{
-	strerror_s(buf, buflen, errnum);
-
-	return buf;
-}
-#endif
-
-void libfsverity_do_error_msg(const char *format, va_list va, int err)
+void libfsverity_do_error_msg(const char *format, va_list va)
 {
 	int saved_errno = errno;
 	char *msg = NULL;
@@ -71,18 +62,8 @@
 	if (vasprintf(&msg, format, va) < 0)
 		goto out;
 
-	if (err) {
-		char *msg2 = NULL;
-		char errbuf[64];
-
-		if (asprintf(&msg2, "%s: %s", msg,
-			     strerror_r(err, errbuf, sizeof(errbuf))) < 0)
-			goto out2;
-		free(msg);
-		msg = msg2;
-	}
 	(*libfsverity_error_cb)(msg);
-out2:
+
 	free(msg);
 out:
 	errno = saved_errno;
@@ -93,16 +74,7 @@
 	va_list va;
 
 	va_start(va, format);
-	libfsverity_do_error_msg(format, va, 0);
-	va_end(va);
-}
-
-void libfsverity_error_msg_errno(const char *format, ...)
-{
-	va_list va;
-
-	va_start(va, format);
-	libfsverity_do_error_msg(format, va, errno);
+	libfsverity_do_error_msg(format, va);
 	va_end(va);
 }
 
