/** * TLS-Attacker - A Modular Penetration Testing Framework for TLS * * Copyright 2014-2016 Ruhr University Bochum / Hackmanit GmbH * * Licensed under Apache License 2.0 * http://www.apache.org/licenses/LICENSE-2.0 */ package de.rub.nds.tlsattacker.tls.protocol.handshake; import de.rub.nds.tlsattacker.modifiablevariable.ModifiableVariableFactory; import de.rub.nds.tlsattacker.modifiablevariable.ModifiableVariableProperty; import de.rub.nds.tlsattacker.modifiablevariable.bytearray.ModifiableByteArray; import de.rub.nds.tlsattacker.tls.constants.ConnectionEnd; import de.rub.nds.tlsattacker.tls.constants.HandshakeMessageType; import de.rub.nds.tlsattacker.util.ArrayConverter; /** * @author Juraj Somorovsky <juraj.somorovsky@rub.de> */ public class FinishedMessage extends HandshakeMessage { @ModifiableVariableProperty(type = ModifiableVariableProperty.Type.HMAC) ModifiableByteArray verifyData; public FinishedMessage() { super(HandshakeMessageType.FINISHED); } public FinishedMessage(ConnectionEnd messageIssuer) { super(HandshakeMessageType.FINISHED); this.messageIssuer = messageIssuer; } public ModifiableByteArray getVerifyData() { return verifyData; } public void setVerifyData(ModifiableByteArray verifyData) { this.verifyData = verifyData; } public void setVerifyData(byte[] value) { this.verifyData = ModifiableVariableFactory.safelySetValue(this.verifyData, value); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("\nFinished message:").append(super.toString()).append("\n Verify Data: ") .append(ArrayConverter.bytesToHexString(verifyData.getValue())); return sb.toString(); } }