Search in sources :

Example 1 with UserConsent

use of org.openecard.gui.UserConsent in project open-ecard by ecsec.

the class GenericCryptographyProtocolTest method setUp.

@BeforeMethod
public void setUp() throws Exception {
    env = new ClientEnv();
    Dispatcher d = new MessageDispatcher(env);
    env.setDispatcher(d);
    ifd = new IFD();
    ifd.setGUI(new SwingUserConsent(new SwingDialogWrapper()));
    env.setIFD(ifd);
    states = new CardStateMap();
    EstablishContextResponse ecr = env.getIFD().establishContext(new EstablishContext());
    final CardRecognitionImpl cr = new CardRecognitionImpl(env);
    ListIFDs listIFDs = new ListIFDs();
    CIFProvider cp = new CIFProvider() {

        @Override
        public CardInfoType getCardInfo(ConnectionHandleType type, String cardType) {
            return cr.getCardInfo(cardType);
        }

        @Override
        public boolean needsRecognition(byte[] atr) {
            return true;
        }

        @Override
        public CardInfoType getCardInfo(String cardType) throws RuntimeException {
            return cr.getCardInfo(cardType);
        }

        @Override
        public InputStream getCardImage(String cardType) {
            return cr.getCardImage(cardType);
        }
    };
    env.setCIFProvider(cp);
    listIFDs.setContextHandle(ecr.getContextHandle());
    ListIFDsResponse listIFDsResponse = ifd.listIFDs(listIFDs);
    RecognitionInfo recognitionInfo = cr.recognizeCard(ecr.getContextHandle(), listIFDsResponse.getIFDName().get(0), BigInteger.ZERO);
    SALStateCallback salCallback = new SALStateCallback(env, states);
    ConnectionHandleType connectionHandleType = new ConnectionHandleType();
    connectionHandleType.setContextHandle(ecr.getContextHandle());
    connectionHandleType.setRecognitionInfo(recognitionInfo);
    connectionHandleType.setIFDName(listIFDsResponse.getIFDName().get(0));
    connectionHandleType.setSlotIndex(new BigInteger("0"));
    salCallback.signalEvent(EventType.CARD_RECOGNIZED, new IfdEventObject(connectionHandleType));
    instance = new TinySAL(env, states);
    env.setSAL(instance);
    // init AddonManager
    UserConsent uc = new SwingUserConsent(new SwingDialogWrapper());
    AddonManager manager = new AddonManager(env, uc, states, null);
    instance.setAddonManager(manager);
}
Also used : ConnectionHandleType(iso.std.iso_iec._24727.tech.schema.ConnectionHandleType) SALStateCallback(org.openecard.common.sal.state.SALStateCallback) TinySAL(org.openecard.sal.TinySAL) ListIFDs(iso.std.iso_iec._24727.tech.schema.ListIFDs) ListIFDsResponse(iso.std.iso_iec._24727.tech.schema.ListIFDsResponse) IFD(org.openecard.ifd.scio.IFD) CardRecognitionImpl(org.openecard.recognition.CardRecognitionImpl) Dispatcher(org.openecard.common.interfaces.Dispatcher) MessageDispatcher(org.openecard.transport.dispatcher.MessageDispatcher) EstablishContextResponse(iso.std.iso_iec._24727.tech.schema.EstablishContextResponse) SwingUserConsent(org.openecard.gui.swing.SwingUserConsent) UserConsent(org.openecard.gui.UserConsent) ClientEnv(org.openecard.common.ClientEnv) CIFProvider(org.openecard.common.interfaces.CIFProvider) MessageDispatcher(org.openecard.transport.dispatcher.MessageDispatcher) SwingDialogWrapper(org.openecard.gui.swing.SwingDialogWrapper) RecognitionInfo(iso.std.iso_iec._24727.tech.schema.ConnectionHandleType.RecognitionInfo) SwingUserConsent(org.openecard.gui.swing.SwingUserConsent) BigInteger(java.math.BigInteger) CardStateMap(org.openecard.common.sal.state.CardStateMap) EstablishContext(iso.std.iso_iec._24727.tech.schema.EstablishContext) IfdEventObject(org.openecard.common.event.IfdEventObject) AddonManager(org.openecard.addon.AddonManager) BeforeMethod(org.testng.annotations.BeforeMethod)

