HMAC通过multipart/form-data文件上传验证API调用

Die*_*zar 5 authentication curl http hmac

我们有一个现有的API,第三方可以推送数据.API调用使用与Ruby的ApiAuth库中描述的相同的方案使用HMAC进行身份验证,我用它来验证签名的请求.我们现在需要支持multipart/form-data文件上传.

我正在尝试使用cURL编写一个bash脚本作为示例API调用.我已经有一个没有文件上传的工作(只有JSON数据的POST请求).

我坚持的部分是为multipart请求生成$ content_md5.我理解多部分请求的内容具有由边界字符串分隔的内容部分,如此处所述.

问题1:cURL生成它自己的边界字符串并将其附加到我的内容类型标题问题2:我应该MD5整个请求正文包含边界字符串和节标题吗?

所以基本上,我需要能够知道边界字符串是什么,以便我可以生成一个字符串,看起来像http多部分格式,第7行到第23行中描述的内容部分和边界,以便我可以MD5它.

有没有办法只用cURL做到这一点?有没有更好的方法来构建这样一个HMAC签名的多部分请求?

我希望用cURL做到这一点,作为第三方开发人员的一个通用示例,它将与我们的API集成,以便他们可以用他们正在使用的任何语言签署他们的请求.