package de.persosim.simulator.protocols.ca; import java.security.PublicKey; import de.persosim.simulator.secstatus.AbstractSecMechanism; import de.persosim.simulator.secstatus.SecMechanism; import de.persosim.simulator.secstatus.SecurityEvent; import de.persosim.simulator.utils.Serialized; import de.persosim.simulator.utils.Serializer; /** * This {@link SecMechanism} is used to communicate all useful information * collected while executing chip authentication. * * @author slutters * */ public class ChipAuthenticationMechanism extends AbstractSecMechanism { CaOid caOid; int keyReference; Serialized<PublicKey> uncompressedTerminalEphemeralPublicKey; public ChipAuthenticationMechanism(CaOid caOid, int keyReference, PublicKey uncompressedPublicKey) { this.caOid = caOid; this.keyReference = keyReference; this.uncompressedTerminalEphemeralPublicKey = Serializer.serialize(uncompressedPublicKey); } public CaOid getCaOid() { return caOid; } public int getKeyReference() { return keyReference; } public PublicKey getUncompressedTerminalEphemeralPublicKey() { return Serializer.deserialize(uncompressedTerminalEphemeralPublicKey); } @Override public boolean needsDeletionInCaseOf(SecurityEvent event) { return true; } }