test_crypto_hash_context.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. This file is part of GNUnet
  3. Copyright (C) 2014 GNUnet e.V.
  4. GNUnet is free software: you can redistribute it and/or modify it
  5. under the terms of the GNU Affero General Public License as published
  6. by the Free Software Foundation, either version 3 of the License,
  7. or (at your option) any later version.
  8. GNUnet is distributed in the hope that it will be useful, but
  9. WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. Affero General Public License for more details.
  12. You should have received a copy of the GNU Affero General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>.
  14. SPDX-License-Identifier: AGPL3.0-or-later
  15. */
  16. /**
  17. * @file util/test_crypto_hash_context.c
  18. * @brief test case for incremental hashing
  19. * @author Florian Dold
  20. */
  21. #include "platform.h"
  22. #include "gnunet_util_lib.h"
  23. #define LEN 1234
  24. int
  25. main ()
  26. {
  27. char data[1234];
  28. struct GNUNET_HashCode hc1;
  29. struct GNUNET_HashCode hc2;
  30. struct GNUNET_HashContext *hctx;
  31. memset (data, 42, LEN);
  32. hctx = GNUNET_CRYPTO_hash_context_start ();
  33. GNUNET_CRYPTO_hash_context_read (hctx, data, LEN);
  34. GNUNET_CRYPTO_hash_context_finish (hctx, &hc1);
  35. GNUNET_CRYPTO_hash (data, LEN, &hc2);
  36. if (0 == memcmp (&hc1, &hc2, sizeof(struct GNUNET_HashCode)))
  37. return 0;
  38. return 1;
  39. }