Implement HMAC from scratch in your preferred language.
Implement hmac_sha256(key, message), treating both inputs as UTF-8 strings and returning the lowercase hexadecimal HMAC-SHA256 digest. Use a 64-byte SHA-256 block size, hash keys longer than one block, and apply the standard inner and outer padding constants.
def hmac_sha256(key, message):