General Purpose library for Freestanding C++ and POSIX systems
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
1.7 KiB

  1. #include "rc6_generic.hpp"
  2. #include "test_scaffold.h"
  3. #include <iostream>
  4. #include <ios>
  5. struct RC6test : public test_scaffold {
  6. RC6test() {
  7. name = __FILE__ ":1";
  8. }
  9. virtual int run() {
  10. using rc = RC6<>;
  11. rc::key_type key = {0,0,0,0};
  12. rc::block_type plaintext = {0,0,0,0};
  13. rc::block_type expected = {0x8fc3a536,0x56b1f778,0xc129df4e,0x9848a41e};
  14. /*
  15. std::cout<<"plain:";
  16. for(auto a : plaintext)
  17. std::cout << std::hex << a;
  18. */
  19. auto cipher = rc{key};
  20. plaintext = cipher.encrypt(plaintext);
  21. /*std::cout<<"\nkey__:";
  22. for(auto a : key)
  23. std::cout << std::hex << a;
  24. std::cout<<"\nciphe:";
  25. for(auto a : plaintext)
  26. std::cout << std::hex << a;
  27. std::cout<<"\nexpec:";
  28. for(auto a : expected)
  29. std::cout << std::hex << a;
  30. std::cout << std::endl;
  31. */
  32. return plaintext != expected;
  33. }
  34. };
  35. append_test dummy_szfhu5463(new RC6test{});
  36. struct RC6test2 : public test_scaffold {
  37. RC6test2() {
  38. name = __FILE__ ":2";
  39. }
  40. virtual int run() {
  41. using rc = RC6<>;
  42. rc::key_type key = {0,0,0,0};
  43. rc::block_type plaintext = {0,0,0,0};
  44. rc::block_type expected = {0,0,0,0};
  45. /*
  46. std::cout<<"plain:";
  47. for(auto a : plaintext)
  48. std::cout << std::hex << a;
  49. */
  50. auto cipher = rc{key};
  51. plaintext = cipher.encrypt(plaintext);
  52. /*std::cout<<"\nkey__:";
  53. for(auto a : key)
  54. std::cout << std::hex << a;
  55. std::cout<<"\nciphe:";
  56. for(auto a : plaintext)
  57. std::cout << std::hex << a;
  58. */
  59. plaintext = cipher.decrypt(plaintext);
  60. /*std::cout<<"\ncidec:";
  61. for(auto a : plaintext)
  62. std::cout << std::hex << a;
  63. std::cout<<"\nexpec:";
  64. for(auto a : expected)
  65. std::cout << std::hex << a;
  66. std::cout << std::endl;
  67. */
  68. return plaintext != expected;
  69. }
  70. };
  71. append_test dummy_szmltz63(new RC6test2{});