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 */