All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy