def __init__(self, parent):
        super(EncryptionStatusMonitor, self).__init__(parent)

        self.dLayout = QVBoxLayout()

        self.textResultsLayout = QGridLayout()
        self.textInLine = QtFixes.QLineEdit()
        self.textOutLine = QtFixes.QLineEdit()
        self.textResultsLayout.addWidget(QLabel("Text In "), 0, 0)
        self.textInLine.setReadOnly(True)
        self.textResultsLayout.addWidget(self.textInLine, 0, 1)
        self.textResultsLayout.addWidget(QLabel("Text Out"), 1, 0)
        self.textOutLine.setReadOnly(True)
        self.textResultsLayout.addWidget(self.textOutLine, 1, 1)
        self.textResultsLayout.addWidget(QLabel("Expected"), 2, 0)
        self.textOutExpected = QtFixes.QLineEdit()
        self.textOutExpected.setReadOnly(True)
        self.textResultsLayout.addWidget(self.textOutExpected, 2, 1)

        self.textResultsLayout.addWidget(QLabel("Enc. Key"), 3, 0)
        self.textEncKey = QtFixes.QLineEdit()
        self.textEncKey.setReadOnly(True)
        self.textResultsLayout.addWidget(self.textEncKey, 3, 1)

        self.dLayout.addLayout(self.textResultsLayout)

        # Count of OK passes
        cntLayout = QHBoxLayout()

        self.totalOps = QLabel("0")
        self.totalOK = QLabel("?")
        self.totalFail = QLabel("?")
        self.clearPB = QPushButton("Clear")
        self.clearPB.clicked.connect(self.clrCnt)

        cntLayout.addWidget(QLabel("Total Ops: "))
        cntLayout.addWidget(self.totalOps)
        cntLayout.addStretch()
        cntLayout.addWidget(QLabel("Total OK: "))
        cntLayout.addWidget(self.totalOK)
        cntLayout.addStretch()
        cntLayout.addWidget(QLabel("Total Failed: "))
        cntLayout.addWidget(self.totalFail)
        cntLayout.addStretch()
        cntLayout.addWidget(self.clearPB)
        self.clrCnt()

        self.dLayout.addLayout(cntLayout)

        self.setLayout(self.dLayout)
        self.hide()
Ejemplo n.º 2
0
    def __init__(self):
        super(STM32FProgrammerDialog, self).__init__(CWMainGUI.getInstance())
        # self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)
        self.stm32f = STM32FProgrammer()

        self.setWindowTitle("Serial STM32F Programmer")
        layout = QVBoxLayout()

        layoutFW = QHBoxLayout()
        self.flashLocation = QtFixes.QLineEdit()
        flashFileButton = QPushButton("Find")
        flashFileButton.clicked.connect(self.findFlash)
        layoutFW.addWidget(QLabel("FLASH File"))
        layoutFW.addWidget(self.flashLocation)
        layoutFW.addWidget(flashFileButton)
        layout.addLayout(layoutFW)

        self.flashLocation.setText(QSettings().value("stm32f-flash-location"))

        # Add buttons
        readSigBut = QPushButton("Check Signature")
        readSigBut.clicked.connect(self.readSignature)
        verifyFlashBut = QPushButton("Verify FLASH")
        verifyFlashBut.clicked.connect(self.verifyFlash)
        verifyFlashBut.setEnabled(False)
        progFlashBut = QPushButton("Erase/Program/Verify FLASH")
        progFlashBut.clicked.connect(self.writeFlash)

        layoutBut = QHBoxLayout()
        layoutBut.addWidget(readSigBut)
        layoutBut.addWidget(verifyFlashBut)
        layoutBut.addWidget(progFlashBut)
        layout.addLayout(layoutBut)

        layoutsetting = QHBoxLayout()
        mode = QComboBox()
        mode.addItem("fast", False)
        mode.addItem("slow", True)
        mode.currentIndexChanged.connect(self.modechanged)
        layoutsetting.addWidget(QLabel("Speed:"))
        layoutsetting.addWidget(mode)

        blocksize = QComboBox()
        blocksize.addItem("256", False)
        blocksize.addItem("64", True)
        blocksize.currentIndexChanged.connect(self.blocksizechanged)
        layoutsetting.addStretch()
        layoutsetting.addWidget(QLabel("Read Block Size:"))
        layoutsetting.addWidget(blocksize)
        layout.addLayout(layoutsetting)

        # Add status stuff
        self.statusLine = QPlainTextEdit()
        self.statusLine.setReadOnly(True)
        # self.statusLine.setFixedHeight(QFontMetrics(self.statusLine.font()).lineSpacing() * 5 + 10)
        self.stm32f.newTextLog.connect(self.append)
        layout.addWidget(self.statusLine)

        # Set dialog layout
        self.setLayout(layout)
