diff src/net/sourceforge/jsocks/Authentication.java @ 0:0ce5cc452d02

initial version
author Carl Byington <carl@five-ten-sg.com>
date Thu, 22 May 2014 10:41:19 -0700
parents
children 205ee2873330
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/net/sourceforge/jsocks/Authentication.java	Thu May 22 10:41:19 2014 -0700
@@ -0,0 +1,34 @@
+package net.sourceforge.jsocks;
+
+/**
+ 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;
+}