diff options
author | vakwetu <vakwetu@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-11-04 19:36:19 +0000 |
---|---|---|
committer | vakwetu <vakwetu@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-11-04 19:36:19 +0000 |
commit | 01383ff92cecca2169eb5ee7a49eb85621503c4d (patch) | |
tree | a452478ede657705679ab0cd5ce4455864b55804 /pki/base/console/src/com/netscape/admin | |
parent | 31903443b785bc194abe27e75b5fa6021facabcc (diff) | |
download | pki-01383ff92cecca2169eb5ee7a49eb85621503c4d.tar.gz pki-01383ff92cecca2169eb5ee7a49eb85621503c4d.tar.xz pki-01383ff92cecca2169eb5ee7a49eb85621503c4d.zip |
Bugzilla Bug 451874 - RFE - Java console - Certificate Wizard missing e.c. support
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@1473 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki/base/console/src/com/netscape/admin')
9 files changed, 333 insertions, 51 deletions
diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java index be76ef68f..ce0ced102 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/config/WMessageDigestPage.java @@ -41,9 +41,11 @@ import com.netscape.management.client.util.*; * @see com.netscape.admin.certsrv.config.install */ public class WMessageDigestPage extends WizardBasePanel implements IWizardPanel { - protected JComboBox mRSAHashTypeBox, mDSAHashTypeBox; + protected JComboBox mRSAHashTypeBox, mDSAHashTypeBox, mECCHashTypeBox; + protected JComboBox mRSASignedByTypeBox, mDSASignedByTypeBox, mECCSignedByTypeBox; protected String mHelpIndex; protected String mCAKeyType; + protected JTextArea mSignedByTypeLbl; private static final String HELPINDEX = "install-cert-mda-wizard-help"; public WMessageDigestPage(String panelName) { @@ -60,11 +62,17 @@ public class WMessageDigestPage extends WizardBasePanel implements IWizardPanel setBorder(makeTitledBorder(mPanelName)); if (mCAKeyType.equals("RSA")) { + mECCHashTypeBox.setVisible(false); mDSAHashTypeBox.setVisible(false); mRSAHashTypeBox.setVisible(true); String sha1 = mResource.getString(mPanelName+"_COMBOBOX_RSAHASHTYPE_VALUE_2"); mRSAHashTypeBox.setSelectedItem(sha1); + } else if (mCAKeyType.equals("ECC")) { + mECCHashTypeBox.setVisible(true); + mDSAHashTypeBox.setVisible(false); + mRSAHashTypeBox.setVisible(false); } else { + mECCHashTypeBox.setVisible(false); mDSAHashTypeBox.setVisible(true); mRSAHashTypeBox.setVisible(false); } @@ -77,6 +85,33 @@ public class WMessageDigestPage extends WizardBasePanel implements IWizardPanel return true; } + public void enableSignedByFields(boolean enable) { + if (!enable) { + mRSASignedByTypeBox.setVisible(false); + mDSASignedByTypeBox.setVisible(false); + mECCSignedByTypeBox.setVisible(false); + mSignedByTypeLbl.setVisible(false); + return; + } + + if (mCAKeyType.equals("RSA")) { + mRSASignedByTypeBox.setVisible(true); + mDSASignedByTypeBox.setVisible(false); + mECCSignedByTypeBox.setVisible(false); + } else if (mCAKeyType.equals("ECC")) { + mRSASignedByTypeBox.setVisible(false); + mDSASignedByTypeBox.setVisible(false); + mECCSignedByTypeBox.setVisible(true); + } else { + mECCSignedByTypeBox.setVisible(false); + mDSASignedByTypeBox.setVisible(true); + mRSASignedByTypeBox.setVisible(false); + } + + mSignedByTypeLbl.setVisible(true); + } + + public boolean concludePanel(WizardInfo info) { return true; } @@ -108,6 +143,7 @@ public class WMessageDigestPage extends WizardBasePanel implements IWizardPanel gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE); gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; add(mRSAHashTypeBox, gbc); mDSAHashTypeBox = makeJComboBox("DSAHASHTYPE"); @@ -117,8 +153,19 @@ public class WMessageDigestPage extends WizardBasePanel implements IWizardPanel gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, COMPONENT_SPACE); gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; add(mDSAHashTypeBox, gbc); + mECCHashTypeBox = makeJComboBox("ECCHASHTYPE"); + mECCHashTypeBox.setVisible(false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mECCHashTypeBox, gbc); + JLabel dummy = new JLabel(" "); CMSAdminUtil.resetGBC(gbc); gbc.anchor = gbc.WEST; @@ -127,6 +174,55 @@ public class WMessageDigestPage extends WizardBasePanel implements IWizardPanel gbc.insets = new Insets(0, 0,COMPONENT_SPACE, COMPONENT_SPACE); add(dummy, gbc); + JLabel dummy2 = new JLabel(" "); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.WEST; + gbc.gridwidth = gbc.REMAINDER; + gbc.weightx = 1.0; + gbc.insets = new Insets(0, 0,COMPONENT_SPACE, COMPONENT_SPACE); + add(dummy2, gbc); + + mSignedByTypeLbl = createTextArea(mResource.getString( + mPanelName+"_TEXT_SIGNEDBYTYPE_LABEL")); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.weightx = 1.0; + gbc.weighty = 0.0; + gbc.insets = new Insets(COMPONENT_SPACE,COMPONENT_SPACE, + COMPONENT_SPACE,COMPONENT_SPACE); + gbc.gridwidth = gbc.REMAINDER; + add(mSignedByTypeLbl, gbc); + + mRSASignedByTypeBox = makeJComboBox("RSASIGNEDBYTYPE"); + mRSASignedByTypeBox.setVisible(true); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, 4*COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mRSASignedByTypeBox, gbc); + + mDSASignedByTypeBox = makeJComboBox("DSASIGNEDBYTYPE"); + mDSASignedByTypeBox.setVisible(false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mDSASignedByTypeBox, gbc); + + mECCSignedByTypeBox = makeJComboBox("ECCSIGNEDBYTYPE"); + mECCSignedByTypeBox.setVisible(false); + CMSAdminUtil.resetGBC(gbc); + gbc.anchor = gbc.NORTHWEST; + gbc.insets = new Insets(0, COMPONENT_SPACE, COMPONENT_SPACE, + COMPONENT_SPACE); + gbc.fill = gbc.NONE; + gbc.gridwidth = gbc.REMAINDER; + add(mECCSignedByTypeBox, gbc); + JLabel dummy1 = new JLabel(" "); CMSAdminUtil.resetGBC(gbc); gbc.anchor = gbc.CENTER; diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java index a081bdd3d..a88101cc4 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/InstallWizardInfo.java @@ -833,6 +833,17 @@ public class InstallWizardInfo extends WizardInfo { return val; } + public String getKeyCurveName() { + String val = (String)get(ConfigConstants.PR_KEY_CURVENAME); + if (val ==null) + val = "nistp521"; + return val; + } + + public void setKeyCurveName(String val) { + put(ConfigConstants.PR_KEY_CURVENAME, val); + } + public String getKeyType() { String type = (String)get(ConfigConstants.PR_KEY_TYPE); // work around the historical mistake, @@ -1405,6 +1416,14 @@ public class InstallWizardInfo extends WizardInfo { put(ConfigConstants.PR_HASH_TYPE, type); } + public String getSignedByType() { + return (String)get(ConfigConstants.PR_SIGNEDBY_TYPE); + } + + public void setSignedByType(String type) { + put(ConfigConstants.PR_SIGNEDBY_TYPE, type); + } + public String getCAKeyType() { return (String)get(ConfigConstants.PR_CA_KEYTYPE); } diff --git a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java index 9611be01c..7ba0636fd 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/config/install/WICertExtensionPage.java @@ -92,6 +92,7 @@ class WICertExtensionPage extends WBaseCertExtensionPage implements nvps.add(Constants.PR_TOKEN_NAME, wizardInfo.getTokenName()); nvps.add(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength()); nvps.add(Constants.PR_KEY_TYPE, wizardInfo.getKeyType()); + nvps.add(Constants.PR_KEY_CURVENAME, wizardInfo.getKeyCurveName()); addValidityPeriod(wizardInfo, nvps); if (mBasicCheckBox.isSelected()) diff --git a/pki/base/console/src/com/netscape/admin/certsrv/keycert/CertSetupWizardInfo.java b/pki/base/console/src/com/netscape/admin/certsrv/keycert/CertSetupWizardInfo.java index 274ce2b5e..81ffc2d0e 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/keycert/CertSetupWizardInfo.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/keycert/CertSetupWizardInfo.java @@ -165,6 +165,10 @@ public class CertSetupWizardInfo extends WizardInfo { return (String)get(Constants.PR_KEY_LENGTH); } + public String getKeyCurveName() { + return (String)get(Constants.PR_KEY_CURVENAME); + } + public String getKeyType() { return (String)get(Constants.PR_KEY_TYPE); } @@ -307,6 +311,15 @@ public class CertSetupWizardInfo extends WizardInfo { put(ConfigConstants.PR_HASH_TYPE, type); } + public String getSignedByType() { + return (String)get(ConfigConstants.PR_SIGNEDBY_TYPE); + } + + public void setSignedByType(String type) { + put(ConfigConstants.PR_SIGNEDBY_TYPE, type); + } + + public boolean isLoggedIn() { String value = (String)get(Constants.PR_LOGGED_IN); if (value != null && value.equals(Constants.FALSE)) diff --git a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertDNPage.java b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertDNPage.java index 455c245da..661b7e469 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertDNPage.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertDNPage.java @@ -147,8 +147,14 @@ class WCertDNPage extends WBaseDNPage implements IWizardPanel { } if (wizardInfo.isNewKey()) { - nvps.add(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength()); - nvps.add(Constants.PR_KEY_TYPE, wizardInfo.getKeyType()); + String type = wizardInfo.getKeyType(); + if (type.equals("ECC")) { + nvps.add(Constants.PR_KEY_CURVENAME, wizardInfo.getKeyCurveName()); + } else { + nvps.add(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength()); + } + + nvps.add(Constants.PR_KEY_TYPE, type); nvps.add(Constants.PR_TOKEN_NAME, wizardInfo.getTokenName()); } diff --git a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java index 4f5222bb1..b53e200dc 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertExtensionPage.java @@ -161,8 +161,13 @@ class WCertExtensionPage extends WBaseCertExtensionPage implements nvps.add(Constants.PR_SUBJECT_NAME, wizardInfo.getSubjectName()); if (wizardInfo.isNewKey()) { - nvps.add(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength()); - nvps.add(Constants.PR_KEY_TYPE, wizardInfo.getKeyType()); + String type = wizardInfo.getKeyType(); + if (type.equals("ECC")) { + nvps.add(Constants.PR_KEY_CURVENAME, wizardInfo.getKeyCurveName()); + } else { + nvps.add(Constants.PR_KEY_LENGTH, wizardInfo.getKeyLength()); + } + nvps.add(Constants.PR_KEY_TYPE, type); nvps.add(Constants.PR_TOKEN_NAME, wizardInfo.getTokenName()); } //nvps.add(Constants.PR_VALIDITY_PERIOD, wizardInfo.getValidityPeriod()); diff --git a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertMessageDigestPage.java b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertMessageDigestPage.java index bc9018b3f..a378e91d3 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertMessageDigestPage.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WCertMessageDigestPage.java @@ -57,17 +57,35 @@ class WCertMessageDigestPage extends WMessageDigestPage { public boolean initializePanel(WizardInfo info) { CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; + String certType = wizardInfo.getCertType(); + + mCAKeyType = (String)wizardInfo.get(Constants.PR_KEY_TYPE); + if (wizardInfo.getOperationType().equals(wizardInfo.INSTALLTYPE)) return false; - if ((wizardInfo.getCAType().equals(wizardInfo.SUBORDINATE_CA)) - && !(wizardInfo.isSSLCertLocalCA())) - return false; + if ((wizardInfo.getCAType().equals(wizardInfo.SUBORDINATE_CA)) + && !(wizardInfo.isSSLCertLocalCA())) + return false; + if (!wizardInfo.isNewKey()) return false; - mCAKeyType = (String)wizardInfo.get(Constants.PR_KEY_TYPE); + if (wizardInfo.getCAType().equals(wizardInfo.SELF_SIGNED) && + certType.equals(Constants.PR_CA_SIGNING_CERT)) { + enableSignedByFields(true); + } else { + enableSignedByFields(false); + } + + if ((!certType.equals(Constants.PR_CA_SIGNING_CERT)) && + (!certType.equals(Constants.PR_OCSP_SIGNING_CERT))) { + // (!certType.equals(Constants.PR_KRA_TRANSPORT_CERT))) { + // non-signing cert, algorithm specified by CA + return false; + } + return super.initializePanel(info); } @@ -75,8 +93,18 @@ class WCertMessageDigestPage extends WMessageDigestPage { CertSetupWizardInfo wizardInfo = (CertSetupWizardInfo)info; if (mDSAHashTypeBox.isVisible()) wizardInfo.setHashType((String)mDSAHashTypeBox.getSelectedItem()); - else + else if (mECCHashTypeBox.isVisible()) + wizardInfo.setHashType((String)mECCHashTypeBox.getSelectedItem()); + else if (mRSAHashTypeBox.isVisible()) wizardInfo.setHashType((String)mRSAHashTypeBox.getSelectedItem()); + + if (mDSASignedByTypeBox.isVisible()) + wizardInfo.setSignedByType((String)mDSASignedByTypeBox.getSelectedItem()); + else if (mECCSignedByTypeBox.isVisible()) + wizardInfo.setSignedByType((String)mECCSignedByTypeBox.getSelectedItem()); + else if (mRSASignedByTypeBox.isVisible()) + wizardInfo.setSignedByType((String)mRSASignedByTypeBox.getSelectedItem()); + } public void callHelp() { diff --git a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WExecutePage.java b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WExecutePage.java index 3e10e634b..109a82e69 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WExecutePage.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WExecutePage.java @@ -110,8 +110,12 @@ class WExecutePage extends WizardBasePanel implements IWizardPanel { NameValuePairs nvps = wizardInfo.getNameValuePairs(); - if (wizardInfo.isNewKey()) - nvps.add(ConfigConstants.PR_HASH_TYPE, wizardInfo.getHashType()); + if (wizardInfo.isNewKey()) { + if (wizardInfo.getHashType() != null) + nvps.add(ConfigConstants.PR_HASH_TYPE, wizardInfo.getHashType()); + if (wizardInfo.getSignedByType() != null) + nvps.add(ConfigConstants.PR_SIGNEDBY_TYPE, wizardInfo.getSignedByType()); + } nvps.add("pathname", dir); try { diff --git a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java index 0216e5902..84852fa4b 100644 --- a/pki/base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java +++ b/pki/base/console/src/com/netscape/admin/certsrv/keycert/WKeyPage.java @@ -44,12 +44,13 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { private JRadioButton mExistingKeyBtn; private JRadioButton mNewKeyBtn; private JComboBox mKeyTypeBox, mDSAKeyTypeBox; - private JComboBox mKeyLengthBox, mDSAKeyLengthBox; + private JComboBox mKeyLengthBox, mDSAKeyLengthBox, mKeyCurveBox; private JComboBox mTokenBox, mNicknameBox; private JTextField mKeyLengthText; - private JLabel keyHeading, keyTypeLbl, keyLengthLbl, unitLbl, - keyLengthCustomLbl, unit1Lbl, mTokenLbl, mNicknameLbl; - private JLabel keyLengthCustomText; + 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 = @@ -142,19 +143,12 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { mKeyTypeBox.setVisible(true); } - String type = "RSA"; + String type = (String)mKeyTypeBox.getSelectedItem(); if (mDSAKeyTypeBox.isVisible()) { type = (String)mDSAKeyTypeBox.getSelectedItem(); } - if (type.equals("RSA")) { - mDSAKeyLengthBox.setVisible(false); - mKeyLengthBox.setVisible(true); - } else { - mKeyLengthBox.setVisible(false); - mDSAKeyLengthBox.setVisible(true); - } - + setLengthCurveFields(type); enableKeyLengthFields(); //if (mNewKeyBtn.isSelected() || certType.equals(Constants.PR_OTHER_CERT)) { @@ -190,7 +184,7 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { } public boolean validatePanel() { - if (mKeyLengthText.isEnabled()) { + if (mKeyLengthText.isVisible() && mKeyLengthText.isEnabled()) { String str = mKeyLengthText.getText().trim(); if (str.equals("")) { setErrorMessage("BLANKLEN"); @@ -209,6 +203,15 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { } } + /* + if (mKeyCurveText.isVisible() && mKeyCurveText.isEnabled()) { + String str = mKeyCurveText.getText().trim(); + if (str.equals("")) { + setErrorMessage("BLANKCURVE"); + return false; + } + }*/ + return true; } @@ -221,18 +224,31 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { if (mKeyLengthBox.isVisible()) { val = (String)mKeyLengthBox.getSelectedItem(); + } else if (mKeyCurveBox.isVisible()) { + val = (String)mKeyCurveBox.getSelectedItem(); } else { - if (mDSAKeyLengthBox.isVisible()) - val = (String)mDSAKeyLengthBox.getSelectedItem(); - } + if (mDSAKeyLengthBox.isVisible()) + val = (String)mDSAKeyLengthBox.getSelectedItem(); + } if (val.equals("Custom")) { - wizardInfo.addEntry(Constants.PR_KEY_LENGTH, - mKeyLengthText.getText().trim()); - nvps.add(Constants.PR_KEY_LENGTH, mKeyLengthText.getText().trim()); + if (mKeyCurveBox.isVisible()) { // ECC + wizardInfo.addEntry(Constants.PR_KEY_CURVENAME, + mKeyCurveText.getText().trim()); + nvps.add(Constants.PR_KEY_CURVENAME, mKeyCurveText.getText().trim()); + } else { + wizardInfo.addEntry(Constants.PR_KEY_LENGTH, + mKeyLengthText.getText().trim()); + nvps.add(Constants.PR_KEY_LENGTH, mKeyLengthText.getText().trim()); + } } else { - wizardInfo.addEntry(Constants.PR_KEY_LENGTH, val.trim()); - nvps.add(Constants.PR_KEY_LENGTH, val.trim()); + if (mKeyCurveBox.isVisible()) { // ECC + wizardInfo.addEntry(Constants.PR_KEY_CURVENAME, val.trim()); + nvps.add(Constants.PR_KEY_CURVENAME, val.trim()); + } else { + wizardInfo.addEntry(Constants.PR_KEY_LENGTH, val.trim()); + nvps.add(Constants.PR_KEY_LENGTH, val.trim()); + } } if (mKeyTypeBox.isVisible()) { @@ -253,9 +269,14 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { nvps.add(Constants.PR_CERTIFICATE_TYPE, certType); try { - // validate the key length - connection.validate(DestDef.DEST_SERVER_ADMIN, - ScopeDef.SC_KEY_LENGTH, nvps); + // 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()) { @@ -523,6 +544,23 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { 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; @@ -551,6 +589,14 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { 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; @@ -560,6 +606,13 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { 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; @@ -610,8 +663,50 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { 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) || + if (e.getSource().equals(mKeyLengthBox) || + e.getSource().equals(mKeyCurveBox) || e.getSource().equals(mDSAKeyLengthBox)) { enableKeyLengthFields(); } else if (e.getSource().equals(mKeyTypeBox) || @@ -621,14 +716,8 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { type = (String)mKeyTypeBox.getSelectedItem(); else if (mDSAKeyTypeBox.isVisible()) type = (String)mDSAKeyTypeBox.getSelectedItem(); - - if (type.equals("RSA")) { - mDSAKeyLengthBox.setVisible(false); - mKeyLengthBox.setVisible(true); - } else { - mDSAKeyLengthBox.setVisible(true); - mKeyLengthBox.setVisible(false); - } + + setLengthCurveFields(type); enableKeyLengthFields(); CMSAdminUtil.repaintComp(this); } @@ -639,16 +728,27 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { 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()) { - enableFields(keyLengthCustomText, mKeyLengthText, true, mActiveColor); - enableFields(unit1Lbl, null, true, mActiveColor); + if (mKeyCurveBox.isVisible()) { //ECC + enableFields(keyCurveCustomText, mKeyCurveText, true, mActiveColor); + } else { + enableFields(keyLengthCustomText, mKeyLengthText, true, mActiveColor); + enableFields(unit1Lbl, null, true, mActiveColor); + } } else { - enableFields(keyLengthCustomText, mKeyLengthText, false, - getBackground()); - enableFields(unit1Lbl, null, false, getBackground()); + if (mKeyCurveBox.isVisible()) { //ECC + enableFields(keyCurveCustomText, mKeyCurveText, false, + getBackground()); + } else { + enableFields(keyLengthCustomText, mKeyLengthText, false, + getBackground()); + enableFields(unit1Lbl, null, false, getBackground()); + } } } @@ -670,26 +770,36 @@ class WKeyPage extends WizardBasePanel implements IWizardPanel, ItemListener { 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); } |