| org.jboss.security.srp.SRPServerInterface
All known Subclasses: org.jboss.security.test.SimpleSRPServer,
SRPServerInterface | public interface SRPServerInterface (Code) | | An interface describing the message exchange of the SRP protocol as
described in RFC2945. This is an RMI compatible interface in that all methods
declare that they throw a RemoteException, but it does not extend from
java.rmi.Remote so that it cannot be used in place of a Remote object.
For an RMI interface see the SRPRemoteServerInterface.
There are two versions of each method. One that takes an arbitrary session number
and one that does not. The session number form allows a user to maintain mutiple
SRP sessions.
See Also: org.jboss.security.srp.SRPRemoteServerInterface author: Scott.Stark@jboss.org version: $Revision: 57210 $ |
Method Summary | |
public void | close(String username) Close the SRP session for the given username. | public void | close(String username, int sessionID) | public SRPParameters | getSRPParameters(String username) Get the SRP parameters to use for this session. | public Object[] | getSRPParameters(String username, boolean mutipleSessions) Get the SRP parameters to use for this session and create an arbitrary session id
to allow for multiple SRP sessions for this user.
username, the SRP username mutipleSessions, a flag that if true indicates the user may initiate mutiplesessions and an arbitrary session id will be created. | public byte[] | init(String username, byte[] A) Initiate the SRP algorithm. | public byte[] | init(String username, byte[] A, int sessionID) Initiate the SRP algorithm. | public byte[] | verify(String username, byte[] M1) Verify the session key hash. | public byte[] | verify(String username, byte[] M1, int sessionID) | public byte[] | verify(String username, byte[] M1, Object auxChallenge) Verify the session key hash. | public byte[] | verify(String username, byte[] M1, Object auxChallenge, int sessionID) |
getSRPParameters | public Object[] getSRPParameters(String username, boolean mutipleSessions) throws KeyException, RemoteException(Code) | | Get the SRP parameters to use for this session and create an arbitrary session id
to allow for multiple SRP sessions for this user.
username, the SRP username mutipleSessions, a flag that if true indicates the user may initiate mutiplesessions and an arbitrary session id will be created. an array of {SRPParameters, Integer} where element[0] is the SRPParametersobject and element[1] is the session id as an Integer. |
init | public byte[] init(String username, byte[] A) throws SecurityException, NoSuchAlgorithmException, RemoteException(Code) | | Initiate the SRP algorithm. The client sends their username and the
public key A to begin the SRP handshake.
username, the user ID by which the client is known. A, the client public key = (g ^ a) % N byte[], ephemeral server public key B = (v + g ^ b) % N throws: KeyException - , thrown if the username is not known by the server. throws: RemoteException - , thrown by remote implementations |
init | public byte[] init(String username, byte[] A, int sessionID) throws SecurityException, NoSuchAlgorithmException, RemoteException(Code) | | Initiate the SRP algorithm. The client sends their username and the
public key A to begin the SRP handshake.
username, the user ID by which the client is known. A, the client public key = (g ^ a) % N sessionID, the arbitrary session id obtained from getSRPParameters. A 0indicates there is no sessionID. byte[], ephemeral server public key B = (v + g ^ b) % N throws: KeyException - , thrown if the username is not known by the server. throws: RemoteException - , thrown by remote implementations |
verify | public byte[] verify(String username, byte[] M1) throws SecurityException, RemoteException(Code) | | Verify the session key hash. The client sends their username and M1
hash to validate completion of the SRP handshake.
username, the user ID by which the client is known. This is repeated to simplifythe server session management. M1, the client hash of the session key; M1 = H(H(N) xor H(g) | H(U) | A | B | K) M2, the server hash of the client challenge; M2 = H(A | M1 | K) throws: SecurityException - , thrown if M1 cannot be verified by the server throws: RemoteException - , thrown by remote implementations |
verify | public byte[] verify(String username, byte[] M1, Object auxChallenge) throws SecurityException, RemoteException(Code) | | Verify the session key hash. The client sends their username and M1
hash to validate completion of the SRP handshake.
username, the user ID by which the client is known. This is repeated to simplifythe server session management. M1, the client hash of the session key; M1 = H(H(N) xor H(g) | H(U) | A | B | K) auxChallenge, an arbitrary addition data item that my be used as an additionalchallenge. One example usage would be to send a hardware generated token that was encryptedwith the session private key for validation by the server. M2, the server hash of the client challenge; M2 = H(A | M1 | K) throws: SecurityException - , thrown if M1 cannot be verified by the server throws: RemoteException - , thrown by remote implementations |
|
|