diff --git a/core/java/src/net/i2p/client/I2PClient.java b/core/java/src/net/i2p/client/I2PClient.java index 6521cf258fc56bc801129716e78cc35b1aa6a428..d0f4ac0500f03f13403e7ea351045364681ab156 100644 --- a/core/java/src/net/i2p/client/I2PClient.java +++ b/core/java/src/net/i2p/client/I2PClient.java @@ -21,6 +21,9 @@ import net.i2p.data.Destination; /** * Define the standard means of interacting with the I2P system * + * An I2PClient contains no state, it is just a facility for creating private key files + * and generating sesssions from existing private key files. + * * @author jrandom */ public interface I2PClient { diff --git a/core/java/src/net/i2p/client/I2PClientImpl.java b/core/java/src/net/i2p/client/I2PClientImpl.java index 23033dbf0f8d4042619cf37eb787b5d184ac1381..932daa61a5a4f0c9fc9476bce23d82253ecee215 100644 --- a/core/java/src/net/i2p/client/I2PClientImpl.java +++ b/core/java/src/net/i2p/client/I2PClientImpl.java @@ -25,14 +25,18 @@ import net.i2p.data.SigningPrivateKey; import net.i2p.data.SigningPublicKey; /** - * Base client implementation + * Base client implementation. + * An I2PClient contains no state, it is just a facility for creating private key files + * and generating sesssions from existing private key files. * * @author jrandom */ class I2PClientImpl implements I2PClient { /** - * Create the destination with a null payload + * Create the destination with a null payload. + * This is not bound to the I2PClient, you must supply the data back again + * in createSession(). * * @param destKeyStream location to write out the destination, PrivateKey, and SigningPrivateKey, * format is specified in {@link net.i2p.data.PrivateKeyFile PrivateKeyFile} diff --git a/core/java/src/net/i2p/client/I2PSessionImpl.java b/core/java/src/net/i2p/client/I2PSessionImpl.java index 69fc300788b288bb2bf6608808630bf621234ed9..010092cfd6e7d307e4bfd63433a7eb344171d0dd 100644 --- a/core/java/src/net/i2p/client/I2PSessionImpl.java +++ b/core/java/src/net/i2p/client/I2PSessionImpl.java @@ -515,9 +515,9 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa * Needs work. */ protected class AvailabilityNotifier implements Runnable { - private List _pendingIds; - private List _pendingSizes; - private boolean _alive; + private final List _pendingIds; + private final List _pendingSizes; + private volatile boolean _alive; public AvailabilityNotifier() { _pendingIds = new ArrayList(2); diff --git a/core/java/src/net/i2p/crypto/CryptixAESEngine.java b/core/java/src/net/i2p/crypto/CryptixAESEngine.java index 6d8e0da07579f0c4012feece0173d3dfa173766f..9836e7c403ca10766359ff243829d5d19190f06f 100644 --- a/core/java/src/net/i2p/crypto/CryptixAESEngine.java +++ b/core/java/src/net/i2p/crypto/CryptixAESEngine.java @@ -61,6 +61,7 @@ public class CryptixAESEngine extends AESEngine { } ****/ + /** */ public CryptixAESEngine(I2PAppContext context) { super(context); //_cache = new CryptixAESKeyCache(); diff --git a/core/java/src/net/i2p/crypto/CryptixRijndael_Algorithm.java b/core/java/src/net/i2p/crypto/CryptixRijndael_Algorithm.java index 02a11431fabc00381ca4d367ae0b69078f668d98..f36d7753b62bc422c6426a2f5e48a3514c1f9e52 100644 --- a/core/java/src/net/i2p/crypto/CryptixRijndael_Algorithm.java +++ b/core/java/src/net/i2p/crypto/CryptixRijndael_Algorithm.java @@ -32,53 +32,53 @@ public final class CryptixRijndael_Algorithm // implicit no-argument constructor // Debugging methods and variables //........................................................................... - static final String _NAME = "Rijndael_Algorithm"; - static final boolean _IN = true, _OUT = false; + private static final String _NAME = "Rijndael_Algorithm"; + private static final boolean _IN = true, _OUT = false; - static final boolean _RDEBUG = false; - static final int _debuglevel = 0; // RDEBUG ? Rijndael_Properties.getLevel(NAME): 0; + private static final boolean _RDEBUG = false; + private static final int _debuglevel = 0; // RDEBUG ? Rijndael_Properties.getLevel(NAME): 0; // static final PrintWriter err = RDEBUG ? Rijndael_Properties.getOutput() : null; - static final PrintWriter _err = new PrintWriter(new java.io.OutputStreamWriter(System.err)); + private static final PrintWriter _err = new PrintWriter(new java.io.OutputStreamWriter(System.err)); - static final boolean _TRACE = false; // Rijndael_Properties.isTraceable(NAME); + private static final boolean _TRACE = false; // Rijndael_Properties.isTraceable(NAME); - static void debug(String s) { + private static void debug(String s) { _err.println(">>> " + _NAME + ": " + s); } - static void trace(boolean in, String s) { + private static void trace(boolean in, String s) { if (_TRACE) _err.println((in ? "==> " : "<== ") + _NAME + "." + s); } - static void trace(String s) { + private static void trace(String s) { if (_TRACE) _err.println("<=> " + _NAME + "." + s); } // Constants and variables //........................................................................... - static final int _BLOCK_SIZE = 16; // default block size in bytes - - static final int[] _alog = new int[256]; - static final int[] _log = new int[256]; - - static final byte[] _S = new byte[256]; - static final byte[] _Si = new byte[256]; - static final int[] _T1 = new int[256]; - static final int[] _T2 = new int[256]; - static final int[] _T3 = new int[256]; - static final int[] _T4 = new int[256]; - static final int[] _T5 = new int[256]; - static final int[] _T6 = new int[256]; - static final int[] _T7 = new int[256]; - static final int[] _T8 = new int[256]; - static final int[] _U1 = new int[256]; - static final int[] _U2 = new int[256]; - static final int[] _U3 = new int[256]; - static final int[] _U4 = new int[256]; - static final byte[] _rcon = new byte[30]; - - static final int[][][] _shifts = new int[][][] { { { 0, 0}, { 1, 3}, { 2, 2}, { 3, 1}}, + private static final int _BLOCK_SIZE = 16; // default block size in bytes + + private static final int[] _alog = new int[256]; + private static final int[] _log = new int[256]; + + private static final byte[] _S = new byte[256]; + private static final byte[] _Si = new byte[256]; + private static final int[] _T1 = new int[256]; + private static final int[] _T2 = new int[256]; + private static final int[] _T3 = new int[256]; + private static final int[] _T4 = new int[256]; + private static final int[] _T5 = new int[256]; + private static final int[] _T6 = new int[256]; + private static final int[] _T7 = new int[256]; + private static final int[] _T8 = new int[256]; + private static final int[] _U1 = new int[256]; + private static final int[] _U2 = new int[256]; + private static final int[] _U3 = new int[256]; + private static final int[] _U4 = new int[256]; + private static final byte[] _rcon = new byte[30]; + + private static final int[][][] _shifts = new int[][][] { { { 0, 0}, { 1, 3}, { 2, 2}, { 3, 1}}, { { 0, 0}, { 1, 5}, { 2, 4}, { 3, 3}}, { { 0, 0}, { 1, 7}, { 3, 5}, { 4, 4}}}; @@ -344,12 +344,12 @@ public final class CryptixRijndael_Algorithm // implicit no-argument constructor } // multiply two elements of GF(2^m) - static final int mul(int a, int b) { + private static final int mul(int a, int b) { return (a != 0 && b != 0) ? _alog[(_log[a & 0xFF] + _log[b & 0xFF]) % 255] : 0; } // convenience method used in generating Transposition boxes - static final int mul4(int a, byte[] b) { + private static final int mul4(int a, byte[] b) { if (a == 0) return 0; a = _log[a & 0xFF]; int a0 = (b[0] != 0) ? _alog[(a + _log[b[0] & 0xFF]) % 255] & 0xFF : 0;