Ejemplo n.º 3
0
    def __init__(self, parent=None):
        super(ProjectTextEditor, self).__init__(parent)

        self._status = None
        self._project = None

        self.editWindow = ProjectEditor()

        mainLayout = QVBoxLayout()
        mainLayout.addWidget(self.editWindow)

        pbSaveFile = QPushButton("Save Editor to Disk")
        pbSaveFile.clicked.connect(self.writeToDisk)
        pbReloadFile = QPushButton("Reload Editor from Disk")
        pbReloadFile.clicked.connect(self.readFromDisk)

        self.statusTextbox = QtFixes.QLineEdit("")
        self.statusTextbox.setReadOnly(True)
        statusLayout = QHBoxLayout()
        statusLayout.addWidget(QLabel("Status:"))
        statusLayout.addWidget(self.statusTextbox)
        statusLayout.addWidget(pbSaveFile)
        statusLayout.addWidget(pbReloadFile)
        mainLayout.addLayout(statusLayout)

        self.fnameTextBox = QtFixes.QLineEdit("")
        self.fnameTextBox.setReadOnly(True)
        barLayout = QHBoxLayout()
        barLayout.addWidget(QLabel("Filename:"))
        barLayout.addWidget(self.fnameTextBox)
        # barLayout.addStretch()

        pbOpenFolder = QPushButton("Open Folder Location")
        pbOpenFolder.clicked.connect(self.openFolderProject)
        # pbOpen
        barLayout.addWidget(pbOpenFolder)
        # barLayout.addStretch()

        mainLayout.addLayout(barLayout)

        self.setLayout(mainLayout)
        self.lastLevel = 0

        self.saveSliderPosition()
        self.editWindow.textChanged.connect(
            lambda: self.setStatus("editchange"))
Ejemplo n.º 4
0
    def calcPOI(self, numMax, pointRange, minSpace, diffs=None):
        if diffs:
            self.setDifferences(diffs)

        # Setup Table for current stuff
        self.mainTable.setRowCount(len(self.diffs))
        self.mainTable.setColumnCount(2)
        self.mainTable.setHorizontalHeaderLabels(["Subkey", "Point List"])
        self.mainTable.horizontalHeader().setStretchLastSection(True)
        self.mainTable.verticalHeader().hide()

        self.poiArray = []

        startPoint = pointRange[0]
        endPoint = pointRange[1]

        if startPoint == endPoint:
            endPoint += 1

        extendDownhill = self.parent.findParam(
            ["Points of Interest", 'Hill detection']).getValue()

        for bnum in range(0, len(self.diffs)):

            maxarray = []

            # Copy since we will be overwriting it a bunch
            data = copy.deepcopy(self.diffs[bnum][startPoint:endPoint])

            while len(maxarray) < numMax:
                # Find maximum location
                mloc = np.argmax(data)

                # Store this maximum
                maxarray.append(mloc + startPoint)

                # set to -INF data within +/- the minspace
                mstart = max(0, mloc - minSpace)
                while extendDownhill and mstart > 0 and data[
                        mstart - 1] <= data[mstart]:
                    mstart -= 1
                mend = min(mloc + minSpace, len(data))
                while extendDownhill and mend < len(data) - 1 and data[
                        mend + 1] <= data[mend]:
                    mend += 1
                data[mstart:mend] = -np.inf

            # print maxarray
            self.poiArray.append(maxarray)

            self.mainTable.setItem(bnum, 0, QTableWidgetItem("%d" % bnum))
            self.mainTable.setCellWidget(bnum, 1,
                                         QtFixes.QLineEdit(str(maxarray)))
        return {"poi": self.poiArray}
