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

org.openqa.selenium.devtools.v90.security.model.CertificateSecurityState Maven / Gradle / Ivy

Go to download

Selenium automates browsers. That's it! What you do with that power is entirely up to you.

There is a newer version: 4.0.0-beta-4
Show newest version
package org.openqa.selenium.devtools.v90.security.model;

import org.openqa.selenium.Beta;
import org.openqa.selenium.json.JsonInput;

/**
 * Details about the security state of the page certificate.
 */
@org.openqa.selenium.Beta()
public class CertificateSecurityState {

    private final java.lang.String protocol;

    private final java.lang.String keyExchange;

    private final java.util.Optional keyExchangeGroup;

    private final java.lang.String cipher;

    private final java.util.Optional mac;

    private final java.util.List certificate;

    private final java.lang.String subjectName;

    private final java.lang.String issuer;

    private final org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch validFrom;

    private final org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch validTo;

    private final java.util.Optional certificateNetworkError;

    private final java.lang.Boolean certificateHasWeakSignature;

    private final java.lang.Boolean certificateHasSha1Signature;

    private final java.lang.Boolean modernSSL;

    private final java.lang.Boolean obsoleteSslProtocol;

    private final java.lang.Boolean obsoleteSslKeyExchange;

    private final java.lang.Boolean obsoleteSslCipher;

    private final java.lang.Boolean obsoleteSslSignature;

    public CertificateSecurityState(java.lang.String protocol, java.lang.String keyExchange, java.util.Optional keyExchangeGroup, java.lang.String cipher, java.util.Optional mac, java.util.List certificate, java.lang.String subjectName, java.lang.String issuer, org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch validFrom, org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch validTo, java.util.Optional certificateNetworkError, java.lang.Boolean certificateHasWeakSignature, java.lang.Boolean certificateHasSha1Signature, java.lang.Boolean modernSSL, java.lang.Boolean obsoleteSslProtocol, java.lang.Boolean obsoleteSslKeyExchange, java.lang.Boolean obsoleteSslCipher, java.lang.Boolean obsoleteSslSignature) {
        this.protocol = java.util.Objects.requireNonNull(protocol, "protocol is required");
        this.keyExchange = java.util.Objects.requireNonNull(keyExchange, "keyExchange is required");
        this.keyExchangeGroup = keyExchangeGroup;
        this.cipher = java.util.Objects.requireNonNull(cipher, "cipher is required");
        this.mac = mac;
        this.certificate = java.util.Objects.requireNonNull(certificate, "certificate is required");
        this.subjectName = java.util.Objects.requireNonNull(subjectName, "subjectName is required");
        this.issuer = java.util.Objects.requireNonNull(issuer, "issuer is required");
        this.validFrom = java.util.Objects.requireNonNull(validFrom, "validFrom is required");
        this.validTo = java.util.Objects.requireNonNull(validTo, "validTo is required");
        this.certificateNetworkError = certificateNetworkError;
        this.certificateHasWeakSignature = java.util.Objects.requireNonNull(certificateHasWeakSignature, "certificateHasWeakSignature is required");
        this.certificateHasSha1Signature = java.util.Objects.requireNonNull(certificateHasSha1Signature, "certificateHasSha1Signature is required");
        this.modernSSL = java.util.Objects.requireNonNull(modernSSL, "modernSSL is required");
        this.obsoleteSslProtocol = java.util.Objects.requireNonNull(obsoleteSslProtocol, "obsoleteSslProtocol is required");
        this.obsoleteSslKeyExchange = java.util.Objects.requireNonNull(obsoleteSslKeyExchange, "obsoleteSslKeyExchange is required");
        this.obsoleteSslCipher = java.util.Objects.requireNonNull(obsoleteSslCipher, "obsoleteSslCipher is required");
        this.obsoleteSslSignature = java.util.Objects.requireNonNull(obsoleteSslSignature, "obsoleteSslSignature is required");
    }

    /**
     * Protocol name (e.g. "TLS 1.2" or "QUIC").
     */
    public java.lang.String getProtocol() {
        return protocol;
    }

    /**
     * Key Exchange used by the connection, or the empty string if not applicable.
     */
    public java.lang.String getKeyExchange() {
        return keyExchange;
    }

    /**
     * (EC)DH group used by the connection, if applicable.
     */
    public java.util.Optional getKeyExchangeGroup() {
        return keyExchangeGroup;
    }

    /**
     * Cipher name.
     */
    public java.lang.String getCipher() {
        return cipher;
    }

    /**
     * TLS MAC. Note that AEAD ciphers do not have separate MACs.
     */
    public java.util.Optional getMac() {
        return mac;
    }

    /**
     * Page certificate.
     */
    public java.util.List getCertificate() {
        return certificate;
    }

    /**
     * Certificate subject name.
     */
    public java.lang.String getSubjectName() {
        return subjectName;
    }

