package de.persosim.simulator.protocols.ca; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotSame; import java.security.KeyPair; import java.security.PublicKey; import org.junit.Test; import de.persosim.simulator.crypto.CryptoUtil; import de.persosim.simulator.test.PersoSimTestCase; import de.persosim.simulator.utils.HexString; public class ChipAuthenticationMechanismTest extends PersoSimTestCase { @Test public void testGetUncompressedTerminalEphemeralPublicKeyImmutability() { byte[] pubKeyBytes = HexString.toByteArray( "047D1EA24146C3ADAC11143E7267B4E3EC572534828DB54904877B8D6EFDC5C13123A9E955890447643735C4F0AB9093FAA0C96DEFA1CE9079DA0B3C43BE6A0255"); byte[] privKeyBytes = HexString.toByteArray("1183F16814B3947D01DAED7F8D236769F5ABD8020FFF53C5E5FE86A8ABAB02D2"); KeyPair keyPair = CryptoUtil.reconstructKeyPair(13, pubKeyBytes, privKeyBytes); ChipAuthenticationMechanism mechanism = new ChipAuthenticationMechanism(CaOid.OID_id_CA_DH_AES_CBC_CMAC_128, 1, keyPair.getPublic()); PublicKey result = mechanism.getUncompressedTerminalEphemeralPublicKey(); assertEquals(keyPair.getPublic(), result); assertNotSame(keyPair.getPublic(), result); } }