/**
* 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.modifiablevariable.integer;
import de.rub.nds.tlsattacker.modifiablevariable.ModifiableVariable;
import de.rub.nds.tlsattacker.modifiablevariable.VariableModification;
import de.rub.nds.tlsattacker.util.ArrayConverter;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
/**
*
* @author Juraj Somorovsky - juraj.somorovsky@rub.de
*/
@XmlRootElement
@XmlSeeAlso({ IntegerAddModification.class, IntegerExplicitValueModification.class, IntegerSubtractModification.class,
IntegerXorModification.class })
@XmlType(propOrder = { "originalValue", "modification", "assertEquals" })
public class ModifiableInteger extends ModifiableVariable<Integer> implements Serializable {
@Override
protected void createRandomModification() {
VariableModification<Integer> vm = IntegerModificationFactory.createRandomModification();
setModification(vm);
}
public Integer getOriginalValue() {
return originalValue;
}
public void setOriginalValue(Integer originalValue) {
this.originalValue = originalValue;
}
public Integer getAssertEquals() {
return assertEquals;
}
public void setAssertEquals(Integer assertEquals) {
this.assertEquals = assertEquals;
}
@Override
public boolean isOriginalValueModified() {
return originalValue != null && originalValue.compareTo(getValue()) != 0;
}
public byte[] getByteArray(int size) {
return ArrayConverter.intToBytes(getValue(), size);
}
@Override
public boolean validateAssertions() {
boolean valid = true;
if (assertEquals != null) {
if (assertEquals.compareTo(getValue()) != 0) {
valid = false;
}
}
return valid;
}
}