    /**
     * Name of the issuing CA.
     */
    public java.lang.String getIssuer() {
        return issuer;
    }

    /**
     * Certificate valid from date.
     */
    public org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch getValidFrom() {
        return validFrom;
    }

    /**
     * Certificate valid to (expiration) date
     */
    public org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch getValidTo() {
        return validTo;
    }

    /**
     * The highest priority network error code, if the certificate has an error.
     */
    public java.util.Optional getCertificateNetworkError() {
        return certificateNetworkError;
    }

    /**
     * True if the certificate uses a weak signature aglorithm.
     */
    public java.lang.Boolean getCertificateHasWeakSignature() {
        return certificateHasWeakSignature;
    }

    /**
     * True if the certificate has a SHA1 signature in the chain.
     */
    public java.lang.Boolean getCertificateHasSha1Signature() {
        return certificateHasSha1Signature;
    }

    /**
     * True if modern SSL
     */
    public java.lang.Boolean getModernSSL() {
        return modernSSL;
    }

    /**
     * True if the connection is using an obsolete SSL protocol.
     */
    public java.lang.Boolean getObsoleteSslProtocol() {
        return obsoleteSslProtocol;
    }

    /**
     * True if the connection is using an obsolete SSL key exchange.
     */
    public java.lang.Boolean getObsoleteSslKeyExchange() {
        return obsoleteSslKeyExchange;
    }

    /**
     * True if the connection is using an obsolete SSL cipher.
     */
    public java.lang.Boolean getObsoleteSslCipher() {
        return obsoleteSslCipher;
    }

    /**
     * True if the connection is using an obsolete SSL signature.
     */
    public java.lang.Boolean getObsoleteSslSignature() {
        return obsoleteSslSignature;
    }

    private static CertificateSecurityState fromJson(JsonInput input) {
        java.lang.String protocol = null;
        java.lang.String keyExchange = null;
        java.util.Optional keyExchangeGroup = java.util.Optional.empty();
        java.lang.String cipher = null;
        java.util.Optional mac = java.util.Optional.empty();
        java.util.List certificate = null;
        java.lang.String subjectName = null;
        java.lang.String issuer = null;
        org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch validFrom = null;
        org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch validTo = null;
        java.util.Optional certificateNetworkError = java.util.Optional.empty();
        java.lang.Boolean certificateHasWeakSignature = false;
        java.lang.Boolean certificateHasSha1Signature = false;
        java.lang.Boolean modernSSL = false;
        java.lang.Boolean obsoleteSslProtocol = false;
        java.lang.Boolean obsoleteSslKeyExchange = false;
        java.lang.Boolean obsoleteSslCipher = false;
        java.lang.Boolean obsoleteSslSignature = false;
        input.beginObject();
        while (input.hasNext()) {
            switch(input.nextName()) {
                case "protocol":
                    protocol = input.nextString();
                    break;
                case "keyExchange":
                    keyExchange = input.nextString();
                    break;
                case "keyExchangeGroup":
                    keyExchangeGroup = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "cipher":
                    cipher = input.nextString();
                    break;
                case "mac":
                    mac = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "certificate":
                    certificate = input.read(new com.google.common.reflect.TypeToken>() {
                    }.getType());
                    break;
                case "subjectName":
                    subjectName = input.nextString();
                    break;
                case "issuer":
                    issuer = input.nextString();
                    break;
                case "validFrom":
                    validFrom = input.read(org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch.class);
                    break;
                case "validTo":
                    validTo = input.read(org.openqa.selenium.devtools.v90.network.model.TimeSinceEpoch.class);
                    break;
                case "certificateNetworkError":
                    certificateNetworkError = java.util.Optional.ofNullable(input.nextString());
                    break;
                case "certificateHasWeakSignature":
                    certificateHasWeakSignature = input.nextBoolean();
                    break;
                case "certificateHasSha1Signature":
                    certificateHasSha1Signature = input.nextBoolean();
                    break;
                case "modernSSL":
                    modernSSL = input.nextBoolean();
                    break;
                case "obsoleteSslProtocol":
                    obsoleteSslProtocol = input.nextBoolean();
                    break;
                case "obsoleteSslKeyExchange":
                    obsoleteSslKeyExchange = input.nextBoolean();
                    break;
                case "obsoleteSslCipher":
                    obsoleteSslCipher = input.nextBoolean();
                    break;
                case "obsoleteSslSignature":
                    obsoleteSslSignature = input.nextBoolean();
                    break;
                default:
                    input.skipValue();
                    break;
            }
        }
        input.endObject();
        return new CertificateSecurityState(protocol, keyExchange, keyExchangeGroup, cipher, mac, certificate, subjectName, issuer, validFrom, validTo, certificateNetworkError, certificateHasWeakSignature, certificateHasSha1Signature, modernSSL, obsoleteSslProtocol, obsoleteSslKeyExchange, obsoleteSslCipher, obsoleteSslSignature);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy