de.rub.nds.tlsattacker.attacks.pkcs1.BleichenbacherVulnerabilityMap Maven / Gradle / Ivy
/**
* TLS-Attacker - A Modular Penetration Testing Framework for TLS
*
* Copyright 2014-2021 Ruhr University Bochum, Paderborn University, Hackmanit GmbH
*
* Licensed under Apache License, Version 2.0
* http://www.apache.org/licenses/LICENSE-2.0.txt
*/
package de.rub.nds.tlsattacker.attacks.pkcs1;
import de.rub.nds.tlsattacker.attacks.padding.VectorResponse;
import de.rub.nds.tlsattacker.attacks.util.response.EqualityError;
import de.rub.nds.tlsattacker.attacks.util.response.FingerPrintChecker;
import java.util.List;
/**
*
*
*/
public class BleichenbacherVulnerabilityMap {
private final List bleichenbacherVectorMap;
private final EqualityError error;
/**
*
* @param bleichenbacherVectorMap
* @param error
*/
public BleichenbacherVulnerabilityMap(List bleichenbacherVectorMap, EqualityError error) {
this.bleichenbacherVectorMap = bleichenbacherVectorMap;
this.error = error;
}
/**
*
* @param otherMap
* @return
*/
public boolean looksIdentical(BleichenbacherVulnerabilityMap otherMap) {
if (otherMap.error != this.error) {
return false;
}
for (VectorResponse otherPair : otherMap.bleichenbacherVectorMap) {
for (VectorResponse ourPair : bleichenbacherVectorMap) {
if (otherPair.getVector().getName().equals(this)) {
// ok we found the right pairs
if (FingerPrintChecker.checkEquality(ourPair.getFingerprint(), otherPair.getFingerprint())
!= EqualityError.NONE) {
return false;
} else {
break;
}
}
}
}
return true;
}
/**
*
* @return
*/
public List getBleichenbacherVectorMap() {
return bleichenbacherVectorMap;
}
/**
*
* @return
*/
public EqualityError getError() {
return error;
}
}