36 lines
1.6 KiB
Java
36 lines
1.6 KiB
Java
package com.runjva.sourceforge.jsocks.protocol;
|
|
|
|
/**
|
|
* The Authentication interface provides for performing method specific
|
|
* authentication for SOCKS5 connections.
|
|
*/
|
|
public interface Authentication {
|
|
/**
|
|
* This method is called when SOCKS5 server have selected a particular
|
|
* authentication method, for whch an implementaion have been registered.
|
|
*
|
|
* <p>
|
|
* This method should return an array {inputstream,outputstream
|
|
* [,UDPEncapsulation]}. The reason for that is that SOCKS5 protocol allows
|
|
* to have method specific encapsulation of data on the socket for purposes
|
|
* of integrity or security. And this encapsulation should be performed by
|
|
* those streams returned from the method. It is also possible to
|
|
* encapsulate datagrams. If authentication method supports such
|
|
* encapsulation an instance of the UDPEncapsulation interface should be
|
|
* returned as third element of the array, otherwise either null should be
|
|
* returned as third element, or array should contain only 2 elements.
|
|
*
|
|
* @param methodId
|
|
* Authentication method selected by the server.
|
|
* @param proxySocket
|
|
* Socket used to conect to the proxy.
|
|
* @return Two or three element array containing Input/Output streams which
|
|
* should be used on this connection. Third argument is optional and
|
|
* should contain an instance of UDPEncapsulation. It should be
|
|
* provided if the authentication method used requires any
|
|
* encapsulation to be done on the datagrams.
|
|
*/
|
|
Object[] doSocksAuthentication(int methodId, java.net.Socket proxySocket)
|
|
throws java.io.IOException;
|
|
}
|