kry-ctr-spn/src/test/java/ch/fhnw/kry/SPNTest.java

77 lines
1.5 KiB
Java
Raw Normal View History

2022-03-17 12:33:23 +01:00
package ch.fhnw.kry;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class SPNTest {
@Test
void k() {
var spn = new SPN();
final int key = 0xFFFFFFFF;
assertEquals(0xFFFF, spn.k(key, 0));
assertEquals(0xFFFF, spn.k(key, 1));
assertEquals(0xFFFF, spn.k(key, 2));
}
2022-03-17 14:40:35 +01:00
@Test
void substitution() {
var spn = new SPN();
//given
int x = 0xEF45;
int r = 0x051C;
//when
2022-03-17 21:22:57 +01:00
int y = spn.substitution(x, SPN.SBOX_REVERSE);
2022-03-17 14:40:35 +01:00
// then
assertEquals(r, y);
// System.out.print(Integer.toHexString(spn.substitution(x)));
}
2022-03-17 15:03:39 +01:00
@Test
void swapBits() {
var spn = new SPN();
// given
int x = 0xA;
int r = 0xC;
// when
2022-03-17 17:59:32 +01:00
int y = spn.swapBits(x, 13, 14);
int yy = spn.swapBits(x, 14, 13);
int yyy = spn.swapBits(x, 14, 14);
2022-03-17 15:03:39 +01:00
// then
assertEquals(r, y);
assertEquals(r, yy);
2022-03-17 17:59:32 +01:00
assertEquals(x, yyy);
2022-03-17 21:22:57 +01:00
assertEquals(0x100A, spn.swapBits(0x80A, 3, 4));
}
@Test
void permutation() {
var spn = new SPN();
int x = spn.permutation(0xEF45);
assertEquals(0xCFC5, x);
}
@Test
void blockEncryptionDecryption() {
2022-03-17 21:22:57 +01:00
var spn = new SPN();
int x = 0x128F ;
int key = 0x11288C00;
int y = 0xAEB4;
assertEquals(y, spn.encryptBlock(key, x));
assertEquals(x, spn.decryptBlock(key, y));
2022-03-17 15:03:39 +01:00
}
2022-03-17 12:33:23 +01:00
}