The salt for HKDF should be 32 bytes, not 16, because for a fixed user-provided key, we want the full AES-256 keyspace to be available. See also: http://blog.cr.yp.to/20151120-batchattacks.html