From 4add4c6a6302ff01539e246f68aaf13299414fd6 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Thu, 10 Oct 2013 14:40:06 +0000 Subject: -updated tests --- src/util/test_crypto_ecdhe.c | 64 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/util/test_crypto_ecdhe.c (limited to 'src/util/test_crypto_ecdhe.c') diff --git a/src/util/test_crypto_ecdhe.c b/src/util/test_crypto_ecdhe.c new file mode 100644 index 000000000..a6f96d9f1 --- /dev/null +++ b/src/util/test_crypto_ecdhe.c @@ -0,0 +1,64 @@ +/* + This file is part of GNUnet. + (C) 2002-2013 Christian Grothoff (and other contributing authors) + + GNUnet 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 3, or (at your + option) any later version. + + GNUnet 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 GNUnet; see the file COPYING. If not, write to the + Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + +*/ +/** + * @file util/test_crypto_ecdhe.c + * @brief testcase for ECC ECDHE public key crypto + * @author Christian Grothoff + */ +#include "platform.h" +#include "gnunet_util_lib.h" +#include + + +int +main (int argc, char *argv[]) +{ + struct GNUNET_CRYPTO_EcdhePrivateKey *priv1; + struct GNUNET_CRYPTO_EcdhePrivateKey *priv2; + struct GNUNET_CRYPTO_EcdhePublicKey pub1; + struct GNUNET_CRYPTO_EcdhePublicKey pub2; + struct GNUNET_HashCode ecdh1; + struct GNUNET_HashCode ecdh2; + + if (! gcry_check_version ("1.5.0")) + { + FPRINTF (stderr, + _ + ("libgcrypt has not the expected version (version %s is required).\n"), + "1.5.0"); + return 0; + } + GNUNET_log_setup ("test-crypto-ecdhe", "WARNING", NULL); + + priv1 = GNUNET_CRYPTO_ecdhe_key_create (); + priv2 = GNUNET_CRYPTO_ecdhe_key_create (); + GNUNET_CRYPTO_ecdhe_key_get_public (priv1, &pub1); + GNUNET_CRYPTO_ecdhe_key_get_public (priv2, &pub2); + GNUNET_CRYPTO_ecc_ecdh (priv1, &pub2, &ecdh1); + GNUNET_CRYPTO_ecc_ecdh (priv2, &pub1, &ecdh2); + GNUNET_assert (0 == memcmp (&ecdh1, &ecdh2, + sizeof (struct GNUNET_HashCode))); + GNUNET_free (priv1); + GNUNET_free (priv2); + return 0; +} + +/* end of test_crypto_ecdhe.c */ -- cgit v1.2.3