Earlier quoted context omitted.
A bit of a tangent. This isn't a dig on HMAC itself, but using HTTP request body or query string as the HMAC "message" is the worst. My employer provides some APIs with that sort of scheme and it's a very common source of technical customer support tickets. The problem is that many people are using web frameworks that automatically turn body and query into some kind of hash map data structure. So when you tell them "…
> "&" inside JSON strings but yours escapes it What escaping of "&" inside JSON are you talking about? Some unholy mix of JSON and urlencode?
See rails/rails, activesupport/lib/active_support/json/encoding.rb.