use serde::{Serialize, Deserialize};
use serde_json::Value as JsonValue;
pub type CertificateId = i64;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum MixedContentType {
#[default]
Blockable,
OptionallyBlockable,
None,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum SecurityState {
#[default]
Unknown,
Neutral,
Insecure,
Secure,
Info,
InsecureBroken,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CertificateSecurityState {
pub protocol: String,
pub keyExchange: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub keyExchangeGroup: Option<String>,
pub cipher: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub mac: Option<String>,
pub certificate: Vec<String>,
pub subjectName: String,
pub issuer: String,
pub validFrom: crate::network::TimeSinceEpoch,
pub validTo: crate::network::TimeSinceEpoch,
#[serde(skip_serializing_if = "Option::is_none")]
pub certificateNetworkError: Option<String>,
pub certificateHasWeakSignature: bool,
pub certificateHasSha1Signature: bool,
pub modernSSL: bool,
pub obsoleteSslProtocol: bool,
pub obsoleteSslKeyExchange: bool,
pub obsoleteSslCipher: bool,
pub obsoleteSslSignature: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum SafetyTipStatus {
#[default]
BadReputation,
Lookalike,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SafetyTipInfo {
pub safetyTipStatus: SafetyTipStatus,
#[serde(skip_serializing_if = "Option::is_none")]
pub safeUrl: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct VisibleSecurityState {
pub securityState: SecurityState,
#[serde(skip_serializing_if = "Option::is_none")]
pub certificateSecurityState: Option<CertificateSecurityState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub safetyTipInfo: Option<SafetyTipInfo>,
pub securityStateIssueIds: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SecurityStateExplanation {
pub securityState: SecurityState,
pub title: String,
pub summary: String,
pub description: String,
pub mixedContentType: MixedContentType,
pub certificate: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub recommendations: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct InsecureContentStatus {
pub ranMixedContent: bool,
pub displayedMixedContent: bool,
pub containedMixedForm: bool,
pub ranContentWithCertErrors: bool,
pub displayedContentWithCertErrors: bool,
pub ranInsecureContentStyle: SecurityState,
pub displayedInsecureContentStyle: SecurityState,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum CertificateErrorAction {
#[default]
Continue,
Cancel,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct DisableParams {}
impl DisableParams { pub const METHOD: &'static str = "Security.disable"; }
impl crate::CdpCommand for DisableParams {
const METHOD: &'static str = "Security.disable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct EnableParams {}
impl EnableParams { pub const METHOD: &'static str = "Security.enable"; }
impl crate::CdpCommand for EnableParams {
const METHOD: &'static str = "Security.enable";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetIgnoreCertificateErrorsParams {
pub ignore: bool,
}
impl SetIgnoreCertificateErrorsParams { pub const METHOD: &'static str = "Security.setIgnoreCertificateErrors"; }
impl crate::CdpCommand for SetIgnoreCertificateErrorsParams {
const METHOD: &'static str = "Security.setIgnoreCertificateErrors";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct HandleCertificateErrorParams {
pub eventId: u64,
pub action: CertificateErrorAction,
}
impl HandleCertificateErrorParams { pub const METHOD: &'static str = "Security.handleCertificateError"; }
impl crate::CdpCommand for HandleCertificateErrorParams {
const METHOD: &'static str = "Security.handleCertificateError";
type Response = crate::EmptyReturns;
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetOverrideCertificateErrorsParams {
#[serde(rename = "override")]
pub override_: bool,
}
impl SetOverrideCertificateErrorsParams { pub const METHOD: &'static str = "Security.setOverrideCertificateErrors"; }
impl crate::CdpCommand for SetOverrideCertificateErrorsParams {
const METHOD: &'static str = "Security.setOverrideCertificateErrors";
type Response = crate::EmptyReturns;
}