comparison src/ch/ethz/ssh2/channel/AuthAgentForwardThread.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 071eccdff8ea
children
comparison
equal deleted inserted replaced
343:df13118e8e79 344:b40bc65fa09a
24 import java.security.KeyFactory; 24 import java.security.KeyFactory;
25 import java.security.KeyPair; 25 import java.security.KeyPair;
26 import java.security.NoSuchAlgorithmException; 26 import java.security.NoSuchAlgorithmException;
27 import java.security.PrivateKey; 27 import java.security.PrivateKey;
28 import java.security.PublicKey; 28 import java.security.PublicKey;
29 import java.security.SecureRandom;
30 import java.security.interfaces.DSAPrivateKey; 29 import java.security.interfaces.DSAPrivateKey;
31 import java.security.interfaces.ECPrivateKey; 30 import java.security.interfaces.ECPrivateKey;
32 import java.security.interfaces.RSAPrivateKey; 31 import java.security.interfaces.RSAPrivateKey;
33 import java.security.spec.DSAPrivateKeySpec; 32 import java.security.spec.DSAPrivateKeySpec;
34 import java.security.spec.DSAPublicKeySpec; 33 import java.security.spec.DSAPublicKeySpec;
42 import java.security.spec.RSAPublicKeySpec; 41 import java.security.spec.RSAPublicKeySpec;
43 import java.util.Map; 42 import java.util.Map;
44 import java.util.Map.Entry; 43 import java.util.Map.Entry;
45 44
46 import ch.ethz.ssh2.AuthAgentCallback; 45 import ch.ethz.ssh2.AuthAgentCallback;
46 import ch.ethz.ssh2.crypto.SecureRandomFix;
47 import ch.ethz.ssh2.log.Logger; 47 import ch.ethz.ssh2.log.Logger;
48 import ch.ethz.ssh2.packets.TypesReader; 48 import ch.ethz.ssh2.packets.TypesReader;
49 import ch.ethz.ssh2.packets.TypesWriter; 49 import ch.ethz.ssh2.packets.TypesWriter;
50 import ch.ethz.ssh2.signature.DSASHA1Verify; 50 import ch.ethz.ssh2.signature.DSASHA1Verify;
51 import ch.ethz.ssh2.signature.ECDSASHA2Verify; 51 import ch.ethz.ssh2.signature.ECDSASHA2Verify;
457 (RSAPrivateKey) privKey); 457 (RSAPrivateKey) privKey);
458 response = RSASHA1Verify.encodeSSHRSASignature(signature); 458 response = RSASHA1Verify.encodeSSHRSASignature(signature);
459 } 459 }
460 else if (privKey instanceof DSAPrivateKey) { 460 else if (privKey instanceof DSAPrivateKey) {
461 byte[] signature = DSASHA1Verify.generateSignature(challenge, 461 byte[] signature = DSASHA1Verify.generateSignature(challenge,
462 (DSAPrivateKey) privKey, new SecureRandom()); 462 (DSAPrivateKey) privKey, new SecureRandomFix());
463 response = DSASHA1Verify.encodeSSHDSASignature(signature); 463 response = DSASHA1Verify.encodeSSHDSASignature(signature);
464 } 464 }
465 else if (privKey instanceof ECPrivateKey) { 465 else if (privKey instanceof ECPrivateKey) {
466 ECPrivateKey pk = (ECPrivateKey) privKey; 466 ECPrivateKey pk = (ECPrivateKey) privKey;
467 byte[] signature = ECDSASHA2Verify.generateSignature(challenge, pk); 467 byte[] signature = ECDSASHA2Verify.generateSignature(challenge, pk);