com.ibm.atp.auth
Class Authentication

java.lang.Object
  extended bycom.ibm.atp.auth.Authentication

public class Authentication
extends java.lang.Object

The Authentication class is the authentication protocol class.

Version:
1.00 $Date: 2001/07/28 06:33:47 $
Author:
ONO Kouichi

Field Summary
private  boolean _authenticatedMyself
           
private  boolean _authenticatedOpponent
           
private  java.io.DataInput _dataInput
          Input/Output stream of socket
private  java.net.InetAddress _localAddr
          Local/Remote IP address of socket
private  int _manner
           
private  java.io.OutputStream _outputStream
           
private  java.net.InetAddress _remoteAddr
           
private static SharedSecrets _secrets
          Shared Secret
private  java.lang.String _selectedDomainname
           
private  SharedSecret _selectedSecret
          Security domains
private  ServerIdentifier _serverIdentifier
          Server Identifier
private  java.net.Socket _socket
          Socket to be connected/bound
private  int _status
           
private  int _step
           
private  int _turn
          Turn of protocol
private static int DEFAULT_AUTHENTICATION_MANNER
          Authentication manner
(package private) static int STATUS_AUTHENTICATION_FAILED
           
(package private) static int STATUS_ERROR
           
(package private) static int STATUS_ILLEGAL_STEP
           
(package private) static int STATUS_INCONSISTENT_MANNER
           
(package private) static int STATUS_NORMAL
          Status of authentication
(package private) static int STATUS_UNKNOWN_DOMAIN
           
(package private) static int STATUS_UNKNOWN_MANNER
           
(package private) static int STEP_END
           
(package private) static int STEP_FIRST_TURN
           
(package private) static int STEP_NOT_AUTHENTICATED
          Step of authentication protocol
(package private) static int STEP_SECOND_TURN
           
(package private) static int STEP_START
           
 
Constructor Summary
Authentication(int turn, java.io.DataInput di, java.net.Socket socket)
          Default constructor creates an challenge-response authentication protocol handler.
Authentication(int turn, java.io.DataInput di, java.net.Socket socket, int manner)
          Constructor creates an challenge-response authentication protocol handler.
 
Method Summary
 boolean authenticate()
          Process authentication protocol.
private  void authenticateFirstTurn()
          Process authentication protocol for first turn individual.
private  void authenticateSecondTurn()
          Process authentication protocol for second turn individual.
 int getAuthManner()
          Returns authentication manner
 java.io.DataInput getDataInput()
          Returns data input of packet
 java.net.InetAddress getLocalAddress()
          Returns local IP address of socket to be connected/bound
 java.io.OutputStream getOutputStream()
          Returns output stream of socket to be connected/bound
 java.net.InetAddress getRemoteAddress()
          Returns remote IP address of socket to be connected/bound
 java.lang.String getSelectedDomainName()
          Returns selected security domain name.
 SharedSecret getSelectedSecret()
          Returns shared secret for selected security domain.
 java.net.Socket getSocket()
          Returns socket to be connected/bound.
 int getTurn()
          Returns turn of protocol.
 boolean isAuthenticatedMyself()
           
 boolean isAuthenticatedOpponent()
           
private  void setAuthManner(int manner)
          Sets authentication manner.
private  void setDataInput(java.io.DataInput di)
          Sets data input of packet.
private  void setSocket(java.net.Socket socket)
          Sets socket to be connected/bound.
private  void setStatus(int status)
          Sets status
private  void setTurn(int turn)
          Sets turn of protocol.
private static void verboseOut(java.lang.String msg)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_authenticatedMyself

private boolean _authenticatedMyself

_authenticatedOpponent

private boolean _authenticatedOpponent

_turn

private int _turn
Turn of protocol


_socket

private java.net.Socket _socket
Socket to be connected/bound


_localAddr

private java.net.InetAddress _localAddr
Local/Remote IP address of socket


_remoteAddr

private java.net.InetAddress _remoteAddr

_serverIdentifier

private ServerIdentifier _serverIdentifier
Server Identifier


_dataInput

private java.io.DataInput _dataInput
Input/Output stream of socket


_outputStream

private java.io.OutputStream _outputStream

_secrets

private static SharedSecrets _secrets
Shared Secret


DEFAULT_AUTHENTICATION_MANNER

private static final int DEFAULT_AUTHENTICATION_MANNER
Authentication manner

See Also:
Constant Field Values

_manner

private int _manner

STEP_NOT_AUTHENTICATED

static final int STEP_NOT_AUTHENTICATED
Step of authentication protocol

See Also:
Constant Field Values

STEP_START

static final int STEP_START
See Also:
Constant Field Values

STEP_FIRST_TURN

