/** * 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.constants.CipherSuite; import java.util.LinkedList; /** * * @author Juraj Somorovsky <juraj.somorovsky@rub.de> */ public class Lucky13CommandConfig extends ClientCommandConfig { public static final String ATTACK_COMMAND = "lucky13"; @Parameter(names = "-block_size", description = "Block size of the to be used block cipher") Integer blockSize = 16; @Parameter(names = "-measurements", description = "Number of timing measurement iterations") Integer measurements = 100; @Parameter(names = "-mona_file", description = "File output for Mona timing lib. If set, the output is generated and written.") String monaFile; @Parameter(names = "-paddings", description = "Paddings to check for differences, column separated.") String paddings = "0,255"; @Parameter(names = "-blocks", description = "Number of blocks to encrypt (default is set to the value from the Lucky 13 paper, Section 3)") Integer blocks = 18; public Lucky13CommandConfig() { cipherSuites = new LinkedList<>(); cipherSuites.add(CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA); cipherSuites.add(CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA); } public Integer getBlockSize() { return blockSize; } public void setBlockSize(Integer blockSize) { this.blockSize = blockSize; } public Integer getMeasurements() { return measurements; } public void setMeasurements(Integer measurements) { this.measurements = measurements; } public String getMonaFile() { return monaFile; } public void setMonaFile(String monaFile) { this.monaFile = monaFile; } public String getPaddings() { return paddings; } public void setPaddings(String paddings) { this.paddings = paddings; } public Integer getBlocks() { return blocks; } public void setBlocks(Integer blocks) { this.blocks = blocks; } }