summaryrefslogtreecommitdiff
path: root/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow
diff options
context:
space:
mode:
authorTobias Kellner <imcybot@gmail.com>2015-10-07 06:17:42 +0200
committerTobias Kellner <tobias.kellner@iaik.tugraz.at>2015-10-08 17:56:11 +0200
commitd9b7f8f0ed2befcd0bbfa80c84c6a89e190ff481 (patch)
treedc4eaa95debfd8c139a9ead03cf5e002b944e1e8 /pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow
parent7776caf451bc69219c1455234378c919710595b4 (diff)
downloadpdf-over-d9b7f8f0ed2befcd0bbfa80c84c6a89e190ff481.tar.gz
pdf-over-d9b7f8f0ed2befcd0bbfa80c84c6a89e190ff481.tar.bz2
pdf-over-d9b7f8f0ed2befcd0bbfa80c84c6a89e190ff481.zip
Add keystore signing
Diffstat (limited to 'pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow')
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/KSState.java113
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java6
2 files changed, 117 insertions, 2 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/KSState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/KSState.java
new file mode 100644
index 00000000..1072942c
--- /dev/null
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/KSState.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2012 by A-SIT, Secure Information Technology Center Austria
+ *
+ * Licensed under the EUPL, Version 1.1 or - as soon they will be approved by
+ * the European Commission - subsequent versions of the EUPL (the "Licence");
+ * You may not use this work except in compliance with the Licence.
+ * You may obtain a copy of the Licence at:
+ * http://joinup.ec.europa.eu/software/page/eupl
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the Licence is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the Licence for the specific language governing permissions and
+ * limitations under the Licence.
+ */
+package at.asit.pdfover.gui.workflow.states;
+
+// Imports
+import org.eclipse.swt.SWT;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import at.asit.pdfover.gui.MainWindow.Buttons;
+import at.asit.pdfover.gui.MainWindowBehavior;
+import at.asit.pdfover.gui.controls.Dialog.BUTTONS;
+import at.asit.pdfover.gui.controls.ErrorDialog;
+import at.asit.pdfover.gui.utils.Messages;
+import at.asit.pdfover.gui.workflow.StateMachine;
+import at.asit.pdfover.gui.workflow.Status;
+import at.asit.pdfover.signator.SignatureException;
+import at.asit.pdfover.signator.SigningState;
+
+/**
+ * Logical state for performing the BKU Request to a local BKU
+ */
+public class KSState extends State {
+
+ /**
+ * SLF4J Logger instance
+ **/
+ static final Logger log = LoggerFactory.getLogger(KSState.class);
+
+ /**
+ * Constructor
+ * @param stateMachine the StateMachine
+ */
+ public KSState(StateMachine stateMachine) {
+ super(stateMachine);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * at.asit.pdfover.gui.workflow.WorkflowState#update(at.asit.pdfover.gui
+ * .workflow.Workflow)
+ */
+ @Override
+ public void run() {
+ Status status = getStateMachine().getStatus();
+
+ SigningState signingState = status.getSigningState();
+
+ try {
+ signingState.setKSSigner("D:/Downloads/test.p12", "ecc_test", "123456", "123456", "PKCS12");
+ } catch (SignatureException e) {
+ log.error("Error loading keystore", e); //$NON-NLS-1$
+ ErrorDialog dialog = new ErrorDialog(
+ getStateMachine().getGUIProvider().getMainShell(),
+ Messages.getString("error.KeyStore"), //$NON-NLS-1$
+ BUTTONS.RETRY_CANCEL);
+ if (dialog.open() != SWT.RETRY) {
+ //getStateMachine().exit();
+ this.setNextState(new BKUSelectionState(getStateMachine()));
+ return;
+ }
+ return;
+ }
+
+ // OK
+ this.setNextState(new at.asit.pdfover.gui.workflow.states.SigningState(getStateMachine()));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see at.asit.pdfover.gui.workflow.states.State#cleanUp()
+ */
+ @Override
+ public void cleanUp() {
+ // No composite - no cleanup necessary
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see at.asit.pdfover.gui.workflow.states.State#setMainWindowBehavior()
+ */
+ @Override
+ public void updateMainWindowBehavior() {
+ MainWindowBehavior behavior = getStateMachine().getStatus()
+ .getBehavior();
+ behavior.reset();
+ behavior.setActive(Buttons.OPEN, true);
+ behavior.setActive(Buttons.POSITION, true);
+ behavior.setActive(Buttons.SIGN, true);
+ }
+
+ @Override
+ public String toString() {
+ return this.getClass().getName();
+ }
+}
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java
index 21664d85..45636568 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PrepareSigningState.java
@@ -235,10 +235,12 @@ public class PrepareSigningState extends State {
// We got the Request set it into status and move on to next state ...
status.setSigningState(this.signingState);
- if (getStateMachine().getStatus().getBKU() == BKUs.LOCAL) {
+ if (status.getBKU() == BKUs.LOCAL) {
this.setNextState(new LocalBKUState(getStateMachine()));
- } else if (getStateMachine().getStatus().getBKU() == BKUs.MOBILE) {
+ } else if (status.getBKU() == BKUs.MOBILE) {
this.setNextState(new MobileBKUState(getStateMachine()));
+ } else if (status.getBKU() == BKUs.KS) {
+ this.setNextState(new KSState(getStateMachine()));
} else {
log.error("Invalid selected BKU Value \"NONE\" in PrepareSigningState!"); //$NON-NLS-1$
this.setNextState(new BKUSelectionState(getStateMachine()));