/**
* 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.modifiablevariable.integer.ModifiableInteger;
import de.rub.nds.tlsattacker.tls.constants.ConnectionEnd;
import de.rub.nds.tlsattacker.tls.constants.HandshakeMessageType;
/**
*
* @author Juraj Somorovsky <juraj.somorovsky@rub.de>
* @author Philip Riese <philip.riese@rub.de>
*/
public class CertificateVerifyMessage extends HandshakeMessage {
/**
* selected Signature and Hashalgorithm
*/
@ModifiableVariableProperty(type = ModifiableVariableProperty.Type.TLS_CONSTANT)
ModifiableByteArray signatureHashAlgorithm;
/**
* signature length
*/
@ModifiableVariableProperty(type = ModifiableVariableProperty.Type.LENGTH)
ModifiableInteger signatureLength;
/**
* signature
*/
@ModifiableVariableProperty(type = ModifiableVariableProperty.Type.SIGNATURE)
ModifiableByteArray signature;
public CertificateVerifyMessage() {
super(HandshakeMessageType.CERTIFICATE_VERIFY);
this.messageIssuer = ConnectionEnd.CLIENT;
}
public CertificateVerifyMessage(ConnectionEnd messageIssuer) {
super(HandshakeMessageType.CERTIFICATE_VERIFY);
this.messageIssuer = messageIssuer;
}
public ModifiableByteArray getSignatureHashAlgorithm() {
return signatureHashAlgorithm;
}
public void setSignatureHashAlgorithm(ModifiableByteArray signatureHashAlgorithm) {
this.signatureHashAlgorithm = signatureHashAlgorithm;
}
public void setSignatureHashAlgorithm(byte[] signatureHashAlgorithm) {
this.signatureHashAlgorithm = ModifiableVariableFactory.safelySetValue(this.signatureHashAlgorithm,
signatureHashAlgorithm);
}
public ModifiableInteger getSignatureLength() {
return signatureLength;
}
public void setSignatureLength(ModifiableInteger signatureLength) {
this.signatureLength = signatureLength;
}
public void setSignatureLength(int length) {
this.signatureLength = ModifiableVariableFactory.safelySetValue(this.signatureLength, length);
}
public ModifiableByteArray getSignature() {
return signature;
}
public void setSignature(ModifiableByteArray signature) {
this.signature = signature;
}
public void setSignature(byte[] signature) {
this.signature = ModifiableVariableFactory.safelySetValue(this.signature, signature);
}
}