mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
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:
@@ -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) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user