/******************************************************************************* * Copyright (c) 2008 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.equinox.internal.security.ui.storage; import org.eclipse.equinox.internal.security.storage.friends.ReEncrypter; import org.eclipse.equinox.internal.security.ui.nls.SecUIMessages; import org.eclipse.equinox.security.storage.ISecurePreferences; import org.eclipse.jface.wizard.IWizardPage; import org.eclipse.jface.wizard.WizardDialog; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; public class ChangePasswordWizardDialog extends WizardDialog { final private ReEncrypter reEncrypter; private boolean decryptedOK; private boolean recodeDone; public ChangePasswordWizardDialog(Shell parentShell, ISecurePreferences node, String moduleID) { super(parentShell, new ChangePasswordWizard()); reEncrypter = new ReEncrypter(node, moduleID); } public boolean isDecryptedOK() { return decryptedOK; } public boolean isRecodeDone() { return recodeDone; } @Override protected void nextPressed() { IWizardPage currentPage = getCurrentPage(); if (currentPage instanceof ChangePasswordWizard.DecodePage) { // decrypt if (!reEncrypter.decrypt()) { MessageBox messageBox = new MessageBox(getShell(), SWT.YES | SWT.NO | SWT.ICON_WARNING); messageBox.setText(SecUIMessages.changePasswordWizardTitle); messageBox.setMessage(SecUIMessages.wizardDecodeWarning); if (messageBox.open() == SWT.YES) { setReturnCode(CANCEL); close(); return; } } } else if (currentPage instanceof ChangePasswordWizard.EncodePage) { // encrypt if (!reEncrypter.switchToNewPassword()) { MessageBox messageBox = new MessageBox(getShell(), SWT.OK | SWT.ICON_ERROR); messageBox.setText(SecUIMessages.changePasswordWizardTitle); messageBox.setMessage(SecUIMessages.wizardSwitchError); messageBox.open(); close(); return; } reEncrypter.encrypt(); recodeDone = true; } super.nextPressed(); } }