/** * if any code error, exit else if any other error, show warning-error dialog, then return false * else return true */ public boolean doJob() { String strMethod = "doJob()"; // x) if pathAbsKeystore != nil, load keystore of type "JKS" java.security.KeyStore kstOpen = null; if (super._strPathAbsKst_ != null) { if (super._strProviderKst_ == null) { MySystem.s_printOutExit(this, strMethod, "nil super._strProviderKst_"); } // if // (super._strProviderKst_.toLowerCase().compareTo(KTLAbs._f_s_strSecurityProviderSun_.toLowerCase()) != 0) // MySystem.s_printOutExit(this, strMethod, "wrong value, super._strProviderKst_=" + // super._strProviderKst_); // MySystem.s_printOutWarning(this, strMethod, "should check for keystore of type JKS, // provider named SUN"); // memo: keystore should be of type "JKS", provided by "SUN" File fleOpen = UtilJsrFile.s_getFileOpen(super._frmOwner_, super._strPathAbsKst_); if (fleOpen == null) { MySystem.s_printOutError(this, strMethod, "nil fleOpen"); return false; } kstOpen = UtilKstJks.s_getKeystoreOpen( super._frmOwner_, fleOpen, (char[]) null // keystore's Password, not in use for verifying signed jarred file ); if (kstOpen == null) { MySystem.s_printOutError(this, strMethod, "nil kstOpen"); return false; } } super._setEnabledCursorWait_(true); if (!super._doJob_(kstOpen)) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "failed"); return false; } super._setEnabledCursorWait_(false); // ---- return true; }
/** * if any error in code, exiting in case of trbrl: open up a warning dialog, and return false; * * <p>algo: . get fileOpen keystore . open keystore . fill in table entries . show dialog keystore * . enter new alias for trusted certificate entry candidate . create new tcr from crt file . * assign new entry to open keystore . save keystore */ public boolean doJob() { String strMethod = "doJob()"; if (!super.doJob()) { MySystem.s_printOutError(this, strMethod, "failed"); return false; } super._setEnabledCursorWait_(true); // --- // get file keystore // memo: keystore should be of type "Uber", provided by "?" File fleOpenKst = UtilJsrFile.s_getFileOpen(super._frmOwner_, super._strPathAbsKst_); if (fleOpenKst == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil fleOpenKst"); return false; } // ---- // open keystore if (super._chrsPasswdKst_ == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutExit(this, strMethod, "nil super._chrsPasswdKst_"); } KeyStore kstOpen = UtilKstUber.s_getKeystoreOpen(super._frmOwner_, fleOpenKst, super._chrsPasswdKst_); if (kstOpen == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil kstOpen"); return false; } if (!super._doJob_(fleOpenKst, kstOpen)) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "failed"); return false; } super._setEnabledCursorWait_(false); // ending return true; }
/** should be X509Cert, either RSA or DSA */ private Boolean[] _getBoosElligibleSource( String[] strsAlgoKeyPublSource, Boolean[] boosTypeCertX509Source) { String strMethod = "_getBoosElligibleSource(...)"; if (strsAlgoKeyPublSource == null || boosTypeCertX509Source == null) MySystem.s_printOutExit(this, strMethod, "nil arg"); Boolean[] boosElligibleSource = new Boolean[strsAlgoKeyPublSource.length]; for (int i = 0; i < strsAlgoKeyPublSource.length; i++) { boolean blnOk = true; String str = strsAlgoKeyPublSource[i].toLowerCase(); // should be of type DSA OR RSA if ((str.compareTo(KTLAbs.f_s_strTypeKeypairDsa.toLowerCase()) != 0) && (str.compareTo(KTLAbs.f_s_strTypeKeypairRsa.toLowerCase()) != 0)) { blnOk = false; } // certificate should be of type X509 else if (boosTypeCertX509Source[i].booleanValue() == false) { blnOk = false; } // -- boosElligibleSource[i] = new Boolean(blnOk); } // ---- return boosElligibleSource; }
/** * if any error in code, exiting in case of trbrl: open up a warning dialog, and return false; * * <p>algo: * * <p>. add providers * * <p>. open keystoreSource . open keystoreTarget . select aliasSource pointing to valid kprSource * . get respective keySource & crtsSource * * <p>. create new KeyPair . create new certificate of type X.509 . assign new entry to open BKS * keystore . save BKS keystore */ public boolean doJob() { String strMethod = "doJob()"; File fleOpenKstSource = UtilJsrFile.s_getFileOpen(super._frmOwner_, super._strPathAbsKstSource_); if (fleOpenKstSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil fleOpenKstSource"); return false; } File fleOpenKstTarget = UtilJsrFile.s_getFileOpen(super._frmOwner_, super._strPathAbsKst_); if (fleOpenKstTarget == null) { MySystem.s_printOutError(this, strMethod, "nil fleOpenKstTarget"); return false; } // -- // . open keystoreSource if (super._chrsPasswdKstSource_ == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutExit(this, strMethod, "nil super._chrsPasswdKstSource_"); } KeyStore kstOpenSource = UtilKstUber.s_getKeystoreOpen( super._frmOwner_, fleOpenKstSource, super._chrsPasswdKstSource_); if (kstOpenSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil kstOpenSource"); return false; } // ---- // open keystore target if (super._chrsPasswdKst_ == null) MySystem.s_printOutExit(this, strMethod, "nil super._chrsPasswdKst_"); KeyStore kstOpenTarget = UtilKstBks.s_getKeystoreOpen(super._frmOwner_, fleOpenKstTarget, super._chrsPasswdKst_); if (kstOpenTarget == null) { MySystem.s_printOutError(this, strMethod, "nil kstOpenTarget"); return false; } super._setEnabledCursorWait_(true); if (!super._doJob_(kstOpenSource, kstOpenTarget, fleOpenKstTarget)) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "failed"); return false; } super._setEnabledCursorWait_(false); // ending return true; }
protected boolean __createNewEntry__( KeyStore kstOpenTarget, PrivateKey pkyPrivateSource, Certificate[] crtsSource) { String strMethod = "__createNewEntry__(...)"; // NEW String[] strsAliasPKTC = UtilKstAbs.s_getStrsAliasPKTC(super._frmOwner_, kstOpenTarget); if (strsAliasPKTC == null) { MySystem.s_printOutExit(strMethod, "nil strsAliasPKTC"); } String[] strsAliasSK = UtilKstAbs.s_getStrsAliasSK(super._frmOwner_, kstOpenTarget); if (strsAliasSK == null) { MySystem.s_printOutExit(strMethod, "nil strsAliasPKTC"); } // -- // get arrays for dialogTableSelectKeypair // TC versus PK Boolean[] boosIsTCEntryPKTC = UtilKstAbs.s_getBoosEntryTcr(super._frmOwner_, kstOpenTarget, strsAliasPKTC); if (boosIsTCEntryPKTC == null) { MySystem.s_printOutExit(strMethod, "nil boosIsTCEntryPKTC"); } Boolean[] boosValidDatePKTC = UtilKstAbs.s_getBoosValidDatePKTC(super._frmOwner_, kstOpenTarget, strsAliasPKTC); if (boosValidDatePKTC == null) { MySystem.s_printOutExit(strMethod, "nil boosValidDatePKTC"); } Boolean[] boosSelfSignedCertPKTC = UtilKstAbs.s_getBoosSelfSigned(super._frmOwner_, kstOpenTarget, strsAliasPKTC); if (boosSelfSignedCertPKTC == null) { MySystem.s_printOutExit(strMethod, "nil boosSelfSignedCertPKTC"); } Boolean[] boosTrustedCertPKTC = UtilKstAbs.s_getBoosTrusted(super._frmOwner_, kstOpenTarget, strsAliasPKTC); if (boosTrustedCertPKTC == null) { MySystem.s_printOutExit(strMethod, "nil boosTrustedCertPKTC"); } String[] strsSizeKeyPublPKTC = UtilKstAbs.s_getStrsSizeKeyPubl(super._frmOwner_, kstOpenTarget, strsAliasPKTC); if (strsSizeKeyPublPKTC == null) { MySystem.s_printOutExit(strMethod, "nil strsSizeKeyPublPKTC"); } String[] strsTypeCertPKTC = UtilKstAbs.s_getStrsTypeCertificatePKTC(super._frmOwner_, kstOpenTarget, strsAliasPKTC); if (strsTypeCertPKTC == null) { MySystem.s_printOutExit(strMethod, "nil strsTypeCertPKTC"); } String[] strsAlgoSigCertPKTC = UtilKstAbs.s_getStrsAlgoSigCertPKTC(super._frmOwner_, kstOpenTarget, strsAliasPKTC); if (strsAlgoSigCertPKTC == null) { MySystem.s_printOutExit(strMethod, "nil strsAlgoSigCertPKTC"); } Date[] dtesLastModifiedPKTC = UtilKstAbs.s_getDtesLastModified(super._frmOwner_, kstOpenTarget, strsAliasPKTC); if (dtesLastModifiedPKTC == null) { MySystem.s_printOutExit(strMethod, "nil dtesLastModifiedPKTC"); } Date[] dtesLastModifiedSK = UtilKstAbs.s_getDtesLastModified(super._frmOwner_, kstOpenTarget, strsAliasSK); if (dtesLastModifiedSK == null) { MySystem.s_printOutExit(strMethod, "nil dtesLastModifiedPKTC"); } /* // ---- // create new alias (?& new password) // ---- // fill in table KeyPair String[] strsAliasTarget = UtilKstAbs.s_getStrsAlias( super._frmOwner_, kstOpenTarget); if (strsAliasTarget == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsAliasTarget"); return false; } // -- Boolean[] boosEntryKpr = UtilKstAbs.s_getBoosEntryKpr( super._frmOwner_, kstOpenTarget, strsAliasTarget); if (boosEntryKpr == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosEntryKpr"); return false; } Boolean[] boosEntryTcr = UtilKstAbs.s_getBoosEntryTcr( super._frmOwner_, kstOpenTarget, strsAliasTarget); if (boosEntryTcr == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosEntryTcr"); return false; } Boolean[] boosSelfSignedCert = UtilKstAbs.s_getBoosSelfSigned( super._frmOwner_, kstOpenTarget, strsAliasTarget); if (boosSelfSignedCert == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosSelfSignedCert"); return false; } Boolean[] boosTrustedCert = UtilKstAbs.s_getBoosTrusted(super._frmOwner_, kstOpenTarget, strsAliasTarget); if (boosTrustedCert == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosTrustedCert"); return false; } String[] strsAlgoKeyPubl = UtilKstAbs.s_getStrsAlgoKeyPubl( super._frmOwner_, kstOpenTarget, strsAliasTarget); if (strsAlgoKeyPubl == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsAlgoKeyPubl"); return false; } String[] strsSizeKeyPubl = UtilKstAbs.s_getStrsSizeKeyPubl( super._frmOwner_, kstOpenTarget, strsAliasTarget); if (strsSizeKeyPubl == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsSizeKeyPubl"); return false; } String[] strsTypeCert = UtilKstAbs.s_getStrsTypeCertificatePKTC(super._frmOwner_, kstOpenTarget, strsAliasTarget); if (strsTypeCert == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsTypeCert"); return false; } String[] strsAlgoSigCert = UtilKstAbs.s_getStrsAlgoSigCertPKTC(super._frmOwner_, kstOpenTarget, strsAliasTarget); if (strsAlgoSigCert == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsAlgoSigCert"); return false; } Date[] dtesLastModified = UtilKstAbs.s_getDtesLastModified(super._frmOwner_, kstOpenTarget, strsAliasTarget); if (dtesLastModified == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil dtesLastModified"); return false; }*/ // -- // assign default cursor super._setEnabledCursorWait_(false); // ---- // MEMO: overwriting alias-key not allowed // ----- // ---- // show dialog KeyPair new entry // . get aliasKpr // . get passwdKpr /*DTblEntryKprSaveAny dlgTarget = new DTblEntryKprSaveAny( super._frmOwner_, super._strTitleAppli_, kstOpenTarget, super._blnIsPasswdKprTarget_ // blnIsPassword );*/ DTblsKstViewKeySavePK dlgTarget = new DTblsKstViewKeySavePK( super._frmOwner_, kstOpenTarget, super._strPathAbsKst_, "Import private key from other keystore - step 2/2: target"); if (!dlgTarget.init()) MySystem.s_printOutExit(this, strMethod, "failed"); // if (!dlgTarget.load( // below: about PKTC (Private Key & Trusted Certificate) strsAliasPKTC, boosIsTCEntryPKTC, boosValidDatePKTC, boosSelfSignedCertPKTC, boosTrustedCertPKTC, strsSizeKeyPublPKTC, strsTypeCertPKTC, strsAlgoSigCertPKTC, dtesLastModifiedPKTC, // below: about SK (Secret Key) strsAliasSK, dtesLastModifiedSK /*strsAliasTarget, boosEntryKpr, boosEntryTcr, boosSelfSignedCert, boosTrustedCert, strsAlgoKeyPubl, strsSizeKeyPubl, strsTypeCert, strsAlgoSigCert, dtesLastModified*/ )) { MySystem.s_printOutExit(this, strMethod, "failed"); } dlgTarget.setVisible(true); char[] chrsPasswdKprTarget = new char[0]; // no password, eg, for PKCS12 // --- if (super._blnIsPasswdKprTarget_) { chrsPasswdKprTarget = dlgTarget.getPassword(); if (chrsPasswdKprTarget == null) { MySystem.s_printOutTrace(this, strMethod, "nil chrsPasswdKprTarget, aborted by user"); return false; } } String strAliasKprTarget = dlgTarget.getAlias(); if (strAliasKprTarget == null) { MySystem.s_printOutTrace(this, strMethod, "nil strAliasKprTarget, aborted by user"); return false; } // ---- // store privateKeySource & crtsSource associated with alias (?& password) in kstOpenTarget if (!UtilKstAbs.s_setKeyEntry( super._frmOwner_, kstOpenTarget, strAliasKprTarget, pkyPrivateSource, chrsPasswdKprTarget, crtsSource)) { MySystem.s_printOutError(this, strMethod, "failed"); return false; } return true; }
private String[] _getStrsAliasSourceToKpr(KeyStore kstOpenToSource) { String strMethod = "_getStrsAliasSourceToKpr(kstOpenToSource)"; String[] strsAliasSourceAll = UtilKstAbs.s_getStrsAlias(super._frmOwner_, kstOpenToSource); if (strsAliasSourceAll == null) { MySystem.s_printOutError(this, strMethod, "nil strsAliasSourceAll"); return null; } if (strsAliasSourceAll.length < 1) { MySystem.s_printOutWarning(this, strMethod, "strsAliasSourceAll.length < 1"); String strBody = "No aliases found in " + UtilKstBks.f_s_strKeystoreType + " keystore:"; strBody += "\n" + " "; strBody += super._strPathAbsKstSource_; OPAbstract.s_showDialogWarning(super._frmOwner_, strBody); return null; } Vector<String> vec = new Vector<String>(); try { for (int i = 0; i < strsAliasSourceAll.length; i++) { if (!kstOpenToSource.isKeyEntry(strsAliasSourceAll[i])) continue; Certificate[] certs = kstOpenToSource.getCertificateChain(strsAliasSourceAll[i]); if (certs == null) continue; if (certs.length < 1) continue; vec.addElement(strsAliasSourceAll[i]); } } catch (KeyStoreException excKeystore) { excKeystore.printStackTrace(); MySystem.s_printOutError(this, strMethod, "excKeystore caught"); // show dialog String strBody = "Got keystore Exception while reading " + UtilKstBks.f_s_strKeystoreType + " keystore:"; strBody += "\n" + " "; strBody += super._strPathAbsKstSource_; OPAbstract.s_showDialogWarning(super._frmOwner_, strBody); } // -- if (vec.size() < 1) { MySystem.s_printOutWarning(this, strMethod, "vec.size() < 1"); // show dialog String strBody = "No aliases pointing to keypair found in " + UtilKstBks.f_s_strKeystoreType + " keystore:"; strBody += "\n" + " "; strBody += super._strPathAbsKstSource_; OPAbstract.s_showDialogWarning(super._frmOwner_, strBody); return null; } // --- String[] strsAliasSourceToKpr = new String[vec.size()]; for (int i = 0; i < vec.size(); i++) strsAliasSourceToKpr[i] = (String) vec.elementAt(i); return strsAliasSourceToKpr; }
/** * if any error in code, exiting in case of trbrl: open up a warning dialog, and return false; * * <p>algo: * * <p>. add providers * * <p>. open keystoreSource . open keystoreKstTarget . select aliasSource pointing to valid * kprSource . get respective keySource & crtsSource * * <p>. create new keypair . create new certificate of type X.509 . assign new entry to open * [JKS-JCEKS-PKCS12-BKS-UBER] keystore . save [JKS-JCEKS-PKCS12-BKS-UBER] keystore */ protected boolean _doJob_(KeyStore kstOpenSource, KeyStore kstOpenTarget, File fleOpenKstTarget) { String strMethod = "_doJob_(kstOpenSource, kstOpenTarget, fleOpenKstTarget)"; if (kstOpenSource == null || kstOpenTarget == null || fleOpenKstTarget == null) MySystem.s_printOutExit(this, strMethod, "nil arg"); // -- // . select aliasSource and password pointing to valid kprSource // ---- // get aliases // NEW String[] strsAliasPKTCSource = UtilKstAbs.s_getStrsAliasPKTC(super._frmOwner_, kstOpenSource); if (strsAliasPKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil strsAliasPKTCSource"); } String[] strsAliasSKSource = UtilKstAbs.s_getStrsAliasSK(super._frmOwner_, kstOpenSource); if (strsAliasSKSource == null) { MySystem.s_printOutExit(strMethod, "nil strsAliasPKTCSource"); } // -- // get arrays for dialogTableSelectKeypair // TC versus PK Boolean[] boosIsTCEntryPKTCSource = UtilKstAbs.s_getBoosEntryTcr(super._frmOwner_, kstOpenSource, strsAliasPKTCSource); if (boosIsTCEntryPKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil boosIsTCEntryPKTCSource"); } Boolean[] boosValidDatePKTCSource = UtilKstAbs.s_getBoosValidDatePKTC(super._frmOwner_, kstOpenSource, strsAliasPKTCSource); if (boosValidDatePKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil boosValidDatePKTCSource"); } Boolean[] boosSelfSignedCertPKTCSource = UtilKstAbs.s_getBoosSelfSigned(super._frmOwner_, kstOpenSource, strsAliasPKTCSource); if (boosSelfSignedCertPKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil boosSelfSignedCertPKTCSource"); } Boolean[] boosTrustedCertPKTCSource = UtilKstAbs.s_getBoosTrusted(super._frmOwner_, kstOpenSource, strsAliasPKTCSource); if (boosTrustedCertPKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil boosTrustedCertPKTCSource"); } String[] strsSizeKeyPublPKTCSource = UtilKstAbs.s_getStrsSizeKeyPubl(super._frmOwner_, kstOpenSource, strsAliasPKTCSource); if (strsSizeKeyPublPKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil strsSizeKeyPublPKTCSource"); } String[] strsTypeCertPKTCSource = UtilKstAbs.s_getStrsTypeCertificatePKTC( super._frmOwner_, kstOpenSource, strsAliasPKTCSource); if (strsTypeCertPKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil strsTypeCertPKTCSource"); } String[] strsAlgoSigCertPKTCSource = UtilKstAbs.s_getStrsAlgoSigCertPKTC(super._frmOwner_, kstOpenSource, strsAliasPKTCSource); if (strsAlgoSigCertPKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil strsAlgoSigCertPKTCSource"); } Date[] dtesLastModifiedPKTCSource = UtilKstAbs.s_getDtesLastModified(super._frmOwner_, kstOpenSource, strsAliasPKTCSource); if (dtesLastModifiedPKTCSource == null) { MySystem.s_printOutExit(strMethod, "nil dtesLastModifiedPKTCSource"); } Date[] dtesLastModifiedSKSource = UtilKstAbs.s_getDtesLastModified(super._frmOwner_, kstOpenSource, strsAliasSKSource); if (dtesLastModifiedSKSource == null) { MySystem.s_printOutExit(strMethod, "nil dtesLastModifiedPKTCSource"); } /*String[] strsAliasSource = UtilKstAbs.s_getStrsAlias( super._frmOwner_, kstOpenSource); if (strsAliasSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsAliasSource"); return false; } // ---- // check for existing aliases if (strsAliasSource.length < 1) { super._setEnabledCursorWait_(false); MySystem.s_printOutWarning(this, strMethod, "strsAliasSource.length < 1"); String strBody = "source keystore does not contain any entry."; OPAbstract.s_showDialogInfo( super._frmOwner_, strBody); return false; } // -- // fill in table for dialogSelect Boolean[] boosEntryTcrSource = UtilKstAbs.s_getBoosEntryTcr( super._frmOwner_, kstOpenSource, strsAliasSource); if (boosEntryTcrSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosEntryTcrSource"); return false; } Boolean[] boosEntryKprSource = UtilKstAbs.s_getBoosEntryKpr( super._frmOwner_, kstOpenSource, strsAliasSource); if (boosEntryKprSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosEntryKprSource"); return false; } Boolean[] boosSelfSignedCertSource = UtilKstAbs.s_getBoosSelfSigned( super._frmOwner_, kstOpenSource, strsAliasSource); if (boosSelfSignedCertSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosSelfSignedCertSource"); return false; } Boolean[] boosTrustedCertSource = UtilKstAbs.s_getBoosTrusted(super._frmOwner_, kstOpenSource, strsAliasSource); if (boosTrustedCertSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosTrustedCertSource"); return false; } String[] strsSizeKeyPublSource = UtilKstAbs.s_getStrsSizeKeyPubl(super._frmOwner_, kstOpenSource, strsAliasSource); if (strsSizeKeyPublSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsSizeKeyPublSource"); return false; } String[] strsAlgoKeyPublSource = UtilKstAbs.s_getStrsAlgoKeyPubl(super._frmOwner_, kstOpenSource, strsAliasSource); if (strsAlgoKeyPublSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsAlgoKeyPublSource"); return false; } String[] strsTypeCertSource = UtilKstAbs.s_getStrsTypeCertificatePKTC(super._frmOwner_, kstOpenSource, strsAliasSource); if (strsTypeCertSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsTypeCertSource"); return false; } String[] strsAlgoSigCertSource = UtilKstAbs.s_getStrsAlgoSigCertPKTC(super._frmOwner_, kstOpenSource, strsAliasSource); if (strsAlgoSigCertSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil strsAlgoSigCertSource"); return false; } Date[] dtesLastModifiedSource = UtilKstAbs.s_getDtesLastModified(super._frmOwner_, kstOpenSource, strsAliasSource); if (dtesLastModifiedSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil dtesLastModifiedSource"); return false; } // ---- Boolean[] boosTypeCertX509Source = super._getBoosTypeCertX509_(kstOpenSource, strsAliasSource); if (boosTypeCertX509Source == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosTypeCertX509Source"); return false; } Boolean[] boosElligibleSource = super._getBoosElligibleAny_( boosEntryKprSource, strsAlgoKeyPublSource, boosTypeCertX509Source); if (boosElligibleSource == null) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "nil boosElligibleSource"); return false; } // -- // clean-up boosTypeCertX509Source = null; // --- // check for elligible entry boolean blnElligible = false; for (int i=0; i<boosElligibleSource.length; i++) { if (boosElligibleSource[i].booleanValue() == true) { blnElligible = true; break; } } if (! blnElligible) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "! blnElligible"); String strBody = "source keystore does not contain any keypair entry\n either of type RSA, or of type DSA, with an X.509 certificate ."; OPAbstract.s_showDialogInfo( super._frmOwner_, strBody); return false; }*/ // -- // assign default cursor super._setEnabledCursorWait_(false); // ---- /*DTblEntryKprOpenKPAny dlgSource = new DTblEntryKprOpenKPAny( super._frmOwner_, super._strTitleAppli_, kstOpenSource );*/ DTblsKstSelPKOpen dlgSource = new DTblsKstSelPKOpen( super._frmOwner_, kstOpenSource, super._strPathAbsKst_, "Import private key from other keystore - step 1/2: source"); if (!dlgSource.init()) MySystem.s_printOutExit(this, strMethod, "failed"); // if (!dlgSource.load( strsAliasPKTCSource, boosIsTCEntryPKTCSource, boosValidDatePKTCSource, boosSelfSignedCertPKTCSource, boosTrustedCertPKTCSource, strsSizeKeyPublPKTCSource, strsTypeCertPKTCSource, strsAlgoSigCertPKTCSource, dtesLastModifiedPKTCSource, // below: about SK (Secret Key) strsAliasSKSource, dtesLastModifiedSKSource /*boosElligibleSource, strsAliasSource, boosEntryKprSource, boosEntryTcrSource, boosSelfSignedCertSource, boosTrustedCertSource, strsAlgoKeyPublSource, strsSizeKeyPublSource, strsTypeCertSource, strsAlgoSigCertSource, dtesLastModifiedSource*/ )) { MySystem.s_printOutExit(this, strMethod, "failed"); } dlgSource.setVisible(true); // --- char[] chrsPasswdKprSource = dlgSource.getPassword(); if (chrsPasswdKprSource == null) { MySystem.s_printOutTrace(this, strMethod, "nil chrsPasswdKprSource, aborted by user"); return false; } String strAliasKprSource = dlgSource.getAlias(); if (strAliasKprSource == null) { MySystem.s_printOutTrace(this, strMethod, "nil strAliasKprSource, aborted by user"); return false; } // super._setEnabledCursorWait_(true); // at this level, user selected keypair (got alias & password) // -- // . get respective keySource & crtsSource // ---- // x) get privateKey PrivateKey pkySource = null; try { pkySource = (PrivateKey) UtilKstAbs.s_getKey( super._frmOwner_, kstOpenSource, strAliasKprSource, chrsPasswdKprSource); } catch (ClassCastException excClassCast) { excClassCast.printStackTrace(); MySystem.s_printOutExit(this, strMethod, "excClassCast caught"); } if (pkySource == null) { MySystem.s_printOutError(this, strMethod, "nil pkySource"); return false; } // ---- // x) get X509Certificates X509Certificate[] crtsX509UnorderedSource = UtilCrtX509.s_getX509CertificateChain( kstOpenSource, strAliasKprSource, false // blnOrderChain !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ); if (crtsX509UnorderedSource == null) { MySystem.s_printOutError(this, strMethod, "nil crtsX509UnorderedSource"); return false; } // ----- if (!__createNewEntry__(kstOpenTarget, pkySource, crtsX509UnorderedSource)) { super._setEnabledCursorWait_(false); MySystem.s_printOutError(this, strMethod, "failed"); return false; } // ---- // save kstOpenTarget if (super._chrsPasswdKst_ == null) { MySystem.s_printOutError(this, strMethod, "nil super._chrsPasswdKst_"); return false; } // ---- if (!super._saveKeyStore_(kstOpenTarget, fleOpenKstTarget, super._chrsPasswdKst_)) { MySystem.s_printOutError(this, strMethod, "failed"); return false; } // ending return true; }
protected boolean __doJob__( KeyStore kstOpen, String[] strsAliasPKTC, Boolean[] boosIsTCEntryPKTC, Boolean[] boosValidDatePKTC, Boolean[] boosSelfSignedCertPKTC, Boolean[] boosTrustedCertPKTC, String[] strsSizeKeyPublPKTC, String[] strsTypeCertPKTC, String[] strsAlgoSigCertPKTC, Date[] dtesLastModifiedPKTC, String[] strsAliasSK, Date[] dtesLastModifiedSK) { String strMethod = "__doJob__(...)"; // ---- // MEMO: overwriting alias-key not allowed // ----- // ---- // show dialog KeyPair new Ec // . get aliasKpr // . get passwdKpr DTblsKstViewKeySavePKNoPass dlg = new DTblsKstViewKeySavePKNoPass( (Component) super._frmOwner_, kstOpen, super._strPathAbsKst_, "Create EC (Elliptic Curve) private key entry"); if (!dlg.init()) MySystem.s_printOutExit(this, strMethod, "failed"); // if (!dlg.load( // below: about PKTC (Private Key & Trusted Certificate) strsAliasPKTC, boosIsTCEntryPKTC, boosValidDatePKTC, boosSelfSignedCertPKTC, boosTrustedCertPKTC, strsSizeKeyPublPKTC, strsTypeCertPKTC, strsAlgoSigCertPKTC, dtesLastModifiedPKTC, // below: about SK (Secret Key) strsAliasSK, dtesLastModifiedSK)) { MySystem.s_printOutExit(this, strMethod, "failed"); } dlg.setVisible(true); // --- char[] chrsPasswdKpr = dlg.getPassword(); if (chrsPasswdKpr == null) { MySystem.s_printOutTrace(this, strMethod, "nil chrsPasswdKpr, aborted by user"); return false; } String strAliasKpr = dlg.getAlias(); if (strAliasKpr == null) { MySystem.s_printOutTrace(this, strMethod, "nil strAliasKpr, aborted by user"); return false; } // ---- // create new KeyPair KeyPair kprNew = super._getKprNew_(); if (kprNew == null) { MySystem.s_printOutError(this, strMethod, "nil kprNew"); return false; } // ---- // create new certificate of type X.509 // memo: sig algo: MD5withRSA, MD2withRSA, SHA1withRSA, (RIPEMD160withRSA: IN COMMENTS, not // supported by SunEcSign) X509Certificate crtNew = super._getX509CertNew_(kprNew); if (crtNew == null) { MySystem.s_printOutError(this, strMethod, "nil crtNew"); return false; } // ---- // assign new entry to open keystore if (!super._assignNewEntry2OpenKeystore_(kstOpen, kprNew, crtNew, strAliasKpr, chrsPasswdKpr)) { MySystem.s_printOutError(this, strMethod, "failed"); return false; } return true; }