示例#1
0
def test_stringify_multiple():
    assert (stringify({
        TlvValue.Method: b"\x00",
        TlvValue.SeqNo: b"\x01",
        TlvValue.Error: b"\x03",
        TlvValue.BackOff: b"\x01\x00",
    }) == "Method=PairSetup, SeqNo=M1, Error=BackOff, BackOff=1s")
示例#2
0
def test_stringify_unknown_values():
    assert (stringify({
        TlvValue.Method: b"\xAA",
        TlvValue.SeqNo: b"\xAB",
        TlvValue.Error: b"\xAC",
        0xAD: b"\x01\x02\x03",
    }) == "Method=0xaa, SeqNo=0xab, Error=0xac, 0xad=3bytes")
示例#3
0
def test_stringify_seqno():
    assert stringify({TlvValue.SeqNo: b"\x01"}) == "SeqNo=M1"
    assert stringify({TlvValue.SeqNo: b"\x02"}) == "SeqNo=M2"
    assert stringify({TlvValue.SeqNo: b"\x03"}) == "SeqNo=M3"
    assert stringify({TlvValue.SeqNo: b"\x04"}) == "SeqNo=M4"
    assert stringify({TlvValue.SeqNo: b"\x05"}) == "SeqNo=M5"
    assert stringify({TlvValue.SeqNo: b"\x06"}) == "SeqNo=M6"
示例#4
0
文件: auth.py 项目: NebzHB/pyatv
def _get_pairing_data(message: Dict[str, object]):
    pairing_data = message.get(PAIRING_DATA_KEY)
    if not pairing_data:
        raise exceptions.AuthenticationError("no pairing data in message")

    if not isinstance(pairing_data, bytes):
        raise exceptions.ProtocolError(
            f"Pairing data has unexpected type: {type(pairing_data)}")

    tlv = read_tlv(pairing_data)
    if TlvValue.Error in tlv:
        raise exceptions.AuthenticationError(stringify(tlv))

    return tlv
示例#5
0
def test_stringify_remainging_short():
    values = [
        TlvValue.Identifier,
        TlvValue.Salt,
        TlvValue.PublicKey,
        TlvValue.Proof,
        TlvValue.EncryptedData,
        TlvValue.Certificate,
        TlvValue.Signature,
        TlvValue.Permissions,
        TlvValue.FragmentData,
        TlvValue.FragmentLast,
    ]

    for value in values:
        assert stringify({value: b"\x00\x01\x02\x03"}) == f"{value.name}=4bytes"
示例#6
0
def test_stringify_backoff():
    assert stringify({TlvValue.BackOff: b"\x02\x00"}) == "BackOff=2s"
示例#7
0
def test_stringify_error():
    assert stringify({TlvValue.Error: b"\x02"}) == "Error=Authentication"
    assert stringify({TlvValue.Error: b"\x05"}) == "Error=MaxTries"
示例#8
0
def test_stringify_method():
    assert stringify({TlvValue.Method: b"\x00"}) == "Method=PairSetup"
    assert stringify({TlvValue.Method: b"\x02"}) == "Method=PairVerify"
示例#9
0
def _get_pairing_data(resp):
    tlv = read_tlv(resp.inner().pairingData)
    if TlvValue.Error in tlv:
        raise exceptions.AuthenticationError(stringify(tlv))
    return tlv