hex_test.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. *******************************************************************************
  3. \file hex_test.c
  4. \brief Tests for hexadecimal strings
  5. \project bee2/test
  6. \created 2016.06.17
  7. \version 2016.06.17
  8. \copyright The Bee2 authors
  9. \license Licensed under the Apache License, Version 2.0 (see LICENSE.txt).
  10. *******************************************************************************
  11. */
  12. #include <bee2/core/hex.h>
  13. #include <bee2/core/mem.h>
  14. #include <bee2/core/str.h>
  15. #include <bee2/crypto/belt.h>
  16. /*
  17. *******************************************************************************
  18. Тестирование
  19. *******************************************************************************
  20. */
  21. bool_t hexTest()
  22. {
  23. octet buf[256];
  24. char hex[512 + 1];
  25. char hex1[512 + 1];
  26. size_t count;
  27. // валидация
  28. if (!hexIsValid("1234") ||
  29. hexIsValid("12345") ||
  30. !hexIsValid("ABCDEFabcdef") ||
  31. hexIsValid("abcdefgh"))
  32. return FALSE;
  33. // кодировать / декодировать
  34. for (count = 0; count <= 256; ++count)
  35. {
  36. hexFrom(hex, beltH(), count);
  37. if (!hexEq(beltH(), hex))
  38. return FALSE;
  39. hexTo(buf, hex);
  40. if (!memEq(buf, beltH(), count))
  41. return FALSE;
  42. hexFromRev(hex, beltH(), count);
  43. if (!hexEqRev(beltH(), hex))
  44. return FALSE;
  45. hexToRev(buf, hex);
  46. if (!memEq(buf, beltH(), count))
  47. return FALSE;
  48. memCopy(hex1, hex, sizeof(hex));
  49. hexLower(hex1);
  50. hexUpper(hex1);
  51. if (!strEq(hex, hex1))
  52. return FALSE;
  53. }
  54. // все нормально
  55. return TRUE;
  56. }