tweak HMAC to avoid Z -> byte -> Z roundtrip; refactor H spec