|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
diff -up azureus-5.3.0.0/com/aelitis/azureus/core/security/impl/CryptoHandlerECC.java.no-bundled-bouncycastle azureus-5.3.0.0/com/aelitis/azureus/core/security/impl/CryptoHandlerECC.java
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
--- azureus-5.3.0.0/com/aelitis/azureus/core/security/impl/CryptoHandlerECC.java.no-bundled-bouncycastle 2012-07-12 22:36:34.000000000 +0200
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
+++ azureus-5.3.0.0/com/aelitis/azureus/core/security/impl/CryptoHandlerECC.java 2014-03-06 18:07:37.000000000 +0100
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
@@ -29,6 +29,7 @@ import java.security.KeyPair;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
import java.security.PrivateKey;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
import java.security.PublicKey;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
import java.security.SecureRandom;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
+import java.security.Security;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
import java.security.Signature;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
import java.security.spec.AlgorithmParameterSpec;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
import java.util.Arrays;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
@@ -37,9 +38,10 @@ import javax.crypto.BadPaddingException;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
import javax.crypto.Cipher;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
import javax.crypto.IllegalBlockSizeException;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
-import org.bouncycastle.jce.provider.JCEIESCipher;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
import org.bouncycastle.jce.spec.IEKeySpec;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
import org.bouncycastle.jce.spec.IESParameterSpec;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
+
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
import org.gudy.azureus2.core3.config.COConfigurationManager;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
import org.gudy.azureus2.core3.util.Base32;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
import org.gudy.azureus2.core3.util.Debug;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
@@ -79,7 +81,9 @@ CryptoHandlerECC
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
CryptoManagerImpl _manager,
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
int _instance_id )
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
{
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
- manager = _manager;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
+ Security.addProvider(new BouncyCastleProvider());
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
+
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
+ manager = _manager;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
CONFIG_PREFIX += _instance_id + ".";
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
7840028 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
@@ -225,11 +229,11 @@ CryptoHandlerECC
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
IESParameterSpec param = new IESParameterSpec( d, e, 128);
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- InternalECIES cipher = new InternalECIES();
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
+ Cipher cipher = Cipher.getInstance("ECIES");
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- cipher.internalEngineInit( Cipher.ENCRYPT_MODE, key_spec, param, null );
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
+ cipher.init( Cipher.ENCRYPT_MODE, key_spec, param, null );
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- byte[] encrypted = cipher.internalEngineDoFinal(data, 0, data.length );
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
+ byte[] encrypted = cipher.doFinal(data, 0, data.length );
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
byte[] result = new byte[32+encrypted.length];
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
@@ -268,12 +272,11 @@ CryptoHandlerECC
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
IESParameterSpec param = new IESParameterSpec( d, e, 128);
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- InternalECIES cipher = new InternalECIES();
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- cipher.internalEngineInit( Cipher.DECRYPT_MODE, key_spec, param, null );
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- return( cipher.internalEngineDoFinal( data, 32, data.length - 32 ));
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
+ Cipher cipher = Cipher.getInstance("ECIES");
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
+
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
+ cipher.init( Cipher.DECRYPT_MODE, key_spec, param, null );
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
+
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
+ return( cipher.doFinal( data, 32, data.length - 32 ));
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
}catch( CryptoManagerException e ){
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
throw( e );
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
@@ -860,32 +863,4 @@ CryptoHandlerECC
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
return((int)COConfigurationManager.getIntParameter( CONFIG_PREFIX + "pwtype", CryptoManagerPasswordHandler.HANDLER_TYPE_USER ));
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
}
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- class InternalECIES
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- extends JCEIESCipher.ECIES
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- {
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- // we use this class to obtain compatability with BC
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- public void
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- internalEngineInit(
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- int opmode,
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- Key key,
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- AlgorithmParameterSpec params,
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- SecureRandom random )
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- throws InvalidKeyException, InvalidAlgorithmParameterException
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- {
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- engineInit(opmode, key, params, random);
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- }
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- protected byte[]
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- internalEngineDoFinal(
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- byte[] input,
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- int inputOffset,
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- int inputLen )
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- throws IllegalBlockSizeException, BadPaddingException
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- {
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- return engineDoFinal(input, inputOffset, inputLen);
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- }
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
- }
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
}
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
diff -up azureus-5.3.0.0/com/aelitis/azureus/core/security/impl/CryptoSTSEngineImpl.java.no-bundled-bouncycastle azureus-5.3.0.0/com/aelitis/azureus/core/security/impl/CryptoSTSEngineImpl.java
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
--- azureus-5.3.0.0/com/aelitis/azureus/core/security/impl/CryptoSTSEngineImpl.java.no-bundled-bouncycastle 2013-05-08 22:11:40.000000000 +0200
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
+++ azureus-5.3.0.0/com/aelitis/azureus/core/security/impl/CryptoSTSEngineImpl.java 2014-03-06 17:57:31.000000000 +0100
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
@@ -30,10 +30,12 @@ import java.security.KeyPair;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import java.security.PrivateKey;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import java.security.PublicKey;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import java.security.SecureRandom;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
+import java.security.Security;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import java.security.Signature;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
+import javax.crypto.KeyAgreement;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
+
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-import org.bouncycastle.jce.provider.JCEECDHKeyAgreement;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import com.aelitis.azureus.core.security.CryptoECCUtils;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import com.aelitis.azureus.core.security.CryptoManagerException;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
@@ -57,7 +59,7 @@ CryptoSTSEngineImpl
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
private PublicKey remotePubKey;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
private byte[] sharedSecret;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- private InternalDH ecDH;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
+ private KeyAgreement ecDH;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
/**
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
*
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
@@ -76,9 +78,9 @@ CryptoSTSEngineImpl
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
ephemeralKeyPair = CryptoECCUtils.createKeys();
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
try{
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- ecDH = new InternalDH();
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- //ecDH = KeyAgreement.getInstance("ECDH", BouncyCastleProvider.PROVIDER_NAME);
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
+ Security.addProvider(new BouncyCastleProvider());
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
+
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
2cad8bd |
+ ecDH = KeyAgreement.getInstance("ECDH");
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
ecDH.init(ephemeralKeyPair.getPrivate());
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
@@ -402,38 +404,4 @@ CryptoSTSEngineImpl
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
throw( new CryptoManagerException( "Failed to put byte[]", e ));
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
}
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
}
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- class
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- InternalDH
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- extends JCEECDHKeyAgreement.DH
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- {
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- // we use this class to obtain compatability with BC
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- public void
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- init(
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- Key key )
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- throws InvalidKeyException, InvalidAlgorithmParameterException
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- {
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- engineInit( key, null );
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- }
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- public Key
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- doPhase(
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- Key key,
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- boolean lastPhase )
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- throws InvalidKeyException, IllegalStateException
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- {
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- return( engineDoPhase( key, lastPhase ));
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- }
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- public byte[]
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- generateSecret()
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- throws IllegalStateException
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- {
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- return( engineGenerateSecret());
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- }
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
- }
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
-}
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
\ No newline at end of file
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
diff -up azureus-5.3.0.0/org/gudy/azureus2/core3/security/impl/SESecurityManagerBC.java.no-bundled-bouncycastle azureus-5.3.0.0/org/gudy/azureus2/core3/security/impl/SESecurityManagerBC.java
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
39cad7d |
--- azureus-5.3.0.0/org/gudy/azureus2/core3/security/impl/SESecurityManagerBC.java.no-bundled-bouncycastle 2013-08-13 17:32:46.000000000 +0200
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
20321a2 |
+++ azureus-5.3.0.0/org/gudy/azureus2/core3/security/impl/SESecurityManagerBC.java 2014-03-06 17:57:31.000000000 +0100
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
@@ -39,6 +39,7 @@ import java.util.Calendar;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import org.bouncycastle.jce.*;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import org.bouncycastle.asn1.x509.X509Name;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
+import org.bouncycastle.x509.X509V3CertificateGenerator;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import org.gudy.azureus2.core3.util.Constants;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import org.gudy.azureus2.core3.util.Debug;
|
|
![](https://seccdn.libravatar.org/avatar/42adf6134edfbda4e1d7124666c67bcf1e8ac97021f7f6cb5d96c1c99ce8c8e7?s=16&d=retro) |
5c759c9 |
import org.gudy.azureus2.core3.util.RandomUtils;
|