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")
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")
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"
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
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"
def test_stringify_backoff(): assert stringify({TlvValue.BackOff: b"\x02\x00"}) == "BackOff=2s"
def test_stringify_error(): assert stringify({TlvValue.Error: b"\x02"}) == "Error=Authentication" assert stringify({TlvValue.Error: b"\x05"}) == "Error=MaxTries"
def test_stringify_method(): assert stringify({TlvValue.Method: b"\x00"}) == "Method=PairSetup" assert stringify({TlvValue.Method: b"\x02"}) == "Method=PairVerify"
def _get_pairing_data(resp): tlv = read_tlv(resp.inner().pairingData) if TlvValue.Error in tlv: raise exceptions.AuthenticationError(stringify(tlv)) return tlv