protected boolean createDataSetKey() { XnatToolPanelController masterController = createDialog.getMasterController(); String sourceId = masterController.getDataSetSourceID(); DataSetConfig dataSetConfig = masterController.getDataSetConfig(); if (dataSetConfig == null) { masterController.showError("No DataSet Configuration Created. Create one first!"); return false; } String dataSetName = dataSetConfig.getDataSetName(); Secret passP1 = createDialog.getPassphraseSecret(); if ((passP1.getChars() == null) || (passP1.getChars().length < 8)) { masterController.showError("Passphrase is to short!"); return false; } SecretHolder valueH = new SecretHolder(); masterController.uiAskField( "Verify passphrase.", "Verify your passphrase Please for DataSet:" + dataSetName, valueH); if (valueH.value == null || valueH.value.isEmpty()) { masterController.logger.debugPrintf( "KeyCreateDialogController:doCreateNewKey(): Cancelled\n"); return false; } Secret secret2 = valueH.value; if (!passP1.equals(secret2)) { masterController.showError("Passphrases do not match!"); return false; } try { // Use passphrase both as key digest source and encryption password // for now. Secret keySourceText = secret2; Secret keyPassphrase = secret2; XnatTool xnatTool = masterController.getXnatTool(); xnatTool.initializeEncryptionKeyFromSourceText(sourceId, keySourceText, keyPassphrase); // authenticate and initalize encryption: xnatTool.authenticateEncryptionKeys(sourceId, keyPassphrase, false); byte rawKey[] = xnatTool.getCurrentDataSetConfig().getEncryptionKey(); this.createDialog.setKey(rawKey, this.createDialog.showRawKeyCB.isSelected()); this.createDialog.setPassphrase(secret2); // / update main panel as well: this.createDialog.getMasterController().updatePassphrase(keyPassphrase); return true; } catch (Exception e) { this.handle("Could not initialize new Encryption Key.", e); } return false; }