/**
* 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.ModifiableVariable;
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.modifiablevariable.singlebyte.ModifiableByte;
import de.rub.nds.tlsattacker.tls.constants.HandshakeMessageType;
/**
*
* @author Juraj Somorovsky <juraj.somorovsky@rub.de>
*/
public class ServerKeyExchangeMessage extends HandshakeMessage {
/**
* hash algorithm
*/
@ModifiableVariableProperty(type = ModifiableVariableProperty.Type.TLS_CONSTANT)
ModifiableByte hashAlgorithm;
/**
* signature algorithm
*/
@ModifiableVariableProperty(type = ModifiableVariableProperty.Type.TLS_CONSTANT)
ModifiableByte signatureAlgorithm;
/**
* signature length
*/
@ModifiableVariableProperty(type = ModifiableVariableProperty.Type.LENGTH)
ModifiableInteger signatureLength;
/**
* signature
*/
@ModifiableVariableProperty(type = ModifiableVariableProperty.Type.SIGNATURE)
ModifiableByteArray signature;
public ServerKeyExchangeMessage(HandshakeMessageType handshakeMessageType) {
super(handshakeMessageType);
}
public ModifiableVariable<Byte> getHashAlgorithm() {
return hashAlgorithm;
}
public void setHashAlgorithm(ModifiableByte hashAlgorithm) {
this.hashAlgorithm = hashAlgorithm;
}
public void setHashAlgorithm(byte algorithm) {
this.hashAlgorithm = ModifiableVariableFactory.safelySetValue(this.hashAlgorithm, algorithm);
}
public ModifiableVariable<Byte> getSignatureAlgorithm() {
return signatureAlgorithm;
}
public void setSignatureAlgorithm(ModifiableByte signatureAlgorithm) {
this.signatureAlgorithm = signatureAlgorithm;
}
public void setSignatureAlgorithm(byte algorithm) {
this.signatureAlgorithm = ModifiableVariableFactory.safelySetValue(this.signatureAlgorithm, algorithm);
}
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);
}
}