From 621d9e5c413e561293d7484b93882d985b3fe15f Mon Sep 17 00:00:00 2001 From: Endi Sukma Dewata Date: Sat, 24 Mar 2012 02:27:47 -0500 Subject: Removed unnecessary pki folder. Previously the source code was located inside a pki folder. This folder was created during svn migration and is no longer needed. This folder has now been removed and the contents have been moved up one level. Ticket #131 --- .../netscape/admin/certsrv/keycert/WKeyPage.java | 809 +++++++++++++++++++++ 1 file changed, 809 insertions(+) create mode 100644 base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java (limited to 'base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java') diff --git a/base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java b/base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java new file mode 100644 index 000000000..40d601c1d --- /dev/null +++ b/base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java @@ -0,0 +1,809 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2007 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- +package com.netscape.admin.certsrv.keycert; + +import java.awt.*; +import java.awt.event.*; +import java.util.*; +import javax.swing.*; +import javax.swing.border.*; + +import com.netscape.admin.certsrv.*; +import com.netscape.admin.certsrv.connection.*; +import com.netscape.admin.certsrv.wizard.*; +import com.netscape.certsrv.common.*; +import com.netscape.admin.certsrv.config.*; +import javax.swing.text.*; + +/** + * Setup key information for certificate setup wizard. + * + * @author Christine Ho + * @version $Revision$, $Date$ + * @see com.netscape.admin.certsrv.config.install + */ +class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { + private Color mActiveColor; + private JPanel mNicknamePanel; + private JRadioButton mExistingKeyBtn; + private JRadioButton mNewKeyBtn; + private JComboBox mKeyTypeBox, mDSAKeyTypeBox; + private JComboBox mKeyLengthBox, mDSAKeyLengthBox, mKeyCurveBox; + private JComboBox mTokenBox, mNicknameBox; + private JTextField mKeyLengthText; + private JTextField mKeyCurveText; + private JLabel keyHeading, keyTypeLbl, keyLengthLbl, keyCurveLbl, unitLbl, + unit1Lbl, mTokenLbl, mNicknameLbl; + private JLabel keyLengthCustomText, keyCurveCustomText; + private static final String PANELNAME = "KEYWIZARD"; + private CertSetupWizardInfo wizardInfo; + private static final String HELPINDEX = + "configuration-keycert-wizard-key-help"; + + WKeyPage(JDialog parent) { + super(PANELNAME); + mParent = parent; + init(); + } + + WKeyPage(JDialog parent, JFrame frame) { + super(PANELNAME); + mParent = parent; + mAdminFrame = frame; + init(); + } + + public boolean isLastPage() { + return false; + } + + public boolean initializePanel(WizardInfo info) { + wizardInfo = (CertSetupWizardInfo)info; + if (wizardInfo.getOperationType().equals(wizardInfo.INSTALLTYPE)) + return false; + + String title = ""; + String certType = wizardInfo.getCertType(); + if (certType.equals(Constants.PR_CA_SIGNING_CERT)) + title = mResource.getString("KEYWIZARD_BORDER_CASIGNING_LABEL"); + else if (certType.equals(Constants.PR_RA_SIGNING_CERT)) + title = mResource.getString("KEYWIZARD_BORDER_RASIGNING_LABEL"); + else if (certType.equals(Constants.PR_KRA_TRANSPORT_CERT)) + title = mResource.getString("KEYWIZARD_BORDER_KRATRANSPORT_LABEL"); + else if (certType.equals(Constants.PR_OCSP_SIGNING_CERT)) + title = mResource.getString("KEYWIZARD_BORDER_OCSPSIGNING_LABEL"); + else if (certType.equals(Constants.PR_SERVER_CERT) || + certType.equals(Constants.PR_SERVER_CERT_RADM)) + title = mResource.getString("KEYWIZARD_BORDER_SERVER_LABEL"); + else if (certType.equals(Constants.PR_OTHER_CERT)) + title = mResource.getString("KEYWIZARD_BORDER_OTHER_LABEL"); + + setBorder(new TitledBorder(title)); + if (certType.equals(Constants.PR_OTHER_CERT)) { + mNicknamePanel.setVisible(true); + mNicknameLbl.setVisible(true); + mNicknameBox.setVisible(true); + if (mNicknameBox.getItemCount() <= 0) { + String str = wizardInfo.getNicknames(); + StringTokenizer tokenizer1 = new StringTokenizer(str, ","); + while (tokenizer1.hasMoreTokens()) { + mNicknameBox.addItem((String)tokenizer1.nextToken()); + } + } + } else { + mNicknamePanel.setVisible(false); + mNicknameLbl.setVisible(false); + mNicknameBox.setVisible(false); + } + + if (mTokenBox.getItemCount() > 0) { +/* + if (mNewKeyBtn.isSelected() || certType.equals(Constants.PR_OTHER_CERT)) { + mTokenBox.setEnabled(true); + mTokenLbl.setEnabled(true); + } else { + mTokenBox.setEnabled(false); + mTokenLbl.setEnabled(false); + } +*/ + return true; + } + + String tokenList = wizardInfo.getTokenList(); + StringTokenizer tokenizer = new StringTokenizer(tokenList, ","); + while (tokenizer.hasMoreTokens()) { + mTokenBox.addItem((String)tokenizer.nextToken()); + } + + mTokenBox.addItemListener(this); + + if (certType.equals(Constants.PR_CA_SIGNING_CERT) || + certType.equals(Constants.PR_RA_SIGNING_CERT) || + certType.equals(Constants.PR_OCSP_SIGNING_CERT) ) { + mDSAKeyTypeBox.setVisible(true); + mKeyTypeBox.setVisible(false); + } else { + mDSAKeyTypeBox.setVisible(false); + mKeyTypeBox.setVisible(true); + } + + String type = (String)mKeyTypeBox.getSelectedItem(); + if (mDSAKeyTypeBox.isVisible()) { + type = (String)mDSAKeyTypeBox.getSelectedItem(); + } + + setLengthCurveFields(type); + enableKeyLengthFields(); + + //if (mNewKeyBtn.isSelected() || certType.equals(Constants.PR_OTHER_CERT)) { + if (mNewKeyBtn.isSelected()) { + mTokenBox.setEnabled(true); + mTokenLbl.setEnabled(true); + } else { + mTokenBox.setEnabled(false); + mTokenLbl.setEnabled(false); + } + +/* + if (certType.equals(Constants.PR_SERVER_CERT)) { + mKeyLengthBox.removeItem("4096"); + mKeyLengthBox.setSelectedIndex(0); + } +*/ + + if (certType.equals(Constants.PR_SERVER_CERT_RADM)) { + mKeyLengthBox.removeItem("768"); + mKeyLengthBox.removeItem("4096"); + mKeyLengthBox.removeItem("Custom"); + mKeyLengthBox.setSelectedIndex(0); + } + + CMSAdminUtil.repaintComp(mTokenBox); + CMSAdminUtil.repaintComp(mTokenLbl); + CMSAdminUtil.repaintComp(mNicknamePanel); + CMSAdminUtil.repaintComp(mNicknameLbl); + CMSAdminUtil.repaintComp(mNicknameBox); + + return true; + } + + public boolean validatePanel() { + if (mKeyLengthText.isVisible() && mKeyLengthText.isEnabled()) { + String str = mKeyLengthText.getText().trim(); + if (str.equals("")) { + setErrorMessage("BLANKLEN"); + return false; + } else { + try { + int num = Integer.parseInt(str); + if (num <= 0) { + setErrorMessage("INVALIDKEYLEN"); + return false; + } + } catch (NumberFormatException e) { + setErrorMessage("NONINTEGER"); + return false; + } + } + } + + /* + if (mKeyCurveText.isVisible() && mKeyCurveText.isEnabled()) { + String str = mKeyCurveText.getText().trim(); + if (str.equals("")) { + setErrorMessage("BLANKCURVE"); + return false; + } + }*/ + + return true; + } + + public boolean concludePanel(WizardInfo info) { + AdminConnection connection = wizardInfo.getAdminConnection(); + NameValuePairs nvps = new NameValuePairs(); + + if (mNewKeyBtn.isSelected()) { + String val = ""; + + if (mKeyLengthBox.isVisible()) { + val = (String)mKeyLengthBox.getSelectedItem(); + } else if (mKeyCurveBox.isVisible()) { + val = (String)mKeyCurveBox.getSelectedItem(); + } else { + if (mDSAKeyLengthBox.isVisible()) + val = (String)mDSAKeyLengthBox.getSelectedItem(); + } + + if (val.equals("Custom")) { + if (mKeyCurveBox.isVisible()) { // ECC + wizardInfo.addEntry(Constants.PR_KEY_CURVENAME, + mKeyCurveText.getText().trim()); + nvps.put(Constants.PR_KEY_CURVENAME, mKeyCurveText.getText().trim()); + } else { + wizardInfo.addEntry(Constants.PR_KEY_LENGTH, + mKeyLengthText.getText().trim()); + nvps.put(Constants.PR_KEY_LENGTH, mKeyLengthText.getText().trim()); + } + } else { + if (mKeyCurveBox.isVisible()) { // ECC + wizardInfo.addEntry(Constants.PR_KEY_CURVENAME, val.trim()); + nvps.put(Constants.PR_KEY_CURVENAME, val.trim()); + } else { + wizardInfo.addEntry(Constants.PR_KEY_LENGTH, val.trim()); + nvps.put(Constants.PR_KEY_LENGTH, val.trim()); + } + } + + if (mKeyTypeBox.isVisible()) { + wizardInfo.addEntry(Constants.PR_KEY_TYPE, + (String)mKeyTypeBox.getSelectedItem()); + nvps.put(Constants.PR_KEY_TYPE, (String) mKeyTypeBox.getSelectedItem()); + } else if (mDSAKeyTypeBox.isVisible()) { + wizardInfo.addEntry(Constants.PR_KEY_TYPE, + (String)mDSAKeyTypeBox.getSelectedItem()); + nvps.put(Constants.PR_KEY_TYPE, (String) mDSAKeyTypeBox.getSelectedItem()); + } + } + + startProgressStatus(); + + String certType = wizardInfo.getCertType(); + nvps.put(Constants.PR_SUBJECT_NAME, ""); + nvps.put(Constants.PR_CERTIFICATE_TYPE, certType); + + try { + // validate the key length or curvename + if (mKeyCurveBox.isVisible()) { //ECC + connection.validate(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_KEY_CURVENAME, nvps); + } else { + connection.validate(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_KEY_LENGTH, nvps); + } + + NameValuePairs response = null; + if (!mNewKeyBtn.isSelected()) { + + if (mNicknameBox.isVisible()) { + String nicknameStr = (String)mNicknameBox.getSelectedItem(); + nvps.put(Constants.PR_NICKNAME, nicknameStr); + response = connection.process( + DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SUBJECT_NAME, + wizardInfo.getCertType(), nvps); + wizardInfo.addEntry(Constants.PR_NICKNAME, nicknameStr); + } else { + response = connection.read( + DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_SUBJECT_NAME, + wizardInfo.getCertType(), nvps); + } + + String value = response.get(Constants.PR_SUBJECT_NAME); + wizardInfo.addEntry(Constants.PR_SUBJECT_NAME, value); + } + + if (mNewKeyBtn.isSelected()) { + String tokenName = (String)mTokenBox.getSelectedItem(); + if (tokenName.equals("internal")) + tokenName = Constants.PR_INTERNAL_TOKEN_NAME; + nvps.clear(); + nvps.put(Constants.PR_TOKEN_NAME, tokenName); + response = connection.process(DestDef.DEST_SERVER_ADMIN, + ScopeDef.SC_TOKEN_STATUS, Constants.RS_ID_CONFIG, nvps); + + String value = response.get(Constants.PR_LOGGED_IN); + wizardInfo.addEntry(Constants.PR_LOGGED_IN, value); + wizardInfo.addEntry(Constants.PR_TOKEN_NAME, tokenName); + } + } catch (EAdminException e) { + //showErrorDialog(e.toString()); + setErrorMessage(e.toString()); + endProgressStatus(); + return false; + } + + endProgressStatus(); + return true; + } + + public void callHelp() { + CMSAdminUtil.help(HELPINDEX); + } + + protected void init() { + GridBagLayout gb = new GridBagLayout(); + GridBagConstraints gbc = new GridBagConstraints(); + setLayout(gb); + + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + add(panel, gbc); + + JTextArea selectTokenLbl = createTextArea(mResource.getString( + PANELNAME+"_LABEL_SELECTTOKEN_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0, COMPONENT_SPACE,0); + panel.add(selectTokenLbl, gbc); + + mTokenLbl = makeJLabel("TOKEN"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.insets = new Insets(COMPONENT_SPACE, 0, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.fill = gbc.NONE; + panel.add(mTokenLbl, gbc); + + mTokenBox = new JComboBox(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + //gbc.weightx = 1.0; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel.add(mTokenBox, gbc); + + JTextArea dummy2 = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + panel.add(dummy2, gbc); + + JTextArea createKeyLbl = createTextArea(mResource.getString( + PANELNAME+"_LABEL_KEYPAIR_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(createKeyLbl, gbc); + + mExistingKeyBtn = makeJRadioButton("OLDKEY", true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mExistingKeyBtn, gbc); + + mNicknamePanel = new JPanel(); + GridBagLayout gb3 = new GridBagLayout(); + mNicknamePanel.setLayout(gb3); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.fill = gbc.BOTH; + gbc.weightx = 1.0; + add(mNicknamePanel, gbc); + + mNicknameLbl = makeJLabel("NICKNAME"); + CMSAdminUtil.resetGBC(gbc); + //gbc.anchor = gbc.CENTER; + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + //gbc.fill = gbc.NONE; + gbc.fill = gbc.HORIZONTAL; + mNicknamePanel.add(mNicknameLbl, gbc); + + JLabel dummy18 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.fill = gbc.HORIZONTAL; + mNicknamePanel.add(dummy18, gbc); + + mNicknameBox = new JComboBox(); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + //gbc.fill = gbc.NONE; + gbc.fill = gbc.BOTH; + gbc.weightx = 1.0; + gbc.insets = new Insets(COMPONENT_SPACE, 2*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + mNicknamePanel.add(mNicknameBox, gbc); + +/* + JTextArea dummy22 = createTextArea(" ", 1, 5); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + mNicknamePanel.add(dummy22, gbc); +*/ + + mNewKeyBtn = makeJRadioButton("NEWKEY", false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mNewKeyBtn, gbc); + + ButtonGroup grp = new ButtonGroup(); + grp.add(mExistingKeyBtn); + grp.add(mNewKeyBtn); + +/* + JPanel panel = new JPanel(); + GridBagLayout gb1 = new GridBagLayout(); + panel.setLayout(gb1); +*/ + + keyHeading = makeJLabel("KEY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE, COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + add(keyHeading, gbc); + + keyTypeLbl = makeJLabel("KEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(keyTypeLbl, gbc); + + mKeyTypeBox = makeJComboBox("KEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mKeyTypeBox, gbc); + + mDSAKeyTypeBox = makeJComboBox("DSAKEYTYPE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + add(mDSAKeyTypeBox, gbc); + + JLabel dummy = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + add(dummy, gbc); + + keyLengthLbl = makeJLabel("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.fill = gbc.NONE; + //gbc.weighty = 1.0; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(keyLengthLbl, gbc); + //panel.add(keyLengthLbl, gbc); + + mKeyLengthBox = makeJComboBox("KEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + //gbc.weighty = 1.0; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(mKeyLengthBox, gbc); + //panel.add(mKeyLengthBox, gbc); + + mDSAKeyLengthBox = makeJComboBox("DSAKEYLENGTH"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + //gbc.weighty = 1.0; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(mDSAKeyLengthBox, gbc); + //panel.add(mDSAKeyLengthBox, gbc); + + keyCurveLbl = makeJLabel("KEYCURVE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(keyCurveLbl, gbc); + + mKeyCurveBox = makeJComboBox("KEYCURVE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE); + add(mKeyCurveBox, gbc); + + unitLbl = makeJLabel("UNITS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.CENTER; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + //gbc.weighty = 1.0; + gbc.insets = new Insets(0, 0,COMPONENT_SPACE, COMPONENT_SPACE); + add(unitLbl, gbc); + //panel.add(unitLbl, gbc); + + JPanel panel1 = new JPanel(); + GridBagLayout gb2 = new GridBagLayout(); + panel1.setLayout(gb2); + + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.insets = new Insets(0, 0, 0, 0); + add(panel1, gbc); + + keyLengthCustomText = makeJLabel("CUSTOMKEY"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel1.add(keyLengthCustomText, gbc); + + keyCurveCustomText = makeJLabel("CUSTOMKEYCURVE"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(COMPONENT_SPACE, 4*COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + panel1.add(keyCurveCustomText, gbc); + + mKeyLengthText = makeJTextField(7); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, 0); + panel1.add(mKeyLengthText, gbc); + mActiveColor = mKeyLengthText.getBackground(); + + mKeyCurveText = makeJTextField(7); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.fill = gbc.NONE; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, 0); + panel1.add(mKeyCurveText, gbc); + + unit1Lbl = makeJLabel("UNITS"); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.weightx = 1.0; + gbc.gridwidth = gbc.REMAINDER; + //gbc.gridheight = gbc.REMAINDER; + gbc.insets = new Insets(0, COMPONENT_SPACE, 0, COMPONENT_SPACE); + panel1.add(unit1Lbl, gbc); + + JLabel dummy1 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.gridheight = gbc.REMAINDER; + gbc.weighty = 1.0; + add(dummy1, gbc); + + enableFields(false, getBackground()); + super.init(); + } + + public void getUpdateInfo(WizardInfo info) { + if (mNewKeyBtn.isSelected()) { + wizardInfo.addEntry(wizardInfo.KEY_MATERIAL, Constants.TRUE); + } else if (mExistingKeyBtn.isSelected()) + wizardInfo.addEntry(wizardInfo.KEY_MATERIAL, Constants.FALSE); + } + + public void actionPerformed(ActionEvent e) { + Object source = e.getSource(); + if (source.equals(mExistingKeyBtn)) { + enableFields(false, getBackground()); + enableKeyLengthFields(); + mTokenBox.setEnabled(false); + mTokenLbl.setEnabled(false); + } else if (source.equals(mNewKeyBtn)) { + String certType = wizardInfo.getCertType(); + if (certType.equals(Constants.PR_CA_SIGNING_CERT)) { + WarningDialog dialog = new WarningDialog(wizardInfo.getFrame(), + "_TEXT_DESC_LABEL"); + } + enableFields(true, mActiveColor); + enableKeyLengthFields(); + mTokenBox.setEnabled(true); + mTokenLbl.setEnabled(true); + } + CMSAdminUtil.repaintComp(mTokenBox); + CMSAdminUtil.repaintComp(mTokenLbl); + } + + public void setLengthCurveFields(String type) { + if (type.equals("RSA")) { + mDSAKeyLengthBox.setVisible(false); + mKeyLengthBox.setVisible(true); + mKeyCurveBox.setVisible(false); + keyLengthCustomText.setVisible(true); + keyCurveCustomText.setVisible(false); + keyLengthLbl.setVisible(true); + keyCurveLbl.setVisible(false); + unit1Lbl.setVisible(true); + unitLbl.setVisible(true); + mKeyLengthText.setVisible(true); + mKeyCurveText.setVisible(false); + } else if (type.equals("ECC")) { + mDSAKeyLengthBox.setVisible(false); + mKeyLengthBox.setVisible(false); + mKeyCurveBox.setVisible(true); + keyLengthCustomText.setVisible(false); + keyCurveCustomText.setVisible(true); + keyLengthLbl.setVisible(false); + keyCurveLbl.setVisible(true); + unit1Lbl.setVisible(false); + unitLbl.setVisible(false); + mKeyLengthText.setVisible(false); + mKeyCurveText.setVisible(true); + } else { + mDSAKeyLengthBox.setVisible(true); + mKeyLengthBox.setVisible(false); + mKeyCurveBox.setVisible(false); + keyLengthCustomText.setVisible(true); + keyCurveCustomText.setVisible(false); + keyLengthLbl.setVisible(true); + keyCurveLbl.setVisible(false); + unit1Lbl.setVisible(true); + unitLbl.setVisible(true); + mKeyLengthText.setVisible(true); + mKeyCurveText.setVisible(false); + } + } + + + public void itemStateChanged(ItemEvent e) { + if (e.getSource().equals(mKeyLengthBox) || + e.getSource().equals(mKeyCurveBox) || + e.getSource().equals(mDSAKeyLengthBox)) { + enableKeyLengthFields(); + } else if (e.getSource().equals(mKeyTypeBox) || + e.getSource().equals(mDSAKeyTypeBox)) { + String type = ""; + if (mKeyTypeBox.isVisible()) + type = (String)mKeyTypeBox.getSelectedItem(); + else if (mDSAKeyTypeBox.isVisible()) + type = (String)mDSAKeyTypeBox.getSelectedItem(); + + setLengthCurveFields(type); + enableKeyLengthFields(); + CMSAdminUtil.repaintComp(this); + } + } + + private void enableKeyLengthFields() { + String value = ""; + + if (mKeyLengthBox.isVisible()) + value = (String)mKeyLengthBox.getSelectedItem(); + else if (mKeyCurveBox.isVisible()) + value = (String)mKeyCurveBox.getSelectedItem(); + else + value = (String)mDSAKeyLengthBox.getSelectedItem(); + + if (value.equals("Custom") && mNewKeyBtn.isSelected()) { + if (mKeyCurveBox.isVisible()) { //ECC + enableFields(keyCurveCustomText, mKeyCurveText, true, mActiveColor); + } else { + enableFields(keyLengthCustomText, mKeyLengthText, true, mActiveColor); + enableFields(unit1Lbl, null, true, mActiveColor); + } + } else { + if (mKeyCurveBox.isVisible()) { //ECC + enableFields(keyCurveCustomText, mKeyCurveText, false, + getBackground()); + } else { + enableFields(keyLengthCustomText, mKeyLengthText, false, + getBackground()); + enableFields(unit1Lbl, null, false, getBackground()); + } + } + } + + protected void enableFields(JComponent comp1, JTextComponent comp2, + boolean enable, Color color) { + if (comp1 != null) { + comp1.setEnabled(enable); + CMSAdminUtil.repaintComp(comp1); + } + if (comp2 != null) { + comp2.setEnabled(enable); + comp2.setBackground(color); + comp2.setEditable(enable); + CMSAdminUtil.repaintComp(comp2); + } + } + + private void enableFields(boolean enable, Color color) { + keyHeading.setEnabled(enable); + keyTypeLbl.setEnabled(enable); + keyLengthLbl.setEnabled(enable); + keyCurveLbl.setEnabled(enable); + unitLbl.setEnabled(enable); + unit1Lbl.setEnabled(enable); + keyLengthCustomText.setEnabled(enable); + keyCurveCustomText.setEnabled(enable); + mKeyLengthText.setEnabled(enable); + mKeyLengthText.setEditable(enable); + mKeyLengthText.setBackground(color); + mKeyCurveText.setEnabled(enable); + mKeyCurveText.setEditable(enable); + mKeyCurveText.setBackground(color); + mKeyTypeBox.setEnabled(enable); + mDSAKeyTypeBox.setEnabled(enable); + mKeyLengthBox.setEnabled(enable); + mKeyCurveBox.setEnabled(enable); + mDSAKeyLengthBox.setEnabled(enable); + repaintComp(keyHeading); + repaintComp(keyTypeLbl); + repaintComp(keyLengthLbl); + repaintComp(keyCurveLbl); + repaintComp(unitLbl); + repaintComp(unit1Lbl); + repaintComp(keyLengthCustomText); + repaintComp(keyCurveCustomText); + repaintComp(mKeyLengthText); + repaintComp(mKeyCurveText); + repaintComp(mKeyTypeBox); + repaintComp(mDSAKeyTypeBox); + repaintComp(mKeyLengthBox); + repaintComp(mKeyCurveBox); + repaintComp(mDSAKeyLengthBox); + } + + private void repaintComp(JComponent component) { + component.invalidate(); + component.validate(); + component.repaint(1); + } +} -- cgit