The key is mixed with two fixed pads.

highlighted = computed this step

Start with a tiny key

The toy block size is 2 bytes, and the pinned key is 0x0f0e.

block bytes=2\text{block bytes}=2
Key and padsA toy HMAC-shaped table is recomputed from the pinned key and message.Key and pads - tag e7 changes to e8rowvaluecheckblock size2two-byte toy blockkey0f0epinned keyipad3636inner padinner key pad3938key xor ipadinner input39386869inner key pad || messageinner hash420x142 to 0x42opad5c5couter padouter key pad5352key xor opadouter input535242outer key pad || inner hashfinal tage70xe7 to 0xe7changed message686aone message byte changedchanged inner hash430x143 to 0x43changed final tage80xe8 to 0xe8old tag checkfaile7 != e8

The inner pad is fixed

The inner pad is 0x3636. XOR with the key gives 0x3938.

keyipad=0x3938\text{key}\oplus ipad=0x3938
Key and padsA toy HMAC-shaped table is recomputed from the pinned key and message.Key and pads - tag e7 changes to e8rowvaluecheckblock size2two-byte toy blockkey0f0epinned keyipad3636inner padinner key pad3938key xor ipadinner input39386869inner key pad || messageinner hash420x142 to 0x42opad5c5couter padouter key pad5352key xor opadouter input535242outer key pad || inner hashfinal tage70xe7 to 0xe7changed message686aone message byte changedchanged inner hash430x143 to 0x43changed final tage80xe8 to 0xe8old tag checkfaile7 != e8

The outer pad is different

The outer pad is 0x5c5c. XOR with the same key gives 0x5352.

keyopad=0x5352\text{key}\oplus opad=0x5352
Key and padsA toy HMAC-shaped table is recomputed from the pinned key and message.Key and pads - tag e7 changes to e8rowvaluecheckblock size2two-byte toy blockkey0f0epinned keyipad3636inner padinner key pad3938key xor ipadinner input39386869inner key pad || messageinner hash420x142 to 0x42opad5c5couter padouter key pad5352key xor opadouter input535242outer key pad || inner hashfinal tage70xe7 to 0xe7changed message686aone message byte changedchanged inner hash430x143 to 0x43changed final tage80xe8 to 0xe8old tag checkfaile7 != e8

Summary

The two pads make two different keyed prefixes: 0x3938 inside and 0x5352 outside.

pads=2\text{pads}= 2
Key and padsA toy HMAC-shaped table is recomputed from the pinned key and message.Key and pads - tag e7 changes to e8rowvaluecheckblock size2two-byte toy blockkey0f0epinned keyipad3636inner padinner key pad3938key xor ipadinner input39386869inner key pad || messageinner hash420x142 to 0x42opad5c5couter padouter key pad5352key xor opadouter input535242outer key pad || inner hashfinal tage70xe7 to 0xe7changed message686aone message byte changedchanged inner hash430x143 to 0x43changed final tage80xe8 to 0xe8old tag checkfaile7 != e8