From 01cc3948481e094e57c746c16727cc2f354d4d7b Mon Sep 17 00:00:00 2001
From: Paul Bakker
Date: Tue, 8 May 2012 08:36:15 +0000
Subject: [PATCH] - Added commandline error code convertor (util/strerror)
---
ChangeLog | 1 +
programs/Makefile | 5 +++
programs/util/strerror.c | 79 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 85 insertions(+)
create mode 100644 programs/util/strerror.c
diff --git a/ChangeLog b/ChangeLog
index c1be440e3..6364c0f6e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -15,6 +15,7 @@ Features
* Added base Galois Counter Mode (GCM) for AES
* Added TLS 1.2 support
* Added GCM suites to TLS 1.2 (RFC 5288)
+ * Added commandline error code convertor (util/strerror)
Changes
* Removed redundant POLARSSL_DEBUG_MSG define
diff --git a/programs/Makefile b/programs/Makefile
index e6771ceb1..8780633f5 100644
--- a/programs/Makefile
+++ b/programs/Makefile
@@ -28,6 +28,7 @@ APPS = aes/aescrypt2 aes/crypt_and_hash \
random/gen_random_ctr_drbg \
test/ssl_cert_test test/benchmark \
test/selftest test/ssl_test \
+ util/strerror \
x509/cert_app x509/crl_app \
x509/cert_req
@@ -163,6 +164,10 @@ test/ssl_test: test/ssl_test.c ../library/libpolarssl.a
echo " CC test/ssl_test.c"
$(CC) $(CFLAGS) $(OFLAGS) test/ssl_test.c $(LDFLAGS) -o $@
+util/strerror: util/strerror.c ../library/libpolarssl.a
+ echo " CC util/strerror.c"
+ $(CC) $(CFLAGS) $(OFLAGS) util/strerror.c $(LDFLAGS) -o $@
+
x509/cert_app: x509/cert_app.c ../library/libpolarssl.a
echo " CC x509/cert_app.c"
$(CC) $(CFLAGS) $(OFLAGS) x509/cert_app.c $(LDFLAGS) -o $@
diff --git a/programs/util/strerror.c b/programs/util/strerror.c
new file mode 100644
index 000000000..bb31b3d35
--- /dev/null
+++ b/programs/util/strerror.c
@@ -0,0 +1,79 @@
+/*
+ * Translate error code to error string
+ *
+ * Copyright (C) 2006-2012, Brainspark B.V.
+ *
+ * This file is part of PolarSSL (http://www.polarssl.org)
+ * Lead Maintainer: Paul Bakker
+ *
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+#ifndef _CRT_SECURE_NO_DEPRECATE
+#define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+
+#include
+#include
+#include
+
+#include "polarssl/config.h"
+
+#include "polarssl/error.h"
+
+#define USAGE \
+ "\n usage: strerror \n"
+
+#if !defined(POLARSSL_ERROR_C)
+int main( int argc, char *argv[] )
+{
+ ((void) argc);
+ ((void) argv);
+
+ printf("POLARSSL_ERROR_C not defined.\n");
+ return( 0 );
+}
+#else
+int main( int argc, char *argv[] )
+{
+ int ret;
+
+ if( argc != 2 )
+ {
+ printf( USAGE );
+ return( 0 );
+ }
+
+ ret = atoi( argv[1] );
+ if( ret > 0 )
+ ret = - ret;
+
+ if( ret != 0 )
+ {
+ char error_buf[200];
+ error_strerror( ret, error_buf, 200 );
+ printf("Last error was: %d - %s\n\n", ret, error_buf );
+ }
+
+#if defined(_WIN32)
+ printf( " + Press Enter to exit this program.\n" );
+ fflush( stdout ); getchar();
+#endif
+
+ return( ret );
+}
+#endif /* POLARSSL_ERROR_C */