Ejemplo n.º 5
0
    def __init__(self):
        super(XMEGAProgrammerDialog, self).__init__(CWMainGUI.getInstance())
        # self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)
        self.xmega = XMEGAProgrammer()

        self.setWindowTitle("ChipWhisperer-Lite XMEGA Programmer")
        layout = QVBoxLayout()

        layoutFW = QHBoxLayout()
        self.flashLocation = QtFixes.QLineEdit()
        flashFileButton = QPushButton("Find")
        flashFileButton.clicked.connect(self.findFlash)
        layoutFW.addWidget(QLabel("FLASH File"))
        layoutFW.addWidget(self.flashLocation)
        layoutFW.addWidget(flashFileButton)
        layout.addLayout(layoutFW)

        self.flashLocation.setText(QSettings().value("xmega-flash-location"))

        # Add buttons
        readSigBut = QPushButton("Check Signature")
        readSigBut.clicked.connect(self.readSignature)
        verifyFlashBut = QPushButton("Verify FLASH")
        verifyFlashBut.clicked.connect(self.verifyFlash)
        verifyFlashBut.setEnabled(False)
        progFlashBut = QPushButton("Erase/Program/Verify FLASH")
        progFlashBut.clicked.connect(self.writeFlash)

        layoutBut = QHBoxLayout()
        layoutBut.addWidget(readSigBut)
        layoutBut.addWidget(verifyFlashBut)
        layoutBut.addWidget(progFlashBut)
        layout.addLayout(layoutBut)

        # Add status stuff
        self.statusLine = QPlainTextEdit()
        self.statusLine.setReadOnly(True)
        # self.statusLine.setFixedHeight(QFontMetrics(self.statusLine.font()).lineSpacing() * 5 + 10)
        self.xmega.newTextLog.connect(self.append)
        layout.addWidget(self.statusLine)

        # Set dialog layout
        self.setLayout(layout)
