Exemple #1
0
def main(apps=None, network='test'):
    # create virtual file system /sdram
    # for temp untrusted data storage
    rampath = platform.mount_sdram()
    # define hosts - USB, QR, SDCard
    # each hosts gets it's own RAM folder for data
    hosts = [
        QRHost(rampath + "/qr"),
        USBHost(rampath + "/usb"),
        # SDHost(rampath+"/sd"), # not implemented yet
    ]
    # define GUI
    gui = SpecterGUI()

    # folder where keystore will store it's data
    keystore_path = platform.fpath("/flash/keystore")
    # define KeyStore
    keystore = FlashKeyStore(keystore_path)

    # loading apps
    if apps is None:
        apps = load_apps()

    # make Specter instance
    settings_path = platform.fpath("/flash")
    specter = Specter(gui=gui,
                      keystore=keystore,
                      hosts=hosts,
                      apps=apps,
                      settings_path=settings_path,
                      network=network)
    specter.start()
Exemple #2
0
def main(apps=None, network="main", keystore_cls=None):
    """
    apps: list of apps to load
    network: default network to operate
    keystores: list of KeyStore classes that can be used
    """
    # create virtual file system /sdram
    # for temp untrusted data storage
    rampath = platform.mount_sdram()
    # define hosts - USB, QR, SDCard
    # each hosts gets it's own RAM folder for data
    Host.SETTINGS_DIR = platform.fpath("/qspi/hosts")
    hosts = [
        USBHost(rampath + "/usb"),
        QRHost(rampath + "/qr"),
        SDHost(rampath + "/sd"),
    ]
    # temp storage in RAM for host commands processing
    BaseApp.TEMPDIR = rampath + "/tmp"

    # define GUI
    if not platform.simulator:
        gui = SpecterGUI()
    else:
        # this GUI can simulate user actions for automated testing
        from gui.tcp_gui import TCPGUI
        gui = TCPGUI()

    # inject the folder where keystore stores it's data
    KeyStore.path = platform.fpath("/flash/keystore")
    # detect keystore to use
    if keystore_cls is not None:
        keystores = [keystore_cls]
    else:
        keystores = [
            MemoryCard,
            SDKeyStore,
        ]

    # loading apps
    if apps is None:
        apps = load_apps()

    # make Specter instance
    settings_path = platform.fpath("/flash")
    specter = Specter(
        gui=gui,
        keystores=keystores,
        hosts=hosts,
        apps=apps,
        settings_path=settings_path,
        network=network,
    )
    specter.start()
def specter_regtest_configured(bitcoin_regtest):
    # Make sure that this folder never ever gets a reasonable non-testing use-case
    data_folder = './test_specter_data_3456778'
    shutil.rmtree(data_folder, ignore_errors=True)
    config = {
        "rpc": {
            "autodetect": False,
            "user": bitcoin_regtest.rpcuser,
            "password": bitcoin_regtest.rpcpassword,
            "port": bitcoin_regtest.rpcport,
            "host": bitcoin_regtest.ipaddress,
            "protocol": "http"
        },
    }
    yield Specter(data_folder=data_folder, config=config)
    shutil.rmtree(data_folder, ignore_errors=True)
Exemple #4
0
def main(apps=None, network="test", keystore_cls=None):
    """
    apps: list of apps to load
    network: default network to operate
    keystores: list of KeyStore classes that can be used
    """
    # create virtual file system /sdram
    # for temp untrusted data storage
    rampath = platform.mount_sdram()
    # define hosts - USB, QR, SDCard
    # each hosts gets it's own RAM folder for data
    hosts = [
        QRHost(rampath + "/qr"),
        USBHost(rampath + "/usb"),
        # SDHost(rampath+"/sd"), # not implemented yet
    ]
    # define GUI
    gui = SpecterGUI()

    # inject the folder where keystore stores it's data
    KeyStore.path = platform.fpath("/flash/keystore")
    # detect keystore to use
    if keystore_cls is not None:
        keystores = [keystore_cls]
    else:
        keystores = [
            SDKeyStore,
            # uncomment this if you want to
            # enable smartcard support:
            # MemoryCard,
        ]

    # loading apps
    if apps is None:
        apps = load_apps()

    # make Specter instance
    settings_path = platform.fpath("/flash")
    specter = Specter(
        gui=gui,
        keystores=keystores,
        hosts=hosts,
        apps=apps,
        settings_path=settings_path,
        network=network,
    )
    specter.start()
Exemple #5
0
def display(text):
    header = [
        "Press ESC to quit. Use the keys to navigate, or use the hotkeys:",
        "(h)ome, (e)nd, (n)ext, (p)revious, page_(u)p and page_(d)own"
    ]
    nav = {
        "home": "h",
        "end": "e",
        "next": "n",
        "prev": "p",
        "pg_up": "u",
        "pg_dn": "d"
    }
    screen = Specter()
    screen.start()
    screen.scroll(text, header=header, nav=nav)
    screen.stop()
    def loadSpecterFromFiles(self):
        self.dirPath = QtGui.QFileDialog.getExistingDirectory(
            self.main_frame, "Open Directory", "D:")
        fileList = glob.glob(self.dirPath + '\*.asc')
        for fileName in fileList:
            self.specter.append(
                Specter(np.loadtxt(fileName), fileName, self.specterCenter,
                        self.windowLength))

        if len(self.specter) > 0:
            self.currentSpecter = 0

        self.updateSpecterInput()
        for specNum in range(0, len(self.specter)):
            self.statusBar().showMessage('Busy...')
            self.computeAbelTransform(specNum)

        self.statusBar().showMessage('Ready')
        self.on_draw()
Exemple #7
0
def create_app():
    if getattr(sys, 'frozen', False):
        template_folder = os.path.join(os.path.realpath(__file__), 'templates')
        static_folder = os.path.join(os.path.realpath(__file__), 'static')
        app = Flask(__name__,
                    template_folder=template_folder,
                    static_folder=static_folder)
    else:
        app = Flask(__name__,
                    template_folder="templates",
                    static_folder="static")
    QRcode(app)  # enable qr codes generation
    specter = Specter(DATA_FOLDER)
    specter.check()
    # Attach specter instance so child views (e.g. hwi) can access it
    app.specter = specter
    app.register_blueprint(hwi_views, url_prefix='/hwi')
    with app.app_context():
        import controller
    return app