comparison src/com/five_ten_sg/connectbot/GeneratePubkeyActivity.java @ 344:b40bc65fa09a

compensate for SecureRandom bug on older devices
author Carl Byington <carl@five-ten-sg.com>
date Thu, 31 Jul 2014 18:39:36 -0700
parents 91a31873c42a
children
comparison
equal deleted inserted replaced
343:df13118e8e79 344:b40bc65fa09a
19 19
20 import java.security.KeyPair; 20 import java.security.KeyPair;
21 import java.security.KeyPairGenerator; 21 import java.security.KeyPairGenerator;
22 import java.security.PrivateKey; 22 import java.security.PrivateKey;
23 import java.security.PublicKey; 23 import java.security.PublicKey;
24 import java.security.SecureRandom;
25 24
26 import com.five_ten_sg.connectbot.bean.PubkeyBean; 25 import com.five_ten_sg.connectbot.bean.PubkeyBean;
27 import com.five_ten_sg.connectbot.util.EntropyDialog; 26 import com.five_ten_sg.connectbot.util.EntropyDialog;
28 import com.five_ten_sg.connectbot.util.EntropyView; 27 import com.five_ten_sg.connectbot.util.EntropyView;
29 import com.five_ten_sg.connectbot.util.OnEntropyGatheredListener; 28 import com.five_ten_sg.connectbot.util.OnEntropyGatheredListener;
46 import android.widget.RadioGroup; 45 import android.widget.RadioGroup;
47 import android.widget.RadioGroup.OnCheckedChangeListener; 46 import android.widget.RadioGroup.OnCheckedChangeListener;
48 import android.widget.SeekBar; 47 import android.widget.SeekBar;
49 import android.widget.SeekBar.OnSeekBarChangeListener; 48 import android.widget.SeekBar.OnSeekBarChangeListener;
50 49
50 import ch.ethz.ssh2.crypto.SecureRandomFix;
51 import ch.ethz.ssh2.signature.ECDSASHA2Verify; 51 import ch.ethz.ssh2.signature.ECDSASHA2Verify;
52 52
53 public class GeneratePubkeyActivity extends Activity implements OnEntropyGatheredListener { 53 public class GeneratePubkeyActivity extends Activity implements OnEntropyGatheredListener {
54 public final static String TAG = "ConnectBot.GeneratePubkeyActivity"; 54 public final static String TAG = "ConnectBot.GeneratePubkeyActivity";
55 55
236 int tmpbits = bits; 236 int tmpbits = bits;
237 237
238 if (keyType == PubkeyDatabase.KEY_TYPE_DSA) 238 if (keyType == PubkeyDatabase.KEY_TYPE_DSA)
239 tmpbits = DSA_BITS; 239 tmpbits = DSA_BITS;
240 240
241 SecureRandom random = new SecureRandom(); 241 SecureRandomFix random = new SecureRandomFix();
242 // Work around JVM bug 242 // Work around JVM bug
243 random.nextInt(); 243 random.nextInt();
244 random.setSeed(entropy); 244 random.setSeed(entropy);
245 KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(keyType); 245 KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance(keyType);
246 keyPairGen.initialize(tmpbits, random); 246 keyPairGen.initialize(tmpbits, random);