Cryptography.h 734 B

12345678910111213141516171819202122232425
  1. #pragma once
  2. #include <gsl/span>
  3. #include <natException.h>
  4. #include <natString.h>
  5. #include "Utility.h"
  6. namespace QQBot::Cryptography
  7. {
  8. DeclareException(CryptoException, NatsuLib::natException, u8"QQBot::Cryptography::CryptoException");
  9. namespace Tea
  10. {
  11. constexpr std::size_t TeaProcessUnitSize = 8;
  12. constexpr std::size_t CalculateOutputSize(std::size_t inputSize)
  13. {
  14. return Utility::AlignTo(inputSize + 10, TeaProcessUnitSize);
  15. }
  16. std::size_t Encrypt(gsl::span<const std::byte> const& input, gsl::span<std::byte> const& output, gsl::span<const std::byte> const& key);
  17. std::size_t Decrypt(gsl::span<const std::byte> const& input, gsl::span<std::byte> const& output, gsl::span<const std::byte> const& key);
  18. }
  19. }