hmacsha1signer_ut.cc 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "gtest/gtest.h"
  2. #include "alibabacloud/core/HmacSha1Signer.h"
  3. #include <openssl/hmac.h>
  4. using namespace std;
  5. using namespace AlibabaCloud;
  6. namespace {
  7. TEST(HmacSha1Signer, assign) {
  8. HmacSha1Signer sig;
  9. string sign = sig.generate("GET&%2F&AccessKeyId%3Dtestid%26Action%3DDescribeRegions"
  10. "%26Format%3DXML%26RegionId%3Dregion1%26SignatureMethod%3DHMAC-SHA1"
  11. "%26SignatureNonce%3DNwDAxvLU6tFE0DVb%26SignatureVersion%3D1.0"
  12. "%26TimeStamp%3D2012-12-26T10%253A33%253A56Z%26Version%3D2013-01-10",
  13. "testsecret&");
  14. EXPECT_TRUE("axE3FUHgDyfm9/+Iep0HpZXrRwE=" == sign);
  15. EXPECT_TRUE(sig.type() == HmacSha1Signer::HmacSha1);
  16. EXPECT_TRUE(sig.name() == "HMAC-SHA1");
  17. EXPECT_TRUE(sig.version() == "1.0");
  18. }
  19. TEST(HmacSha1Signer, edge_from_empty_string) {
  20. HmacSha1Signer sign;
  21. EXPECT_TRUE(sign.generate("", "") == "");
  22. }
  23. TEST(HmacSha1Signer, unicode) {
  24. HmacSha1Signer sig;
  25. string sign = sig.generate("GET&%2F&AccessKeyId%3Dtestid%26Action%3DDescribeRegions"
  26. "%26TestUnicode%3DDescribeRegions啊啊啊"
  27. "%26Format%3DXML%26RegionId%3Dregion1%26SignatureMethod%3DHMAC-SHA1"
  28. "%26SignatureNonce%3DNwDAxvLU6tFE0DVb%26SignatureVersion%3D1.0"
  29. "%26TimeStamp%3D2012-12-26T10%253A33%253A56Z%26Version%3D2013-01-10",
  30. "testsecret&");
  31. EXPECT_TRUE("VJ1a5YBLy+shtBK/l97MCMq+mzs=" == sign);
  32. }
  33. TEST(HmacSha1Signer, specialQuery) {
  34. HmacSha1Signer sig;
  35. string sign = sig.generate("GET&%2F&AccessKeyId%3Dtestid%26Action%3DDescribeRegions"
  36. "%26TestUnicode%3DDescri&beRegions"
  37. "%26Format%3DXML%26RegionId%3Dregion1%26SignatureMethod%3DHMAC-SHA1"
  38. "%26SignatureNonce%3DNwDAxvLU6tFE0DVb%26SignatureVersion%3D1.0"
  39. "%26TimeStamp%3D2012-12-26T10%253A33%253A56Z%26Version%3D2013-01-10",
  40. "testsecret&");
  41. EXPECT_TRUE("3PuleV7r01lLr4wwvWNCOuLKV5A=" == sign);
  42. }
  43. }