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()
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)
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"))
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}
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)
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)
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)
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)
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)
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
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)