static final int STEP_FIRST_TURN
See Also:
Constant Field Values

STEP_SECOND_TURN

static final int STEP_SECOND_TURN
See Also:
Constant Field Values

STEP_END

static final int STEP_END
See Also:
Constant Field Values

_step

private int _step

STATUS_NORMAL

static final int STATUS_NORMAL
Status of authentication

See Also:
Constant Field Values

STATUS_AUTHENTICATION_FAILED

static final int STATUS_AUTHENTICATION_FAILED
See Also:
Constant Field Values

STATUS_ILLEGAL_STEP

static final int STATUS_ILLEGAL_STEP
See Also:
Constant Field Values

STATUS_UNKNOWN_DOMAIN

static final int STATUS_UNKNOWN_DOMAIN
See Also:
Constant Field Values

STATUS_UNKNOWN_MANNER

static final int STATUS_UNKNOWN_MANNER
See Also:
Constant Field Values

STATUS_INCONSISTENT_MANNER

static final int STATUS_INCONSISTENT_MANNER
See Also:
Constant Field Values

STATUS_ERROR

static final int STATUS_ERROR
See Also:
Constant Field Values

_status

private int _status

_selectedSecret

private SharedSecret _selectedSecret
Security domains


_selectedDomainname

private java.lang.String _selectedDomainname
Constructor Detail

Authentication

public Authentication(int turn,
                      java.io.DataInput di,
                      java.net.Socket socket)
Default constructor creates an challenge-response authentication protocol handler.

Parameters:
turn - turn of protocol
di - data input of packet
socket - socket to be connected/bound

Authentication

public Authentication(int turn,
                      java.io.DataInput di,
                      java.net.Socket socket,
                      int manner)
Constructor creates an challenge-response authentication protocol handler.

Parameters:
turn - turn of protocol
di - data input of packet
socket - socket to be connected/bound
manner - challenge-response authentication manner
Method Detail

authenticate

public final boolean authenticate()
                           throws AuthenticationProtocolException,
                                  java.io.IOException
Process authentication protocol.

Throws:
AuthenticationProtocolException - incorrect protocol
java.io.IOException

authenticateFirstTurn

private final void authenticateFirstTurn()
                                  throws java.io.IOException
Process authentication protocol for first turn individual.

Throws:
java.io.IOException

authenticateSecondTurn

private final void authenticateSecondTurn()
                                   throws java.io.IOException
Process authentication protocol for second turn individual.

Throws:
java.io.IOException

getAuthManner

public final int getAuthManner()
Returns authentication manner

Returns:
authentication manner

getDataInput

public final java.io.DataInput getDataInput()
Returns data input of packet

Returns:
data input of packet

getLocalAddress

public final java.net.InetAddress getLocalAddress()
Returns local IP address of socket to be connected/bound

Returns:
local IP address of socket to be connected/bound

getOutputStream

public final java.io.OutputStream getOutputStream()
Returns output stream of socket to be connected/bound

Returns:
output stream of socket to be connected/bound

getRemoteAddress

public final java.net.InetAddress getRemoteAddress()
Returns remote IP address of socket to be connected/bound

Returns:
remote IP address of socket to be connected/bound

getSelectedDomainName

public final java.lang.String getSelectedDomainName()
Returns selected security domain name.

Returns:
selected security domain name

getSelectedSecret

public final SharedSecret getSelectedSecret()
Returns shared secret for selected security domain.

Returns:
shared secret for selected security domain

getSocket

public final java.net.Socket getSocket()
Returns socket to be connected/bound.

Returns:
socket to be connected/bound

getTurn

public final int getTurn()
Returns turn of protocol.

Returns:
turn of protocol

isAuthenticatedMyself

public boolean isAuthenticatedMyself()

isAuthenticatedOpponent

public boolean isAuthenticatedOpponent()

setAuthManner

private final void setAuthManner(int manner)
                          throws java.lang.IllegalArgumentException
Sets authentication manner.

Parameters:
manner - authentication manner
Throws:
java.lang.IllegalArgumentException

setDataInput

private final void setDataInput(java.io.DataInput di)
Sets data input of packet.

Parameters:
di - data input of packet

setSocket

private final void setSocket(java.net.Socket socket)
Sets socket to be connected/bound.

Parameters:
socket - socket to be connected/bound

setStatus

private final void setStatus(int status)
                      throws java.lang.IllegalArgumentException
Sets status

Throws:
java.lang.IllegalArgumentException

setTurn

private final void setTurn(int turn)
                    throws java.lang.IllegalArgumentException
Sets turn of protocol.

Parameters:
turn - turn of protocol
Throws:
java.lang.IllegalArgumentException

verboseOut

private static final void verboseOut(java.lang.String msg)