diff --git a/virtualsmartcard/src/vpicc/virtualsmartcard/VirtualSmartcard.py b/virtualsmartcard/src/vpicc/virtualsmartcard/VirtualSmartcard.py index c4d0f95..8bf2f9f 100644 --- a/virtualsmartcard/src/vpicc/virtualsmartcard/VirtualSmartcard.py +++ b/virtualsmartcard/src/vpicc/virtualsmartcard/VirtualSmartcard.py @@ -504,7 +504,7 @@ class VirtualICC(object): def __sendToVPICC(self, msg): """ Send a message to the vpcd """ if isinstance(msg, str): - self.sock.sendall(struct.pack('!H', len(msg)) + msg.encode()) + self.sock.sendall(struct.pack('!H', len(msg)) + bytes(map(ord,msg))) else: self.sock.sendall(struct.pack('!H', len(msg)) + msg) diff --git a/virtualsmartcard/src/vpicc/virtualsmartcard/cards/Relay.py b/virtualsmartcard/src/vpicc/virtualsmartcard/cards/Relay.py index 3fad8b8..b62a353 100644 --- a/virtualsmartcard/src/vpicc/virtualsmartcard/cards/Relay.py +++ b/virtualsmartcard/src/vpicc/virtualsmartcard/cards/Relay.py @@ -114,7 +114,10 @@ class RelayOS(SmartcardOS): def execute(self, msg): # sendCommandAPDU() expects a list of APDU bytes - apdu = map(ord, msg) + if isinstance(msg,str): + apdu = map(ord, msg) + else: + apdu = list(msg) try: rapdu, sw1, sw2 = self.session.sendCommandAPDU(apdu)