Switched to 256-bit ECDSA. Modified some tests because two signatures

over the same data are not necessarily identical. Key generation is
fast again - should I be worried? ;-)
This commit is contained in:
akwizgran
2011-07-25 10:49:41 +01:00
parent fb95565880
commit b1f27757df
3 changed files with 11 additions and 11 deletions

View File

@@ -13,12 +13,13 @@ import net.sf.briar.api.crypto.KeyParser;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
public class CryptoComponentImpl implements CryptoComponent {
class CryptoComponentImpl implements CryptoComponent {
private static final String PROVIDER = "BC";
private static final String DIGEST_ALGO = "SHA-256";
private static final String KEY_PAIR_ALGO = "RSA";
private static final String SIGNATURE_ALGO = "SHA256withRSA";
private static final String KEY_PAIR_ALGO = "ECDSA";
private static final int KEY_PAIR_KEYSIZE = 256;
private static final String SIGNATURE_ALGO = "ECDSA";
private final KeyParser keyParser;
private final KeyPairGenerator keyPairGenerator;
@@ -29,6 +30,7 @@ public class CryptoComponentImpl implements CryptoComponent {
keyParser = new KeyParserImpl(KEY_PAIR_ALGO, PROVIDER);
keyPairGenerator = KeyPairGenerator.getInstance(KEY_PAIR_ALGO,
PROVIDER);
keyPairGenerator.initialize(KEY_PAIR_KEYSIZE);
} catch(NoSuchAlgorithmException impossible) {
throw new RuntimeException(impossible);
} catch(NoSuchProviderException impossible) {

View File

@@ -37,14 +37,13 @@ public class ConsumersTest extends TestCase {
signature.initSign(keyPair.getPrivate());
signature.update(data);
byte[] sig = signature.sign();
// Check that feeding a SigningConsumer generates the same signature
signature.initSign(keyPair.getPrivate());
// Check that a SigningConsumer fed with the same data verifies the sig
signature.initVerify(keyPair.getPublic());
SigningConsumer sc = new SigningConsumer(signature);
sc.write(data[0]);
sc.write(data, 1, data.length - 2);
sc.write(data[data.length - 1]);
byte[] sig1 = signature.sign();
assertTrue(Arrays.equals(sig, sig1));
assertTrue(signature.verify(sig));
}
@Test

View File

@@ -54,11 +54,10 @@ public class SigningDigestingOutputStreamTest extends TestCase {
byte[] digest = messageDigest.digest();
// Check that the output matches the input
assertTrue(Arrays.equals(input, out.toByteArray()));
// Check that the signature matches a signature over the first 256 bytes
signature.initSign(keyPair.getPrivate());
// Verify the signature over the first 256 bytes
signature.initVerify(keyPair.getPublic());
signature.update(input, 0, 256);
byte[] directSig = signature.sign();
assertTrue(Arrays.equals(directSig, sig));
assertTrue(signature.verify(sig));
// Check that the digest matches a digest over all but the last 256
// bytes
messageDigest.reset();