#!/usr/bin/env python3
import hashlib
import hmac

rpmbframe = bytearray(bytes.fromhex(
    '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +
    '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +
    '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +
    '00000000000000000000000000000000000000000000000000000000776385c27c171e97c52a7ed8d22a6739b285ea4676d258f178802c5a' +
    'e2290a3200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +
    '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +
    '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +
    '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000' +
    '000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004c' +
    '0000000000000200'))
"""
xflashext - RPMB        : 899cd7692b4777042c094476920f6b1bf88b303abca5e0e14464e034551a1f52
"""
rpmbkey_dxcc = bytes.fromhex('899cd7692b4777042c094476920f6b1bf88b303abca5e0e14464e034551a1f52')

for rpmbkey in [rpmbkey_dxcc]:
    # rpmbkey=rpmbkey[::-1]
    res = hmac.new(key=rpmbkey, msg=rpmbframe[0xE4:0xE4 + 284], digestmod=hashlib.sha256).digest()
    if res == rpmbframe[0xC4:0xE4]:
        print("RPMB Key is valid !")
