Don't prepare more bytes of the key than necessary in HMAC initialization

Right now 128 bytes of the key are always computed over, which is the maxmimum
possibly size for a key (under e.g. sha512), however in common cases, such as
sha256, it's not necessary to compute over as many bytes, only the first ``j``,
where ``j`` is the block size of the digest, are needed.