def waitForCard():
    reader = None
    my_reader = configManager.configManager().getOption('Options','reader')
    my_driver = configManager.configManager().getOption('Options','driver')
    if my_reader != "Auto":
        reader = pypassport.reader.ReaderManager().waitForCard(5, my_driver, my_reader)
    else:
        reader = pypassport.reader.ReaderManager().waitForCard()
    return reader
def waitForCard():
    reader = None
    my_reader = configManager.configManager().getOption('Options', 'reader')
    my_driver = configManager.configManager().getOption('Options', 'driver')
    if my_reader != "Auto":
        reader = pypassport.reader.ReaderManager().waitForCard(
            5, my_driver, my_reader)
    else:
        reader = pypassport.reader.ReaderManager().waitForCard()
    return reader
Beispiel #3
0
 def importCertificate(self):
     directory = askdirectory(title="Certificates (*.cer) directory", mustexist=1)
     if directory:
         directory = str(directory)
         try:
             CA = pypassport.camanager.CAManager(directory)
             CA.toHashes()
             configManager.configManager().setOption("Options", 'certificate', str(directory))
             tkMessageBox.showwarning("Import Certificate", 'All present certificates have been imported!')
         except Exception, msg:
             tkMessageBox.showwarning("Error: Importing certificates", msg)
Beispiel #4
0
    def __init__(self, parent, controller):
        Frame.__init__(self, None)

        self.parent = parent
        self.controller = controller
        self._doc = None
        self.t = None

        self.passportNo = StringVar()
        self.dob = StringVar()
        self.doe = StringVar()
        self.stop = BooleanVar()
        self.stop.set(False)

        self.pack()

        ## MRZ ##
        self.mrzFrame = Frame(self, relief=RAISED, bd=1)
        self.mrzFrame.pack(fill=BOTH, expand=True)
        self.createMRZ()

        ## VIEWER ##
        self.viewerFrame = Frame(self, relief=RAISED, borderwidth=1)
        self.overview = overview.Overview(self.viewerFrame, self)
        self.overview.pack(fill=BOTH, expand=True, anchor=CENTER)
        self.footer = toolbar.StatusBar(self.viewerFrame)
        self.footer.pack(fill=BOTH, expand=True, anchor=CENTER)
        self.footer.set("Version %s", VERSION)

        self.currentFrame = self.viewerFrame
        self.currentFrame.pack(fill=BOTH, expand=1)

        ## ATTACKS ##
        self.attacksFrame = Frame(self, borderwidth=1)
        self.attacksFrameTest = attacks.AttacksFrame(self.attacksFrame, self)
        self.attacksFrameTest.pack(fill=BOTH, expand=1)

        ## CUSTOM ##
        self.customFrame = Frame(self, borderwidth=1)
        self.customFrameTest = custom.CustomFrame(self.customFrame, self)
        self.customFrameTest.pack(fill=BOTH, expand=1)

        self.bindEvents()

        self.parent.config(menu=self.getMenu())

        if configManager.configManager().getOption("Options", 'disclamer'):
            tkMessageBox.showwarning("Disclamer", DISCLAMER)
            configManager.configManager().setOption("Options", 'disclamer', False)
Beispiel #5
0
    def gotMRZ(self, mrz, fingerprint=False):

        self._doc = self._detectReader(mrz)

        if self._doc != None:
            self._doc.CSCADirectory = configManager.configManager().getOption('Options', 'certificate')
            self._doc.openSslDirectory = configManager.configManager().getOption('Options', 'openssl')
            if fingerprint:
                self.Fingerprint()
            else:
                self.clearLog()
                self._doc.register(self.log)
                self._readPassport()
                self.overview.additionalButton.config(state=NORMAL)
                self.overview.logButton.config(state=NORMAL)
Beispiel #6
0
 def refreshReaders(self):
     self.readerMenu.delete(0, END)
     
     # Auto detect
     self.readerMenu.add_radiobutton(label='Auto-Detect', underline=0, variable=configManager.configManager().getVariable('Options','reader'), value='Auto')
     
     # Readers list from pcsc
     try:
         readers = readerAbstract.getReaderList()
         i = 0
         for r in readers:
             self.readerMenu.add_radiobutton(label=r, variable=configManager.configManager().getVariable('Options','reader'), value=i)#, state=DISABLED)
             i += 1
     except NameError, msg:
         pass
Beispiel #7
0
 def load(self, event=None):
     directory = askdirectory(title="Select directory", mustexist=1)
     if directory:
         self.clean()
         directory = str(directory)
         r = pypassport.reader.ReaderManager().create("DumpReader")
         r.connect(directory)
         self._doc = pypassport.epassport.EPassport(r)
         self._doc.CSCADirectory = configManager.configManager().getOption('Options', 'certificate')
         self._doc.openSslDirectory = configManager.configManager().getOption('Options', 'openssl')
         try:
             self.t = None
             self.t = dialog.ReadingDialog(self, self._doc)
             self.t.read.register(self._dgRead)
             self.t.showSafe()
         except pypassport.doc9303.bac.BACException, msg:
             tkMessageBox.showerror("Reader", "Please verify the MRZ:\n" + str(msg[0]))
         except Exception, msg:
             tkMessageBox.showerror("Reader", "Please verify data source:\n" + str(msg[0]))
