grouped virtual smartcard objects in virtualsmartcard package

git-svn-id: https://vsmartcard.svn.sourceforge.net/svnroot/vsmartcard@325 96b47cad-a561-4643-ad3b-153ac7d7599c
This commit is contained in:
frankmorgner
2010-10-13 07:40:57 +00:00
parent 5f54e4a780
commit 5ee49dae66
12 changed files with 1299 additions and 59 deletions

View File

@@ -1,22 +1,26 @@
EXTRA_DIST = virtualsmartcard.in EXTRA_DIST = vicc.in
vpiccdir = $(pythondir) vpiccdir = $(pythondir)/virtualsmartcard
vpicc_PYTHON = CardGenerator.py SEutils.py TLVutils.py ConstantDefinitions.py \ vpicc_PYTHON = virtualsmartcard/CardGenerator.py \
SmartcardFilesystem.py utils.py CryptoUtils.py SmartcardSAM.py \ virtualsmartcard/SEutils.py \
SWutils.py VirtualSmartcard.py virtualsmartcard/TLVutils.py \
virtualsmartcard/ConstantDefinitions.py \
virtualsmartcard/SmartcardFilesystem.py \
virtualsmartcard/utils.py \
virtualsmartcard/CryptoUtils.py \
virtualsmartcard/SmartcardSAM.py \
virtualsmartcard/SWutils.py \
virtualsmartcard/VirtualSmartcard.py \
virtualsmartcard/__init__.py
all-local: all-local:
perl -ne "s|PYTHONDIR|$(pythondir)| ; print" $(srcdir)/virtualsmartcard.in > tmp perl -ne "s|PYTHONBIN|$(PYTHON)| ; print" vicc.in > vicc
perl -ne "s|PYTHONBIN|$(PYTHON)| ; print" tmp > virtualsmartcard
rm -f tmp
install-exec-local: all-local
$(mkinstalldirs) $(DESTDIR)$(bindir) $(mkinstalldirs) $(DESTDIR)$(bindir)
$(INSTALL_SCRIPT) virtualsmartcard $(DESTDIR)$(bindir)/virtualsmartcard $(INSTALL_SCRIPT) vicc $(DESTDIR)$(bindir)/vicc
uninstall-local: uninstall-local:
rm -f $(DESTDIR)$(bindir)/virtualsmartcard rm -f $(DESTDIR)$(bindir)/vicc
clean-local: clean-local:
rm -f virtualsmartcard rm -f vicc

View File