Example 2 with UserConsent

use of org.openecard.gui.UserConsent in project open-ecard by ecsec.

the class BackgroundTaskTest method testWait.

@Test()
public void testWait() {
    UserConsent uc = new SwingUserConsent(new SwingDialogWrapper());
    UserConsentDescription ucd = new UserConsentDescription("Test background wait");
    Step s = new Step("Wait Step");
    s.getInputInfoUnits().add(new Text("Please wait for the background task to complete ..."));
    s.setBackgroundTask(new BackgroundTask() {

        @Override
        public StepActionResult call() throws Exception {
            // first wait
            Thread.sleep(1000);
            // then repeat ;-)
            Step replacement = new Step("Replacement Step");
            replacement.getInputInfoUnits().add(new Text("Super cool it works."));
            replacement.setInstantReturn(true);
            return new StepActionResult(StepActionResultStatus.REPEAT, replacement);
        }
    });
    ucd.getSteps().add(s);
    ExecutionEngine e = new ExecutionEngine(uc.obtainNavigator(ucd));
    e.process();
}
Also used : ExecutionEngine(org.openecard.gui.executor.ExecutionEngine) UserConsentDescription(org.openecard.gui.definition.UserConsentDescription) Text(org.openecard.gui.definition.Text) Step(org.openecard.gui.definition.Step) UserConsent(org.openecard.gui.UserConsent) StepActionResult(org.openecard.gui.executor.StepActionResult) BackgroundTask(org.openecard.gui.executor.BackgroundTask) Test(org.testng.annotations.Test)

Example 3 with UserConsent

use of org.openecard.gui.UserConsent in project open-ecard by ecsec.

the class UpdateDialogTest method testUpdateDialog.

@Test(enabled = false)
public void testUpdateDialog() throws MalformedURLException, InterruptedException {
    String dlUrl = "https://drivers.luxtrust.lu";
    UserConsent gui = new SwingUserConsent(new SwingDialogWrapper());
    final UpdateDialog ud = new UpdateDialog(gui, dlUrl, true);
    new Thread(new Runnable() {

        @Override
        public void run() {
            ud.display();
        }
    }).start();
    Thread.sleep(500);
    final UpdateDialog ud2 = new UpdateDialog(gui, dlUrl, false);
    new Thread(new Runnable() {

        @Override
        public void run() {
            ud2.display();
        }
    }).start();
    Thread.sleep(500000);
}
Also used : SwingDialogWrapper(org.openecard.gui.swing.SwingDialogWrapper) SwingUserConsent(org.openecard.gui.swing.SwingUserConsent) SwingUserConsent(org.openecard.gui.swing.SwingUserConsent) UserConsent(org.openecard.gui.UserConsent) Test(org.testng.annotations.Test)

Example 4 with UserConsent

use of org.openecard.gui.UserConsent in project open-ecard by ecsec.

the class TCTokenRequest method findCard.

/**
 * Finds a card which matches one of the give types.
 *
 * @param types String array containing valid card types.
 * @param disp Dispatcher used to query cards and terminals.
 * @param gui User consent to display messages to the user.
 * @return ConnectionHandleType object of the chosen card.
 */
