package de.persosim.simulator.protocols.ta; import java.util.Arrays; import de.persosim.simulator.protocols.Oid; import de.persosim.simulator.tlv.ConstructedTlvDataObject; import de.persosim.simulator.tlv.PrimitiveTlvDataObject; import de.persosim.simulator.tlv.TlvConstants; /** * This object stores the information used in the verify command and transmitted * while executing terminal authentication. Instances of this class are immutable. * * @author mboonk * */ public class AuthenticatedAuxiliaryData { private Oid objectIdentifier; private byte[] discretionaryData; public AuthenticatedAuxiliaryData(Oid objectIdentifier, byte[] discretionaryData) { super(); this.objectIdentifier = objectIdentifier; this.discretionaryData = Arrays.copyOf(discretionaryData, discretionaryData.length); } public Oid getObjectIdentifier() { return objectIdentifier; } public byte[] getDiscretionaryData() { return Arrays.copyOf(discretionaryData, discretionaryData.length); } public ConstructedTlvDataObject getEncoded() { ConstructedTlvDataObject result = new ConstructedTlvDataObject(TlvConstants.TAG_73); PrimitiveTlvDataObject oid = new PrimitiveTlvDataObject(TlvConstants.TAG_06, objectIdentifier.toByteArray()); PrimitiveTlvDataObject dd = new PrimitiveTlvDataObject(TlvConstants.TAG_53, Arrays.copyOf(discretionaryData, discretionaryData.length)); result.addTlvDataObject(oid); result.addTlvDataObject(dd); return result; } }