Ejemplo n.º 6
0
    def __init__(self, parent=None):
        super(DesKeyScheduleDialog, self).__init__(parent)
        self.model = DES()

        layout = QVBoxLayout()
        self.setLayout(layout)

        self.indata = QtFixes.QLineEdit("")
        self.indata.setFont(QFont("Courier"))

        self.keysched = QTextEdit("")
        self.keysched.setFont(QFont("Courier"))

        self.inprnd = QComboBox()
        self.inprnd.currentIndexChanged.connect(self.inTextChanged)

        indataL = QHBoxLayout()
        indataL.addWidget(QLabel("Key:"))
        indataL.addWidget(self.indata)
        indataL.addWidget(QLabel("Round:"))
        indataL.addWidget(self.inprnd)
        self.indata.textChanged.connect(self.inTextChanged)

        gbIndata = QGroupBox("Round Key/Subkey")
        gbIndata.setLayout(indataL)
        layout.addWidget(gbIndata)

        gbKeySched = QGroupBox("Full Key Schedule")
        keyschedL = QVBoxLayout()
        keyschedL.addWidget(self.keysched)
        keyschedL.addWidget(
            QLabel(
                "X - Parity bits (not used); ? - Unknown/lost bits (could not be recovered)"
            ))
        gbKeySched.setLayout(keyschedL)

        layout.addWidget(gbKeySched)

        self.setWindowTitle("DES Key Schedule Calculator")
        self.setObjectName("DES Key Schedule")
        self.refreshRoundKeysLength()
        self.setMinimumSize(800, 400)
    def __init__(self, fwLoaderConfig):
        super(FWLoaderConfigGUI, self).__init__(CWMainGUI.getInstance())
        self.fwLoaderConfig = fwLoaderConfig
        self.setWindowTitle("ChipWhisperer (%s) Firmware Loader Configuration " % self.fwLoaderConfig.loader.name)
        layout = QVBoxLayout()

        gbFPGAMode = QGroupBox("FPGA Mode Selection")
        radioBuiltin = QRadioButton("Builtin")
        radioRelease = QRadioButton("External (.zip)")
        radioDebug = QRadioButton("Debug - no partial reconfig (.bit)")
        layoutGB = QHBoxLayout()
        layoutGB.addWidget(radioBuiltin)
        layoutGB.addWidget(radioRelease)
        layoutGB.addWidget(radioDebug)
        layoutGB.addStretch(1)
        gbFPGAMode.setLayout(layoutGB)
        layout.addWidget(gbFPGAMode)
        radioBuiltin.clicked.connect(lambda: self.setFPGAMode("builtin"))
        radioRelease.clicked.connect(lambda: self.setFPGAMode("zipfile"))
        radioDebug.clicked.connect(lambda: self.setFPGAMode("debug"))

        layoutFW = QHBoxLayout()
        self.firmwareLocation = QtFixes.QLineEdit()
        firmwareButton = QPushButton("Find")
        firmwareButton.clicked.connect(self.findFirmware)
        layoutFW.addWidget(QLabel("USB Firmware"))
        layoutFW.addWidget(self.firmwareLocation)
        layoutFW.addWidget(firmwareButton)

        if hasattr(self.fwLoaderConfig.loader, 'loadFirmware'):
            layout.addLayout(layoutFW)

        layoutBitZip = QHBoxLayout()
        self.bitZipLocation = QtFixes.QLineEdit()
        bitZipButton = QPushButton("Find")
        bitZipButton.clicked.connect(self.findZipBitstream)
        layoutBitZip.addWidget(QLabel("FPGA .zip (Release)"))
        layoutBitZip.addWidget(self.bitZipLocation)
        layoutBitZip.addWidget(bitZipButton)
        layout.addLayout(layoutBitZip)

        layoutBit = QHBoxLayout()
        self.bitDebugLocation = QtFixes.QLineEdit()
        bitButton = QPushButton("Find")
        bitButton.clicked.connect(self.findDebugBitstream)
        layoutBit.addWidget(QLabel("FPGA .bit file (DEBUG ONLY)"))
        layoutBit.addWidget(self.bitDebugLocation)
        layoutBit.addWidget(bitButton)
        layout.addLayout(layoutBit)

        layoutProgramNow = QHBoxLayout()
        self.programNow = QPushButton("Program FPGA (MUST be connected already)")
        self.programNow.clicked.connect(self.loadFPGA)
        layoutProgramNow.addWidget(self.programNow)
        layout.addLayout(layoutProgramNow)

        gbSAMFW = QGroupBox("SAM3U Firmware")
        layoutSAMFW = QVBoxLayout()
        pbSAMFW = QPushButton("Open SAM3U Update Widget")
        pbSAMFW.clicked.connect(self.upgradeSAM3)
        self.samfwVersion = QLabel("Detected FW Version: unknown")
        self.samfwVersionLatest = QLabel("Latest FW Version: unknown")
        layoutSAMFW.addWidget(self.samfwVersion)
        layoutSAMFW.addWidget(self.samfwVersionLatest)
        layoutSAMFW.addWidget(pbSAMFW)
        gbSAMFW.setLayout(layoutSAMFW)
        self.readFirmwareVersion()

        if isinstance(self.fwLoaderConfig.loader, ChipWhispererFWLoader.CWLite_Loader):
            layout.addWidget(gbSAMFW)

        self.setFPGAMode(QSettings().value("%s-fpga-bitstream-mode" % self.fwLoaderConfig.loader.name))
        self.fwLoaderConfig.loader._bsZipLoc = QSettings().value("%s-zipbitstream-location" % self.fwLoaderConfig.loader.name, self.fwLoaderConfig.loader._bsZipLoc)
        self.bitZipLocation.setText(self.fwLoaderConfig.loader._bsZipLoc)
        self.fwLoaderConfig.loader._bsLoc = QSettings().value("%s-debugbitstream-location" % self.fwLoaderConfig.loader.name, self.fwLoaderConfig.loader._bsLoc)
        self.bitDebugLocation.setText(self.fwLoaderConfig.loader._bsLoc)
        self.fwLoaderConfig.loader._fwFLoc = QSettings().value("%s-firmware-location" % self.fwLoaderConfig.loader.name, self.fwLoaderConfig.loader._fwFLoc)
        self.firmwareLocation.setText(self.fwLoaderConfig.loader._fwFLoc)

        radioBuiltin.setChecked(self.fwLoaderConfig.firmware_mode == "builtin")
        radioRelease.setChecked(self.fwLoaderConfig.firmware_mode == "zipfile")
        radioDebug.setChecked(self.fwLoaderConfig.firmware_mode == "debug")

        self.setLayout(layout)
