ajanta.util
Class InterAgentTicketing

java.lang.Object
  |
  +--ajanta.util.InterAgentTicketing

public class InterAgentTicketing
extends java.lang.Object

This class takes a reference of the name registry which enables it to lookup the public key for a mobile agent from name-registry instead of local machine


Field Summary
 ajanta.naming.CascadedCertificate cc
           
 byte[] creatorSignature
           
 ajanta.agent.Credentials cred
           
 java.security.cert.X509Certificate locationCert
           
 java.security.cert.X509Certificate userCert
           
 
Constructor Summary
InterAgentTicketing(ajanta.naming.URN name, java.security.PrivateKey k, ajanta.server.NRAccess nrAccess, ajanta.agent.Credentials cred, byte[] creatorSignature, java.security.cert.X509Certificate userCert, ajanta.naming.CascadedCertificate cc)
          Constructor
 
Method Summary
 ajanta.util.AgentTicket authenticateAgent(ajanta.util.AgentTicket agentTicket)
           
 ajanta.util.AgentTicket authenticateAgentServer(ajanta.util.AgentServerTicket ast)
           
 ajanta.util.AgentTicket generateAgentTicket(ajanta.naming.URN agentURN)
           
 ajanta.util.AgentTicket getAgentTicket(ajanta.naming.URN callerURN)
           
 ajanta.util.CompleteTicket getTicket(ajanta.naming.URN callerURN)
           
 void print()
           
 boolean reauthenticate(ajanta.naming.URN agentURN)
           
protected  java.lang.String sanitizeX500Name(java.lang.String x500Name)
           
 boolean verifyAgentServerTicket(ajanta.util.AgentServerTicket ast)
           
 boolean verifyAgentTicket(ajanta.util.AgentTicket at, boolean first)
           
 boolean verifyTicket(ajanta.util.CompleteTicket t)
          verifies a completeticket, it does not require the public key of the ticket granter as the key would be fetched from the name registry/will be in the certificates In the code written as earlier part of the Ajanta System, they are using the Ticket, in which Lowe's attack was taking palce...I didn't want to touch that code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cred

public ajanta.agent.Credentials cred

creatorSignature

public byte[] creatorSignature

userCert

public java.security.cert.X509Certificate userCert

locationCert

public java.security.cert.X509Certificate locationCert

cc

public ajanta.naming.CascadedCertificate cc
Constructor Detail

InterAgentTicketing

public InterAgentTicketing(ajanta.naming.URN name,
                           java.security.PrivateKey k,
                           ajanta.server.NRAccess nrAccess,
                           ajanta.agent.Credentials cred,
                           byte[] creatorSignature,
                           java.security.cert.X509Certificate userCert,
                           ajanta.naming.CascadedCertificate cc)
Constructor

Parameters:
name - - the ticket granter
k - - private key of the ticket granter who will sign the ticket
Method Detail

authenticateAgent

public ajanta.util.AgentTicket authenticateAgent(ajanta.util.AgentTicket agentTicket)
                                          throws java.rmi.RemoteException
java.rmi.RemoteException

authenticateAgentServer

public ajanta.util.AgentTicket authenticateAgentServer(ajanta.util.AgentServerTicket ast)

verifyTicket

public boolean verifyTicket(ajanta.util.CompleteTicket t)
                     throws java.rmi.RemoteException,
                            java.security.InvalidKeyException,
                            java.security.SignatureException
verifies a completeticket, it does not require the public key of the ticket granter as the key would be fetched from the name registry/will be in the certificates In the code written as earlier part of the Ajanta System, they are using the Ticket, in which Lowe's attack was taking palce...I didn't want to touch that code. Hence, I am using a complete ticket.

Parameters:
t - - the ticket which would be verified.
java.rmi.RemoteException
java.security.InvalidKeyException
java.security.SignatureException

getTicket

public ajanta.util.CompleteTicket getTicket(ajanta.naming.URN callerURN)

print

public void print()

generateAgentTicket

public ajanta.util.AgentTicket generateAgentTicket(ajanta.naming.URN agentURN)

verifyAgentTicket

public boolean verifyAgentTicket(ajanta.util.AgentTicket at,
                                 boolean first)
                          throws java.security.GeneralSecurityException
java.security.GeneralSecurityException

getAgentTicket

public ajanta.util.AgentTicket getAgentTicket(ajanta.naming.URN callerURN)

reauthenticate

public boolean reauthenticate(ajanta.naming.URN agentURN)
                       throws java.rmi.RemoteException,
                              java.rmi.NotBoundException,
                              java.security.GeneralSecurityException
java.rmi.RemoteException
java.rmi.NotBoundException
java.security.GeneralSecurityException

verifyAgentServerTicket

public boolean verifyAgentServerTicket(ajanta.util.AgentServerTicket ast)
                                throws java.security.GeneralSecurityException
java.security.GeneralSecurityException

sanitizeX500Name

protected java.lang.String sanitizeX500Name(java.lang.String x500Name)