Beispiel #8
0
 def resetConfig(self):
     configManager.configManager().defaultConfig(CONFIG)
     configManager.configManager().setOption("Options", 'disclamer', False)
Beispiel #9
0
    def __init__(self, parent, confFile=CONFIG):
        self.parent = parent
        configManager.configManager().loadConfig(confFile)

        self.view = View(parent, self)
Beispiel #10
0
 def exit(self):
     configManager.configManager().saveConfig()
     self.controller.exit()
Beispiel #11
0
    def getMenu(self):

        menu = Menu(self, relief=FLAT)

        ####################
        #       FILE       #
        ####################
        fileMenu = Menu(menu, tearoff=0)
        fileMenu.add_command(label="Create...", underline=0, command=self.create)
        fileMenu.add_separator()
        fileMenu.add_command(label="Open...", underline=0, command=self.load)
        fileMenu.add_command(label="Save...", underline=0, command=self.save)
        fileMenu.add_command(label="Generate report...", underline=0, command=self.fingerprint)
        fileMenu.add_command(label="Clear", underline=0, command=self.clearFull)
        fileMenu.add_separator()
        fileMenu.add_command(label="Quit", underline=0, command=self.exit)
        menu.add_cascade(label="File", underline=0, menu=fileMenu)


        ####################
        #      HISTORY     #
        ####################
        self.historyMenu = Menu(menu, tearoff=0, postcommand=self.refreshHistory)
        menu.add_cascade(label="History", underline=0, menu=self.historyMenu)


        ####################
        #     CONFIGURE    #
        ####################
        configureMenu = Menu(menu, tearoff=0, postcommand=self.refreshReaders)

        self.readerMenu = Menu(menu, tearoff=0)
        configureMenu.add_cascade(label="Readers", underline=0, menu=self.readerMenu)

        self.securityMenu = Menu(menu, tearoff=0)
        self.securityMenu.add_checkbutton(  label='Active Authentication',
                                            variable=configManager.configManager().getVariable('Security', 'aa'))
        self.securityMenu.add_checkbutton(  label='Passive Authentication',
                                            variable=configManager.configManager().getVariable('Security','pa'))


        configureMenu.add_cascade(label="Security", underline=0, menu=self.securityMenu)

        #self.sslMenu = Menu(configureMenu, tearoff=0)
        #self.sslMenu.add_command(label=configManager.configManager().getOption('Options','openssl'), command=None)
        #self.sslMenu.add_separator()
        #self.sslMenu.add_command(label="Change",
        #                          underline=0,
        #                          command=callback.Callback(self.setOpenssl,
        #                                                    configManager.configManager().getVariable('Options','openssl'),
        #                                                    self.sslMenu))
        #configureMenu.add_cascade(label="OpenSSL", underline=0, menu=self.sslMenu)

        #self.certificateMenu = Menu(configureMenu, tearoff=0)
        #self.certificateMenu.add_command(label=configManager.configManager().getOption('Options','certificate'), command=None)
        #self.certificateMenu.add_separator()
        #self.certificateMenu.add_command(label="Change",
        #                                 underline=0,
        #                                 command=callback.Callback(self.setPath,
        #                                                           configManager.configManager().getVariable('Options','certificate'),
        #                                                           self.certificateMenu))
        #self.certificateMenu.add_command(label="Import", underline=0, command=self.importCertificate)
        #configureMenu.add_cascade(label="Certificate Directory", underline=0, menu=self.certificateMenu)

        configureMenu.add_command(label="Import CSCA certificates...", underline=0, command=self.importCertificate)
        configureMenu.add_separator()
        configureMenu.add_command(label="Reset to default", underline=0, command=self.resetConfig)

        menu.add_cascade(label="Configure", underline=0, menu=configureMenu)


        ####################
        #     LOG MENU     #
        ####################

        #logMenu = Menu(menu, tearoff=0)
        #logMenu.add_checkbutton(label="ePassport API", underline=0, variable=configManager.configManager().getVariable('Logs','api'))
        #logMenu.add_checkbutton(label="Secure Messaging", underline=0, variable=configManager.configManager().getVariable('Logs','sm'))
        #logMenu.add_checkbutton(label="APDU", underline=0, variable=configManager.configManager().getVariable('Logs','apdu'))
        #logMenu.add_separator()
        #logMenu.add_command(label="See Log file", underline=4, command=self.openLog)
        #menu.add_cascade(label="Log", underline=0, menu=logMenu)


        ###################
        #    HELP MENU    #
        ###################

        helpMenu = Menu(menu, tearoff=0)
        if os.name == "nt" or os.name == "posix":
            manualState = NORMAL
        else:
            manualState = DISABLED
        helpMenu.add_command(label="Manual", underline=0, command=self.openManual, state=manualState)

        helpMenu.add_command(label="Website", underline=0, command=self.website)
        helpMenu.add_separator()
        helpMenu.add_command(label="About", underline=0, command=self.onAbout)
        menu.add_cascade(label="Help", underline=0, menu=helpMenu)

        return menu