Ejemplo n.º 8
0
    def __init__(self):
        super(AVRProgrammerDialog, self).__init__(CWMainGUI.getInstance())
        # self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)

        self.avr = AVRProgrammer()

        self.setWindowTitle("ChipWhisperer-Lite AVR Programmer")
        layout = QVBoxLayout()

        layoutFW = QHBoxLayout()
        self.flashLocation = QtFixes.QLineEdit()
        flashFileButton = QPushButton("Find")
        flashFileButton.clicked.connect(self.findFlash)
        layoutFW.addWidget(QLabel("FLASH File"))
        layoutFW.addWidget(self.flashLocation)
        layoutFW.addWidget(flashFileButton)
        layout.addLayout(layoutFW)

        self.flashLocation.setText(QSettings().value("avr-flash-location"))

        # Add buttons
        readSigBut = QPushButton("Check Signature")
        readSigBut.clicked.connect(self.readSignature)
        verifyFlashBut = QPushButton("Verify FLASH")
        verifyFlashBut.clicked.connect(self.verifyFlash)
        verifyFlashBut.setEnabled(False)
        progFlashBut = QPushButton("Erase/Program/Verify FLASH")
        progFlashBut.clicked.connect(self.writeFlash)

        layoutBut = QHBoxLayout()
        layoutBut.addWidget(readSigBut)
        layoutBut.addWidget(verifyFlashBut)
        layoutBut.addWidget(progFlashBut)
        layout.addLayout(layoutBut)

        layoutFuse = QHBoxLayout()

        readFuseBut = QPushButton("Read Fuses")
        readFuseBut.clicked.connect(self.readFuses)
        writeFuseBut = QPushButton("Write Fuses")
        writeFuseBut.clicked.connect(self.writeFuses)

        self.lowfuseLine = QtFixes.QLineEdit("?")
        self.lowfuseLine.setMaxLength(2)
        self.lowfuseLine.setFixedWidth(25)
        self.highfuseLine = QtFixes.QLineEdit("?")
        self.highfuseLine.setMaxLength(2)
        self.highfuseLine.setFixedWidth(25)
        self.extfuseLine = QtFixes.QLineEdit("?")
        self.extfuseLine.setMaxLength(2)
        self.extfuseLine.setFixedWidth(25)

        # Don't allow use to change these fuses
        self.highfuseLine.setReadOnly(True)
        self.extfuseLine.setReadOnly(True)

        layoutFuse.addWidget(readFuseBut)
        layoutFuse.addWidget(QLabel("LOW:"))
        layoutFuse.addWidget(self.lowfuseLine)
        layoutFuse.addWidget(QLabel("HIGH:"))
        layoutFuse.addWidget(self.highfuseLine)
        layoutFuse.addWidget(QLabel("EXT:"))
        layoutFuse.addWidget(self.extfuseLine)
        layoutFuse.addWidget(writeFuseBut)
        layout.addLayout(layoutFuse)

        layoutExtra = QHBoxLayout()
        self.clockMode = QPushButton("Enable Slow Clock Mode")
        self.clockMode.setCheckable(True)
        self.clockMode.clicked.connect(self.toggleSlowClock)
        layoutExtra.addWidget(self.clockMode)
        layoutExtra.addStretch()
        layout.addLayout(layoutExtra)

        # Add status stuff
        self.statusLine = QPlainTextEdit()
        self.statusLine.setReadOnly(True)
        # self.statusLine.setFixedHeight(QFontMetrics(self.statusLine.font()).lineSpacing() * 5 + 10)
        layout.addWidget(self.statusLine)
        self.avr.newTextLog.connect(self.append)

        # Set dialog layout
        self.setLayout(layout)
