codec.h 1.4 KB

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