@@ -20,8 +20,8 @@
import sys, getpass, anydbm, readline, os, dircache import sys, getpass, anydbm, readline, os, dircache
from pickle import loads, dumps from pickle import loads, dumps
from TLVutils import pack from TLVutils import pack
from utils import inttostring from virtualsmartcard.utils import inttostring
from SmartcardFilesystem import * from virtualsmartcard.SmartcardFilesystem import *
# pgp directory # pgp directory
#self.mf.append(DF(parent=self.mf, #self.mf.append(DF(parent=self.mf,
@@ -42,7 +42,7 @@ class CardGenerator(object):
self.sam = None self.sam = None
def __generate_iso_card(self): def __generate_iso_card(self):
from SmartcardSAM import SAM from virtualsmartcard.SmartcardSAM import SAM
print "Using default SAM. Insecure!!!" print "Using default SAM. Insecure!!!"
self.sam = SAM("1234", "1234567890") #FIXME: Use user provided data self.sam = SAM("1234", "1234567890") #FIXME: Use user provided data
@@ -52,7 +52,7 @@ class CardGenerator(object):
def __generate_ePass(self): def __generate_ePass(self):
from PIL import Image from PIL import Image
from SmartcardSAM import PassportSAM from virtualsmartcard.SmartcardSAM import PassportSAM
MRZ = raw_input("Please enter the MRZ as one string: ") #TODO: Sanity checks MRZ = raw_input("Please enter the MRZ as one string: ") #TODO: Sanity checks
@@ -114,7 +114,7 @@ class CardGenerator(object):
self.sam = PassportSAM(self.mf) self.sam = PassportSAM(self.mf)
def __generate_cryptoflex(self): def __generate_cryptoflex(self):
from SmartcardSAM import CryptoflexSAM from virtualsmartcard.SmartcardSAM import CryptoflexSAM
self.mf = CryptoflexMF() self.mf = CryptoflexMF()
self.mf.append(TransparentStructureEF(parent=self.mf, fid=0x0002, filedescriptor=0x01, self.mf.append(TransparentStructureEF(parent=self.mf, fid=0x0002, filedescriptor=0x01,
@@ -144,7 +144,7 @@ class CardGenerator(object):
def loadCard(self, filename, password=None): def loadCard(self, filename, password=None):
from CryptoUtils import read_protected_string from virtualsmartcard.CryptoUtils import read_protected_string
try: try:
db = anydbm.open(filename, 'r') db = anydbm.open(filename, 'r')
@@ -161,7 +161,7 @@ class CardGenerator(object):
self.type = db["type"] self.type = db["type"]
def saveCard(self, filename, password=None): def saveCard(self, filename, password=None):
from CryptoUtils import protect_string from virtualsmartcard.CryptoUtils import protect_string
if password is None: if password is None:
passwd1 = getpass.getpass("Please enter a password.") passwd1 = getpass.getpass("Please enter a password.")

View File

@@ -21,7 +21,7 @@ from Crypto.Cipher import DES3, DES, AES, ARC4 #,IDEA no longer present in pytho
from struct import pack from struct import pack
from binascii import b2a_hex from binascii import b2a_hex
from random import randint from random import randint
from utils import inttostring, stringtoint, hexdump from virtualsmartcard.utils import inttostring, stringtoint, hexdump
import string import string
import re import re

View File

@@ -16,11 +16,11 @@
# You should have received a copy of the GNU General Public License along with # You should have received a copy of the GNU General Public License along with
# virtualsmartcard. If not, see <http://www.gnu.org/licenses/>. # virtualsmartcard. If not, see <http://www.gnu.org/licenses/>.
# #
import TLVutils import virtualsmartcard.TLVutils
from time import time from time import time
from random import seed, randint from random import seed, randint
from ConstantDefinitions import * from virtualsmartcard.ConstantDefinitions import *
from utils import inttostring, stringtoint from virtualsmartcard.utils import inttostring, stringtoint
class ControlReferenceTemplate: class ControlReferenceTemplate:
def __init__(self,type,config=""): def __init__(self,type,config=""):

View File

@@ -21,10 +21,10 @@
@todo zu lange daten abschneiden und trotzdem tlv laenge beibehalten @todo zu lange daten abschneiden und trotzdem tlv laenge beibehalten
""" """
from pickle import dumps, loads from pickle import dumps, loads
from ConstantDefinitions import * from virtualsmartcard.ConstantDefinitions import *
from TLVutils import * from virtualsmartcard.TLVutils import *
from SWutils import * from virtualsmartcard.SWutils import *
from utils import stringtoint, inttostring from virtualsmartcard.utils import stringtoint, inttostring
def isEqual(list): # {{{ def isEqual(list): # {{{
"""Returns True, if all items are equal, otherwise False""" """Returns True, if all items are equal, otherwise False"""

File diff suppressed because it is too large Load Diff

View File

@@ -16,12 +16,12 @@
# You should have received a copy of the GNU General Public License along with # You should have received a copy of the GNU General Public License along with
# virtualsmartcard. If not, see <http://www.gnu.org/licenses/>. # virtualsmartcard. If not, see <http://www.gnu.org/licenses/>.
# #
from ConstantDefinitions import * from virtualsmartcard.ConstantDefinitions import *
from TLVutils import * from virtualsmartcard.TLVutils import *
from SWutils import SwError, SW from virtualsmartcard.SWutils import SwError, SW
from SmartcardFilesystem import prettyprint_anything, MF, DF, CryptoflexMF, TransparentStructureEF, make_property from virtualsmartcard.SmartcardFilesystem import prettyprint_anything, MF, DF, CryptoflexMF, TransparentStructureEF, make_property
from utils import C_APDU, R_APDU, hexdump, inttostring from virtualsmartcard.utils import C_APDU, R_APDU, hexdump, inttostring
from SmartcardSAM import SAM, PassportSAM, CryptoflexSAM from virtualsmartcard.SmartcardSAM import SAM, PassportSAM, CryptoflexSAM
import CardGenerator import CardGenerator
from smartcard.CardMonitoring import CardMonitor, CardObserver from smartcard.CardMonitoring import CardMonitor, CardObserver
@@ -579,28 +579,3 @@ class VirtualICC(object): # {{{
self.cardGenerator.setCard(self.os.mf, self.os.SAM) self.cardGenerator.setCard(self.os.mf, self.os.SAM)
self.cardGenerator.saveCard(self.filename) self.cardGenerator.saveCard(self.filename)
# }}} # }}}
if __name__ == "__main__":
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-t", "--type", action="store", type="choice",
default='iso7816',
choices=['iso7816', 'cryptoflex', 'ePass', 'relay'],
help="Type of Smartcard [default: %default]")
parser.add_option("-r", "--reader", action="store", type="int",
default=None,
help="Number of reader for relaying")
parser.add_option("-f", "--file", action="store", type="string",
default=None,
help="Load a saved card")
parser.add_option("-n", "--hostname", action="store", type="string",
default='localhost',
help="Address of Virtual PCD [default: %default]")
parser.add_option("-p", "--port", action="store", type="int",
default=35963,
help="Port of Virtual PCD [default: %default]")
(options, args) = parser.parse_args()
vicc = VirtualICC(options.file, options.type, options.hostname,
options.port, readernum=options.reader)
vicc.run()