Ejemplo n.º 9
0
    def __init__(self, parent=None, cwliteUSB=None):
        super(SAM3LoaderConfig, self).__init__(parent)

        if cwliteUSB:
            self.cwLiteUSB = cwliteUSB._usb
        else:
            self.cwLiteUSB = None

        self.setWindowTitle("SAM3U Firmware Loader")
        layout = QVBoxLayout()

        gbSAMMode = QGroupBox("Step 1. Enable Bootloader")
        layoutGB = QVBoxLayout()

        if self.cwLiteUSB:
            pbBootmode = QPushButton("Enable Bootloader Mode")
            pbBootmode.clicked.connect(self.enableBootloader)
            layoutGB.addWidget(pbBootmode)
        else:
            labelUnconnected = QLabel(
                "USB not connected. If you have not yet enabled bootload mode: close this dialog, "
                +
                "connect to the scope/target, and open it again. If you have already enabled bootload "
                + "mode skip to Step 2.")
            labelUnconnected.setWordWrap(True)
            layoutGB.addWidget(labelUnconnected)

        labelWarnBoot1 = QLabel(
            "WARNING: Bootload mode will stay enabled until new firmware is loaded."
        )
        labelWarnBoot2 = QLabel(
            "NOTE: This only works on firmware 0.11 or later. Short 'ERASE' jumper to enable bootloader mode on earlier firmwares."
        )
        labelWarnBoot1.setWordWrap(True)
        labelWarnBoot2.setWordWrap(True)
        layoutGB.addWidget(labelWarnBoot1)
        layoutGB.addWidget(labelWarnBoot2)
        gbSAMMode.setLayout(layoutGB)
        layout.addWidget(gbSAMMode)

        gbSAMProgram = QGroupBox("Step 2. Program Binary")

        layoutSAMGB = QVBoxLayout()

        layoutFW = QHBoxLayout()
        self.firmwareLocation = QtFixes.QLineEdit()
        self.firmwareButton = QPushButton("Find")
        self.firmwareButton.clicked.connect(self.findFirmware)
        layoutFW.addWidget(QLabel("SAM3U Firmware"))
        layoutFW.addWidget(self.firmwareLocation)
        layoutFW.addWidget(self.firmwareButton)

        self.firmwareButton.setEnabled(False)
        self.firmwareLocation.setEnabled(False)

        self.serlist = QComboBox()
        serrefresh = QPushButton("Update List")
        serrefresh.clicked.connect(self.serialRefresh)

        layoutSerList = QHBoxLayout()
        layoutSerList.addWidget(self.serlist)
        layoutSerList.addWidget(serrefresh)

        pbProgram = QPushButton("Run Program")
        pbProgram.clicked.connect(self.runSamba)

        self.programStatus = QTextEdit(
            "You will have to wait for device to attach as a serial port. Once this "
            +
            "happens, press the 'Update List' button and select the proper serial port."
            + " Then hit 'Run Program' to update your device.")
        self.programStatus.setReadOnly(True)

        self.rbBuiltin = QRadioButton("Built-in")
        self.rbExternal = QRadioButton("External File")
        self.rbBuiltin.setChecked(True)
        FWModeRBLayout = QHBoxLayout()
        FWModeRBLayout.addWidget(self.rbBuiltin)
        FWModeRBLayout.addWidget(self.rbExternal)

        self.rbExternal.clicked.connect(self.rbbuiltinchange)
        self.rbBuiltin.clicked.connect(self.rbbuiltinchange)

        layoutSAMGB.addLayout(FWModeRBLayout)
        layoutSAMGB.addLayout(layoutFW)
        layoutSAMGB.addLayout(layoutSerList)
        layoutSAMGB.addWidget(pbProgram)
        layoutSAMGB.addWidget(self.programStatus)
        gbSAMProgram.setLayout(layoutSAMGB)
        layout.addWidget(gbSAMProgram)

        sam3uFWLoc = QSettings().value("cwlite-sam3u-firmware-location")

        rootprefix = util.getRootDir() + "/"

        if not sam3uFWLoc:
            defLocfwF = rootprefix + "../../../hardware/capture/chipwhisperer-lite/sam3u_fw/SAM3U_VendorExample/Debug/SAM3U_CW1173.bin"
            if os.path.isfile(defLocfwF):
                sam3uFWLoc = str(defLocfwF)
                QSettings().setValue("cwlite-sam3u-firmware-location",
                                     sam3uFWLoc)

        self.firmwareLocation.setText(sam3uFWLoc)

        gbDone = QGroupBox("Step 3. Reset")
        gbDoneLayout = QHBoxLayout()
        gbDone.setLayout(gbDoneLayout)
        gbDoneLabel = QLabel(
            "If the above succeeds, you need to power-cycle the target. Unplug & replug target. You may also "
            + "need to close and re-open ChipWhisperer-Capture.")
        gbDoneLabel.setWordWrap(True)
        gbDoneLayout.addWidget(gbDoneLabel)
        layout.addWidget(gbDone)

        self.setLayout(layout)
