diff options
Diffstat (limited to 'src/tests/test_cryptobox.cpp')
-rw-r--r-- | src/tests/test_cryptobox.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/tests/test_cryptobox.cpp b/src/tests/test_cryptobox.cpp new file mode 100644 index 000000000..9a53da74c --- /dev/null +++ b/src/tests/test_cryptobox.cpp @@ -0,0 +1,45 @@ +#include "tests.h" + +#include <botan/auto_rng.h> +#include <iostream> + +#if defined(BOTAN_HAS_CRYPTO_BOX) + #include <botan/cryptobox.h> +#endif + +using namespace Botan; + +size_t test_cryptobox() + { + size_t fails = 0; + +#if defined(BOTAN_HAS_CRYPTO_BOX) + AutoSeeded_RNG rng; + + const byte msg[] = { 0xAA, 0xBB, 0xCC }; + std::string ciphertext = CryptoBox::encrypt(msg, sizeof(msg), + "secret password", + rng); + + try + { + std::string plaintext = CryptoBox::decrypt(ciphertext, + "secret password"); + + if(plaintext.size() != sizeof(msg) || + !same_mem(reinterpret_cast<const byte*>(&plaintext[0]), msg, sizeof(msg))) + ++fails; + + } + catch(std::exception& e) + { + std::cout << "Error during Cryptobox test " << e.what() << "\n"; + ++fails; + } + + test_report("Cryptobox", 1, fails); +#endif + + return fails; + } + |