mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-14 03:39:05 +01:00
45 lines
1.5 KiB
Java
45 lines
1.5 KiB
Java
package org.briarproject.crypto;
|
|
|
|
import org.briarproject.BriarTestCase;
|
|
import org.briarproject.api.crypto.KeyPair;
|
|
import org.briarproject.api.crypto.PrivateKey;
|
|
import org.briarproject.api.crypto.PublicKey;
|
|
import org.junit.Test;
|
|
import org.spongycastle.crypto.AsymmetricCipherKeyPair;
|
|
import org.spongycastle.crypto.CryptoException;
|
|
import org.spongycastle.crypto.params.ECPrivateKeyParameters;
|
|
import org.spongycastle.crypto.params.ECPublicKeyParameters;
|
|
|
|
import java.security.SecureRandom;
|
|
|
|
import static org.junit.Assert.assertArrayEquals;
|
|
|
|
public class MessageEncrypterTest extends BriarTestCase {
|
|
|
|
private final SecureRandom random = new SecureRandom();
|
|
|
|
@Test
|
|
public void testEncryptionAndDecryption() throws Exception {
|
|
MessageEncrypter m = new MessageEncrypter(random);
|
|
KeyPair kp = m.generateKeyPair();
|
|
PublicKey pub = kp.getPublic();
|
|
PrivateKey priv = kp.getPrivate();
|
|
byte[] plaintext = new byte[123];
|
|
random.nextBytes(plaintext);
|
|
byte[] ciphertext = m.encrypt(pub, plaintext);
|
|
byte[] decrypted = m.decrypt(priv, ciphertext);
|
|
assertArrayEquals(plaintext, decrypted);
|
|
}
|
|
|
|
@Test(expected = CryptoException.class)
|
|
public void testDecryptionFailsWithAlteredCiphertext() throws Exception {
|
|
MessageEncrypter m = new MessageEncrypter(random);
|
|
KeyPair kp = m.generateKeyPair();
|
|
PublicKey pub = kp.getPublic();
|
|
PrivateKey priv = kp.getPrivate();
|
|
byte[] ciphertext = m.encrypt(pub, new byte[123]);
|
|
ciphertext[random.nextInt(ciphertext.length)] ^= 0xFF;
|
|
m.decrypt(priv, ciphertext);
|
|
}
|
|
}
|