34 lines
1.3 KiB
Java
34 lines
1.3 KiB
Java
package com.runjva.sourceforge.jsocks.protocol;
|
|
|
|
/**
|
|
* This interface provides for datagram encapsulation for SOCKSv5 protocol.
|
|
* <p>
|
|
* SOCKSv5 allows for datagrams to be encapsulated for purposes of integrity
|
|
* and/or authenticity. How it should be done is aggreed during the
|
|
* authentication stage, and is authentication dependent. This interface is
|
|
* provided to allow this encapsulation.
|
|
*
|
|
* @see Authentication
|
|
*/
|
|
public interface UDPEncapsulation {
|
|
|
|
/**
|
|
* This method should provide any authentication depended transformation on
|
|
* datagrams being send from/to the client.
|
|
*
|
|
* @param data
|
|
* Datagram data (including any SOCKS related bytes), to be
|
|
* encapsulated/decapsulated.
|
|
* @param out
|
|
* Wether the data is being send out. If true method should
|
|
* encapsulate/encrypt data, otherwise it should decapsulate/
|
|
* decrypt data.
|
|
* @throw IOException if for some reason data can be transformed correctly.
|
|
* @return Should return byte array containing data after transformation. It
|
|
* is possible to return same array as input, if transformation only
|
|
* involves bit mangling, and no additional data is being added or
|
|
* removed.
|
|
*/
|
|
byte[] udpEncapsulate(byte[] data, boolean out) throws java.io.IOException;
|
|
}
|