/* * eID Applet Project. * Copyright (C) 2008-2009 FedICT. * Copyright (C) 2014 e-Contract.be BVBA. * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version * 3.0 as published by the Free Software Foundation. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this software; if not, see * http://www.gnu.org/licenses/. */ package be.fedict.eid.applet.shared; import be.fedict.eid.applet.shared.annotation.HttpBody; import be.fedict.eid.applet.shared.annotation.HttpHeader; import be.fedict.eid.applet.shared.annotation.MessageDiscriminator; import be.fedict.eid.applet.shared.annotation.NotNull; import be.fedict.eid.applet.shared.annotation.StateTransition; import be.fedict.eid.applet.shared.protocol.ProtocolState; /** * Authentication request message transfer object. * * @author Frank Cornelis * */ @StateTransition(ProtocolState.AUTHENTICATE) public class AuthenticationRequestMessage extends AbstractProtocolMessage { @HttpHeader(TYPE_HTTP_HEADER) @MessageDiscriminator public static final String TYPE = AuthenticationRequestMessage.class.getSimpleName(); @HttpHeader(HTTP_HEADER_PREFIX + "RemoveCard") public boolean removeCard; @HttpHeader(HTTP_HEADER_PREFIX + "IncludeHostname") public boolean includeHostname; @HttpHeader(HTTP_HEADER_PREFIX + "IncludeInetAddress") public boolean includeInetAddress; @HttpHeader(HTTP_HEADER_PREFIX + "Logoff") public boolean logoff; @HttpHeader(HTTP_HEADER_PREFIX + "PreLogoff") public boolean preLogoff; @HttpHeader(HTTP_HEADER_PREFIX + "SessionIdChannelBinding") public boolean sessionIdChannelBinding; @HttpHeader(HTTP_HEADER_PREFIX + "ServerCertificateChannelBinding") public boolean serverCertificateChannelBinding; @HttpHeader(HTTP_HEADER_PREFIX + "IncludeIdentity") public boolean includeIdentity; @HttpHeader(HTTP_HEADER_PREFIX + "IncludeCertificates") public boolean includeCertificates; @HttpHeader(HTTP_HEADER_PREFIX + "IncludeAddress") public boolean includeAddress; @HttpHeader(HTTP_HEADER_PREFIX + "IncludePhoto") public boolean includePhoto; @HttpHeader(HTTP_HEADER_PREFIX + "IncludeIntegrityData") public boolean includeIntegrityData; @HttpHeader(HTTP_HEADER_PREFIX + "RequireSecureReader") public boolean requireSecureReader; @HttpHeader(HTTP_HEADER_PREFIX + "NoPKCS11") public boolean noPkcs11; @HttpHeader(HTTP_HEADER_PREFIX + "TransactionMessage") public String transactionMessage; @HttpBody @NotNull public byte[] challenge; public AuthenticationRequestMessage() { super(); } public AuthenticationRequestMessage(byte[] challenge, boolean includeHostname, boolean includeInetAddress, boolean logoff, boolean preLogoff, boolean removeCard, boolean sessionIdChannelBinding, boolean serverCertificateChannelBinding, boolean includeIdentity, boolean includeCertificates, boolean includeAddress, boolean includePhoto, boolean includeIntegrityData, boolean requireSecureReader, String transactionMessage) { this.challenge = challenge; this.includeHostname = includeHostname; this.includeInetAddress = includeInetAddress; this.logoff = logoff; this.preLogoff = preLogoff; this.removeCard = removeCard; this.sessionIdChannelBinding = sessionIdChannelBinding; this.serverCertificateChannelBinding = serverCertificateChannelBinding; this.includeIdentity = includeIdentity; this.includeCertificates = includeCertificates; this.includeAddress = includeAddress; this.includePhoto = includePhoto; this.includeIntegrityData = includeIntegrityData; this.requireSecureReader = requireSecureReader; this.noPkcs11 = true; this.transactionMessage = transactionMessage; } }