/** * 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; }