private static ConnectionHandleType findCard(@Nonnull String[] types, @Nonnull Context ctx) throws MissingActivationParameterException, UserCancellationException {
    CardRecognition rec = ctx.getRecognition();
    Map<String, String> namesAndType = new HashMap<>();
    for (String type : types) {
        namesAndType.put(rec.getTranslatedCardName(type), type);
    }
    InsertCardDialog insCardDiag = new InsertCardDialog(ctx.getUserConsent(), ctx.getCardStates(), namesAndType, ctx.getEventDispatcher());
    List<ConnectionHandleType> usableCards = insCardDiag.show();
    if (usableCards == null) {
        // user aborted the card insertion dialog
        throw new UserCancellationException(null, LANG.translationForKey(CARD_INSERTION_ABORT));
    }
    ConnectionHandleType handle;
    if (usableCards.size() > 1) {
        UserConsentDescription ucd = new UserConsentDescription(LANG.translationForKey("card.selection.heading.uc", AppVersion.getName()));
        String stepTitle = LANG.translationForKey("card.selection.heading.step");
        CardSelectionStep step = new CardSelectionStep(stepTitle, usableCards, ctx.getRecognition());
        ArrayList<String> types2 = new ArrayList<>();
        types2.addAll(namesAndType.values());
        CardMonitorTask task = new CardMonitorTask(types2, step);
        ctx.getEventDispatcher().add(task, EventType.CARD_REMOVED, EventType.CARD_RECOGNIZED);
        step.setBackgroundTask(task);
        CardSelectionAction action = new CardSelectionAction(step, usableCards, types2, ctx);
        step.setAction(action);
        ucd.getSteps().add(step);
        UserConsent uc = ctx.getUserConsent();
        UserConsentNavigator ucNav = uc.obtainNavigator(ucd);
        ExecutionEngine exec = new ExecutionEngine(ucNav);
        ResultStatus resStatus = exec.process();
        if (resStatus != ResultStatus.OK) {
            throw new MissingActivationParameterException(CARD_SELECTION_ABORT);
        }
        handle = action.getResult();
        ctx.getEventDispatcher().del(task);
    } else {
        handle = usableCards.get(0);
    }
    return handle;
}
Also used : ConnectionHandleType(iso.std.iso_iec._24727.tech.schema.ConnectionHandleType) HashMap(java.util.HashMap) ResultStatus(org.openecard.gui.ResultStatus) ArrayList(java.util.ArrayList) MissingActivationParameterException(org.openecard.binding.tctoken.ex.MissingActivationParameterException) CardMonitorTask(org.openecard.addons.tr03124.gui.CardMonitorTask) CardSelectionStep(org.openecard.addons.tr03124.gui.CardSelectionStep) UserConsent(org.openecard.gui.UserConsent) UserConsentNavigator(org.openecard.gui.UserConsentNavigator) ExecutionEngine(org.openecard.gui.executor.ExecutionEngine) UserCancellationException(org.openecard.binding.tctoken.ex.UserCancellationException) UserConsentDescription(org.openecard.gui.definition.UserConsentDescription) CardRecognition(org.openecard.common.interfaces.CardRecognition) InsertCardDialog(org.openecard.common.sal.util.InsertCardDialog) CardSelectionAction(org.openecard.addons.tr03124.gui.CardSelectionAction)

Aggregations

UserConsent (org.openecard.gui.UserConsent)4 ConnectionHandleType (iso.std.iso_iec._24727.tech.schema.ConnectionHandleType)2 UserConsentDescription (org.openecard.gui.definition.UserConsentDescription)2 ExecutionEngine (org.openecard.gui.executor.ExecutionEngine)2 SwingDialogWrapper (org.openecard.gui.swing.SwingDialogWrapper)2 SwingUserConsent (org.openecard.gui.swing.SwingUserConsent)2 Test (org.testng.annotations.Test)2 RecognitionInfo (iso.std.iso_iec._24727.tech.schema.ConnectionHandleType.RecognitionInfo)1 EstablishContext (iso.std.iso_iec._24727.tech.schema.EstablishContext)1 EstablishContextResponse (iso.std.iso_iec._24727.tech.schema.EstablishContextResponse)1 ListIFDs (iso.std.iso_iec._24727.tech.schema.ListIFDs)1 ListIFDsResponse (iso.std.iso_iec._24727.tech.schema.ListIFDsResponse)1 BigInteger (java.math.BigInteger)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 AddonManager (org.openecard.addon.AddonManager)1 CardMonitorTask (org.openecard.addons.tr03124.gui.CardMonitorTask)1 CardSelectionAction (org.openecard.addons.tr03124.gui.CardSelectionAction)1 CardSelectionStep (org.openecard.addons.tr03124.gui.CardSelectionStep)1 MissingActivationParameterException (org.openecard.binding.tctoken.ex.MissingActivationParameterException)1