diff --git a/include/polarssl/config.h b/include/polarssl/config.h index 3b682d362..362c237d2 100644 --- a/include/polarssl/config.h +++ b/include/polarssl/config.h @@ -837,6 +837,7 @@ * * Module: library/ecp.c * Caller: library/ecdh.c + * library/ecdsa.c * * Requires: POLARSSL_BIGNUM_C */ @@ -845,7 +846,7 @@ /** * \def POLARSSL_ECDH_C * - * Enable the elliptic curve Diffie-Hellman library + * Enable the elliptic curve Diffie-Hellman library. * * Module: library/ecdh.c * Caller: @@ -854,6 +855,18 @@ */ #define POLARSSL_ECDH_C +/** + * \def POLARSSL_ECDSA_C + * + * Enable the elliptic curve DSA library. + * + * Module: library/ecdsa.c + * Caller: + * + * Requires: POLARSSL_ECP_C + */ +#define POLARSSL_ECDSA_C + /* \} name */ #endif /* config.h */ diff --git a/include/polarssl/ecdsa.h b/include/polarssl/ecdsa.h new file mode 100644 index 000000000..cf7a78843 --- /dev/null +++ b/include/polarssl/ecdsa.h @@ -0,0 +1,47 @@ +/** + * \file ecdsa.h + * + * \brief Elliptic curve DSA + * + * Copyright (C) 2006-2013, 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 POLARSSL_ECDSA_H +#define POLARSSL_ECDSA_H + +#include "polarssl/ecp.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * \brief Checkup routine + * + * \return 0 if successful, or 1 if the test failed + */ +int ecdsa_self_test( int verbose ); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 28bbedc72..6bc46e047 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -18,6 +18,7 @@ set(src dhm.c ecp.c ecdh.c + ecdsa.c entropy.c entropy_poll.c error.c diff --git a/library/ecdh.c b/library/ecdh.c index 15158990a..1b4fcd3b2 100644 --- a/library/ecdh.c +++ b/library/ecdh.c @@ -31,7 +31,7 @@ #include "polarssl/config.h" -#if defined(POLARSSL_ECP_C) +#if defined(POLARSSL_ECDH_C) #include "polarssl/ecdh.h" @@ -87,4 +87,4 @@ int ecdh_self_test( int verbose ) #endif -#endif /* defined(POLARSSL_ECP_C) */ +#endif /* defined(POLARSSL_ECDH_C) */ diff --git a/library/ecdsa.c b/library/ecdsa.c new file mode 100644 index 000000000..09d14f933 --- /dev/null +++ b/library/ecdsa.c @@ -0,0 +1,51 @@ +/* + * Elliptic curve DSA + * + * Copyright (C) 2006-2013, 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. + */ + +/* + * References: + * + * SEC1 http://www.secg.org/index.php?action=secg,docs_secg + */ + +#include "polarssl/config.h" + +#if defined(POLARSSL_ECDSA_C) + +#include "polarssl/ecdsa.h" + + +#if defined(POLARSSL_SELF_TEST) + +/* + * Checkup routine + */ +int ecdsa_self_test( int verbose ) +{ + return( verbose++ ); +} + +#endif + +#endif /* defined(POLARSSL_ECDSA_C) */