示例#1
0
def test_invalid_parse_command_function():
    """Test invalid parse command function."""
    invalid_data = b"U\xaa\xaaUd\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00"
    with pytest.raises(SPSDKError):
        parse_command(invalid_data)
    invalid_data = bytes(CmdSectionHeader.SIZE)
    with pytest.raises(SPSDKError):
        parse_command(invalid_data)
示例#2
0
def test_invalid_parse_command_function():
    """Test invalid parse command function."""
    invalid_data = b'U\xaa\xaaUd\x00\x00\x00\t\x00\x00\x00\x00\x00\x00\x00'
    with pytest.raises(ValueError):
        parse_command(invalid_data)
    invalid_data = bytes(CmdSectionHeader.SIZE)
    with pytest.raises(AssertionError):
        parse_command(invalid_data)
示例#3
0
def test_parse_command_function():
    """Test parse command function."""
    # CmdErase(address=100, length=0, memory_id=0)
    data = (
        b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00"
        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    )
    parse = parse_command(data)
    assert isinstance(parse, CmdErase)

    # CmdLoad(address=100, length=0, memory_id=0)
    data = (
        b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00"
        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    )
    parse = parse_command(data)
    assert isinstance(parse, CmdLoad)

    # CmdExecute(address=100)
    data = b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00"
    parse = parse_command(data)
    assert isinstance(parse, CmdExecute)

    # CmdCall(address=100)
    data = b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00"
    parse = parse_command(data)
    assert isinstance(parse, CmdCall)

    # CmdProgFuses(address=100, data=[0, 1, 2, 3])
    data = (
        b"U\xaa\xaaUd\x00\x00\x00\x05\x00\x00\x00\x05\x00\x00\x00"
        b"\x00\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00"
        b"\x00\x00\x04\x00\x00\x00"
    )
    parse = parse_command(data)
    assert isinstance(parse, CmdProgFuses)

    # CmdProgIfr(address=100, data=(b"\x00" * 100))
    data = b"U\xaa\xaaUd\x00\x00\x00d\x00\x00\x00\x06\x00\x00\x00"
    parse = parse_command(data)
    assert isinstance(parse, CmdProgIfr)

    # CmdLoadCmac(address=100, length=0, memory_id=0)
    data = (
        b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00"
        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    )
    parse = parse_command(data)
    assert isinstance(parse, CmdLoadCmac)

    # CmdCopy(address=100, length=0, destination_address=0, memory_id_from=0, memory_id_to=0)
    data = (
        b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00"
        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    )
    parse = parse_command(data)
    assert isinstance(parse, CmdCopy)

    # CmdLoadHashLocking(address=100, length=0, memory_id=0)
    data = (
        b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\t\x00\x00\x00\x00\x00"
        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    )
    parse = parse_command(data)
    assert isinstance(parse, CmdLoadHashLocking)

    # CmdLoadKeyBlob(offset=100, key_wrap_id=CmdLoadKeyBlob.NXP_CUST_KEK_EXT_SK, data=10 * b"x")
    data = (
        b"U\xaa\xaaUd\x00\x11\x00\n\x00\x00\x00\n\x00\x00\x00xxxxxxxxxx" b"\x00\x00\x00\x00\x00\x00"
    )
    parse = parse_command(data)
    assert isinstance(parse, CmdLoadKeyBlob)

    # CmdConfigureMemory(address=100, memory_id=0)
    data = b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00"
    parse = parse_command(data)
    assert isinstance(parse, CmdConfigureMemory)

    # CmdFillMemory(address=100, memory_id=0)
    data = (
        b"U\xaa\xaaUd\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00"
        b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
    )
    parse = parse_command(data)
    assert isinstance(parse, CmdFillMemory)

    # CmdFwVersionCheck(value=100, counter_id=CmdFwVersionCheck.SECURE)
    data = b"U\xaa\xaaUd\x00\x00\x00\x02\x00\x00\x00\r\x00\x00\x00"
    parse = parse_command(data)
    assert isinstance(parse, CmdFwVersionCheck)