From 97194d230d2260f7c00269345fbd0aa6b625d859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Leonard=20H=C3=BCbner?= Date: Thu, 15 Oct 2020 18:52:46 +0200 Subject: [PATCH] enable msg to be either string or bytes --- .../src/vpicc/virtualsmartcard/VirtualSmartcard.py | 2 +- virtualsmartcard/src/vpicc/virtualsmartcard/cards/Relay.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) 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)