Amazon SES 文档示例中使用一致的已知示例键吗?

我正在尝试编写一个用于 Amazon SES 的 Lua 库,以便我可以发送 API 请求。我研究了文档和各种示例,但我仍然得到以下错误消息:

The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.

我的某个函数在某一线路上格式化数据错误或做一些事情,导致签名过程的最终结果与亚马逊在其侧面生成的不匹配,因此我的请求被拒绝。但是,亚马逊在其错误响应中没有提供任何有用的信息,例如向我显示他们生成的规范请求,以便我可以将其与我的进行比较,以查看是否存在任何差异。我最好的尝试调试这是使用他们在文档中提供的示例(请参见下文)作为"已知良好"比较,并尝试使用我的函数生成相同的哈希...除了他们没有提供所有必要的信息来这样做。

在他们的文档过程的任务3中,他们共享一个示例秘钥,我已经能够使用它来验证我的代码至少按照预期运作,但是该秘钥似乎不能生成其他任务中的相同哈希。我错过了什么吗,或者有没有更好的方法来解决这个问题?

以下是我在他们文档的各个任务页面中找到的示例秘钥:

api_key    = "AKIDEXAMPLE"
api_secret = "wJalrXUtnFEMI/K7MDENG+bPxRfiCYEXAMPLEKEY"

在 Amazon 的任务1文档中,他们提供了最终的规范请求和配对哈希:

GET
/
Action=ListUsers&Version=2010-05-08
content-type:application/x-www-form-urlencoded; charset=utf-8
host:iam.amazonaws.com
x-amz-date:20150830T123600Z

content-type;host;x-amz-date
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

f536975d06c0309214f805bb90ccff089219ecd68b2577efef23edd43b7e1a59

然而,当我使用上述秘钥来哈希上述规范请求时,我得到一个不同的哈希:

d2da54b4842d8ca1acf1cf197827f4d75a742918af868d472e883781624a8bb5

因此,他们在某些示例中使用不同的秘钥,而没有实际记录它们...除非我错过了什么?

文档:https://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html

WIP 代码:https://hastebin.com/mezugukefu.lua

点赞