Ejemplo n.º 10
0
    def __init__(self, parent=None):
        super(ImportDPAv3Dialog, self).__init__(parent)
        self.parent = parent

        self.setWindowTitle("DPA Contest v3 Trace Format Importer")
        layout = QVBoxLayout()
        self.setLayout(layout)

        ### Selection of info.xml to import

        fileL = QHBoxLayout()
        fileL.addWidget(QLabel("info.xml file:"))
        self.fileLE = QtFixes.QLineEdit()
        #self.fileLE.setEnabled(False)
        fileL.addWidget(self.fileLE)
        filePB = QPushButton("Select info.xml")
        filePB.clicked.connect(self.selectInfo)
        fileL.addWidget(filePB)

        setupGB = QGroupBox("File Selection")
        setupGB.setLayout(fileL)
        layout.addWidget(setupGB)

        ### Settings found in info.xml, can be changed by user

        self.LETraces = QtFixes.QLineEdit()
        self.LETraces.setEnabled(False)

        self.LEPoints = QtFixes.QLineEdit()
        self.LEPoints.setEnabled(False)

        self.LEScope = QtFixes.QLineEdit()
        self.LETargetHW = QtFixes.QLineEdit()
        self.LETargetSW = QtFixes.QLineEdit()
        self.LEDate = QtFixes.QLineEdit()

        self.LENotes = QtFixes.QLineEdit()

        settingsL = QGridLayout()
        settingsL.addWidget(QLabel("Traces:"), 0, 0)
        settingsL.addWidget(self.LETraces, 0, 1)

        settingsL.addWidget(QLabel("Points:"), 0, 2)
        settingsL.addWidget(self.LEPoints, 0, 3)

        settingsL.addWidget(QLabel("Date:"), 1, 0)
        settingsL.addWidget(self.LEDate, 1, 1)

        settingsL.addWidget(QLabel("TargetHW:"), 2, 0)
        settingsL.addWidget(self.LETargetHW, 2, 1)

        settingsL.addWidget(QLabel("TargetSW:"), 2, 2)
        settingsL.addWidget(self.LETargetSW, 2, 3)

        settingsL.addWidget(QLabel("ScopeName:"), 3, 0)
        settingsL.addWidget(self.LEScope, 3, 1)

        settingsL.addWidget(QLabel("Notes:"), 4, 0)
        settingsL.addWidget(self.LENotes, 4, 1)

        settingsGB = QGroupBox("Imported Parameters")
        settingsGB.setLayout(settingsL)
        layout.addWidget(settingsGB)

        ### Import Options
        importL = QGridLayout()

        importL.addWidget(QLabel("Target Dir:"), 0, 0)
        targetDirLE = QtFixes.QLineEdit()
        targetDirLE.setText("./traces/")
        targetDirLE.setEnabled(False)
        importL.addWidget(targetDirLE, 0, 1)

        self.prefixDirLE = QtFixes.QLineEdit()
        self.prefixDirLE.setText("001")
        importL.addWidget(QLabel("Prefix:"), 0, 2)
        importL.addWidget(self.prefixDirLE, 0, 3)

        importPB = QPushButton("Run Import")
        importPB.clicked.connect(self.doImport)
        importL.addWidget(importPB, 4, 0)

        importGB = QGroupBox("Import Options")
        importGB.setLayout(importL)
        layout.addWidget(importGB)
Ejemplo n.º 11
0
    def __init__(self, parent, cwAPI):
        super(SerialTerminalDialog, self).__init__(parent)
        self.cwAPI = cwAPI
        self.mainLayout = QVBoxLayout()

        ### Layout for text boxes
        self.textLayouts = QGridLayout()

        self.textOut = QTextEdit()
        self.textIn = QtFixes.QLineEdit()
        self.textIn.returnPressed.connect(self.returnPressedIn)

        self.textInSend = QPushButton("Send")
        self.textInSend.clicked.connect(self.returnPressedIn)

        self.textClear = QPushButton("Clear")
        self.textClear.clicked.connect(self.textOut.clear)

        # 3 = rowSpan
        self.textLayouts.addWidget(self.textOut, 0, 0)
        self.textLayouts.addWidget(self.textIn, 1, 0)
        self.textLayouts.addWidget(self.textInSend, 1, 1)
        self.textLayouts.addWidget(self.textClear, 0, 1)

        self.textOut.setReadOnly(True)

        ### Layout for line end & printing characters
        self.mainLayout.addLayout(self.textLayouts)

        self.settingsLineLayout = QHBoxLayout()
        self.settingsLineEnd = QComboBox()
        self.settingsLineEnd.addItem("\\n", '\n')
        self.settingsLineEnd.addItem("\\r", '\r')
        self.settingsLineEnd.addItem("\\n\\r", '\n\r')
        self.settingsLineEnd.addItem("\\r\\n", '\n\r')
        self.settingsLineEnd.addItem("None", '')
        self.settingsLineLayout.addWidget(QLabel("TX on Send: "))
        self.settingsLineLayout.addWidget(self.settingsLineEnd)
        self.settingsLineLayout.addStretch()

        self.rxDisplayMode = QComboBox()
        self.rxDisplayMode.addItem("ASCII Only", 0)
        self.rxDisplayMode.addItem("ASCII with Hex for Invalid ASCII", 1)
        self.rxDisplayMode.addItem("HEX Only", 2)
        self.rxDisplayMode.setCurrentIndex(1)

        self.settingsLineLayout.addWidget(QLabel("RX/TX: Display Mode"))
        self.settingsLineLayout.addWidget(self.rxDisplayMode)

        self.mainLayout.addLayout(self.settingsLineLayout)
        
        hsep = QFrame()
        hsep.setFrameShape(QFrame.HLine)
        self.mainLayout.addWidget(hsep)
        
        ### Layout for connection settings
        self.conLayout = QHBoxLayout()

        self.pollIntervalSP = QSpinBox()
        self.pollIntervalSP.setMinimum(5)
        self.pollIntervalSP.setMaximum(500)
        self.pollIntervalSP.setValue(200)
        self.pollIntervalSP.valueChanged.connect(self.updateTimerInterval)
        
        self.conPB = QPushButton("Connect")
        self.conLayout.addWidget(self.conPB)
        self.conLayout.addWidget(QLabel("Set target in main GUI"))
        self.conLayout.addStretch()
        self.conLayout.addWidget(QLabel("Polling Interval (mS)"))
        self.conLayout.addWidget(self.pollIntervalSP)
        self.conPB.clicked.connect(self.handleConButton)
        self.conPB.setCheckable(True)

        self.mainLayout.addLayout(self.conLayout)

        # ## Final Setup

        self.textIn.setEnabled(False)
        self.textOut.setEnabled(False)

        self.setLayout(self.mainLayout)
        self.hide()

        self.serialGood = False
        self.timerRead = QTimer()
        self.timerRead.timeout.connect(self.checkRead)

        self.driver = None
