/**
* 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.attacks.config;
import com.beust.jcommander.Parameter;
import de.rub.nds.tlsattacker.tls.config.ClientCommandConfig;
import de.rub.nds.tlsattacker.tls.config.converters.BigIntegerConverter;
import de.rub.nds.tlsattacker.tls.constants.CipherSuite;
import de.rub.nds.tlsattacker.tls.constants.NamedCurve;
import de.rub.nds.tlsattacker.tls.workflow.WorkflowTraceType;
import java.math.BigInteger;
/**
*
* @author Juraj Somorovsky <juraj.somorovsky@rub.de>
*/
public class InvalidCurveAttackCommandConfig extends ClientCommandConfig {
public static final String ATTACK_COMMAND = "invalid_curve";
@Parameter(names = "-premaster_secret", description = "Premaster Secret String (use 0x at the beginning for a hex value)", converter = BigIntegerConverter.class)
BigInteger premasterSecret;
@Parameter(names = "-public_point_base_x", description = "Public key point coordinate X sent to the server (use 0x at the beginning for a hex value)", converter = BigIntegerConverter.class)
BigInteger publicPointBaseX;
@Parameter(names = "-public_point_base_y", description = "Public key point coordinate Y sent to the server (use 0x at the beginning for a hex value)", converter = BigIntegerConverter.class)
BigInteger publicPointBaseY;
public InvalidCurveAttackCommandConfig() {
cipherSuites.clear();
cipherSuites.add(CipherSuite.TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA);
cipherSuites.add(CipherSuite.TLS_ECDH_RSA_WITH_AES_128_CBC_SHA);
namedCurves.clear();
namedCurves.add(NamedCurve.SECP256R1);
workflowTraceType = WorkflowTraceType.HANDSHAKE;
}
public BigInteger getPremasterSecret() {
return premasterSecret;
}
public void setPremasterSecret(BigInteger premasterSecret) {
this.premasterSecret = premasterSecret;
}
public BigInteger getPublicPointBaseX() {
return publicPointBaseX;
}
public void setPublicPointBaseX(BigInteger publicPointBaseX) {
this.publicPointBaseX = publicPointBaseX;
}
public BigInteger getPublicPointBaseY() {
return publicPointBaseY;
}
public void setPublicPointBaseY(BigInteger publicPointBaseY) {
this.publicPointBaseY = publicPointBaseY;
}
}