codec.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include <string>
  3. #include "base/buffer.h"
  4. namespace ylib
  5. {
  6. namespace codec
  7. {
  8. std::string md5(const ylib::buffer& data);
  9. std::string to_utf8(const std::string& gbk);
  10. std::string to_gbk(const std::string& utf8);
  11. namespace gzip
  12. {
  13. ylib::buffer en(const ylib::buffer& data);
  14. ylib::buffer de(const ylib::buffer& data);
  15. }
  16. namespace base64 {
  17. std::string en(const ylib::buffer& data);
  18. ylib::buffer de(const std::string& data);
  19. }
  20. namespace url {
  21. std::string en(const ylib::buffer& data);
  22. ylib::buffer de(const std::string& data);
  23. }
  24. #if 1
  25. namespace des3 {
  26. ylib::buffer en(const ylib::buffer& data, const std::string& key);
  27. ylib::buffer de(const ylib::buffer& data, const std::string& key);
  28. }
  29. #endif
  30. namespace aes {
  31. enum class variant {
  32. AES128 = 16,
  33. AES192 = 24,
  34. AES256 = 32
  35. };
  36. enum class mode {
  37. CBC,
  38. ECB
  39. };
  40. ylib::buffer en(const ylib::buffer& data, const std::string& key, ylib::codec::aes::variant variant, ylib::codec::aes::mode mode);
  41. ylib::buffer de(const ylib::buffer& ciphertext, const std::string& key, variant var, mode mod);
  42. }
  43. }
  44. }