Ejemplo n.º 12
0
    def __init__(self, parent=None):
        super(AesKeyScheduleDialog, self).__init__(parent)
        self.model = AES128_8bit()

        layout = QVBoxLayout()
        self.setLayout(layout)

        self.outmode = QComboBox()
        self.outmode.addItem("AABBCC...EEFF", ["", ""])
        self.outmode.addItem("AA:BB:CC...EE:FF", ["", ":"])
        self.outmode.addItem("AA BB CC...EE FF", ["", " "])
        self.outmode.addItem("AA,BB,CC...EE,FF", ["", ","])
        self.outmode.addItem("0xAA, 0xBB, 0xCC... 0xEE, 0xFF", ["0x", ", "])
        self.outmode.currentIndexChanged.connect(self.inTextChanged)

        self.indata = QtFixes.QLineEdit("")
        self.indata.setFont(QFont("Courier"))

        self.keysched = QTextEdit("")
        self.keysched.setFont(QFont("Courier"))

        self.outkey = QtFixes.QLineEdit("")
        self.outkey.setReadOnly(True)
        self.outkey.setFont(QFont("Courier"))

        outmodeL = QHBoxLayout()
        outmodeL.addWidget(QLabel("Format:"))
        outmodeL.addWidget(self.outmode)
        outmodeL.addStretch()

        self.inprnd = QComboBox()
        self.inprnd.currentIndexChanged.connect(self.inTextChanged)
        self.setKeyLength(128)

        indataL = QHBoxLayout()
        indataL.addWidget(QLabel("Key:"))
        indataL.addWidget(self.indata)
        indataL.addWidget(self.inprnd)
        self.indata.textChanged.connect(self.inTextChanged)

        outdataL = QHBoxLayout()
        outdataL.addWidget(QLabel("Key:"))
        outdataL.addWidget(self.outkey)

        gbIndata = QGroupBox("Input Known Key")
        gbIndata.setLayout(indataL)
        layout.addWidget(gbIndata)

        gbOutdata = QGroupBox("Output Desired Key")
        outdataTotalL = QVBoxLayout()
        outdataTotalL.addLayout(outmodeL)
        outdataTotalL.addLayout(outdataL)
        gbOutdata.setLayout(outdataTotalL)
        layout.addWidget(gbOutdata)

        gbKeySched = QGroupBox("Full Key Schedule")
        keyschedL = QVBoxLayout()
        keyschedL.addWidget(self.keysched)
        gbKeySched.setLayout(keyschedL)

        layout.addWidget(gbKeySched)

        self.setWindowTitle("AES-128/AES-256 Key Schedule Calculator")
        self.setObjectName("AES Key Schedule")
        self.setWindowIcon(QIcon(":/images/cwiconA.png"))
        self.setMinimumSize(800, 400)