browser_protocol/security/
mod.rs1use serde::{Serialize, Deserialize};
2use serde_json::Value as JsonValue;
3
4pub type CertificateId = i64;
7
8#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
12pub enum MixedContentType {
13 #[default]
14 Blockable,
15 OptionallyBlockable,
16 None,
17}
18
19#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
22pub enum SecurityState {
23 #[default]
24 Unknown,
25 Neutral,
26 Insecure,
27 Secure,
28 Info,
29 InsecureBroken,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize, Default)]
35#[serde(rename_all = "camelCase")]
36pub struct CertificateSecurityState {
37 pub protocol: String,
40 pub keyExchange: String,
43 #[serde(skip_serializing_if = "Option::is_none")]
46 pub keyExchangeGroup: Option<String>,
47 pub cipher: String,
50 #[serde(skip_serializing_if = "Option::is_none")]
53 pub mac: Option<String>,
54 pub certificate: Vec<String>,
57 pub subjectName: String,
60 pub issuer: String,
63 pub validFrom: crate::network::TimeSinceEpoch,
66 pub validTo: crate::network::TimeSinceEpoch,
69 #[serde(skip_serializing_if = "Option::is_none")]
72 pub certificateNetworkError: Option<String>,
73 pub certificateHasWeakSignature: bool,
76 pub certificateHasSha1Signature: bool,
79 pub modernSSL: bool,
82 pub obsoleteSslProtocol: bool,
85 pub obsoleteSslKeyExchange: bool,
88 pub obsoleteSslCipher: bool,
91 pub obsoleteSslSignature: bool,
94}
95
96
97#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
98pub enum SafetyTipStatus {
99 #[default]
100 BadReputation,
101 Lookalike,
102}
103
104
105#[derive(Debug, Clone, Serialize, Deserialize, Default)]
106#[serde(rename_all = "camelCase")]
107pub struct SafetyTipInfo {
108 pub safetyTipStatus: SafetyTipStatus,
111 #[serde(skip_serializing_if = "Option::is_none")]
114 pub safeUrl: Option<String>,
115}
116
117#[derive(Debug, Clone, Serialize, Deserialize, Default)]
120#[serde(rename_all = "camelCase")]
121pub struct VisibleSecurityState {
122 pub securityState: SecurityState,
125 #[serde(skip_serializing_if = "Option::is_none")]
128 pub certificateSecurityState: Option<CertificateSecurityState>,
129 #[serde(skip_serializing_if = "Option::is_none")]
132 pub safetyTipInfo: Option<SafetyTipInfo>,
133 pub securityStateIssueIds: Vec<String>,
136}
137
138#[derive(Debug, Clone, Serialize, Deserialize, Default)]
141#[serde(rename_all = "camelCase")]
142pub struct SecurityStateExplanation {
143 pub securityState: SecurityState,
146 pub title: String,
149 pub summary: String,
152 pub description: String,
155 pub mixedContentType: MixedContentType,
158 pub certificate: Vec<String>,
161 #[serde(skip_serializing_if = "Option::is_none")]
164 pub recommendations: Option<Vec<String>>,
165}
166
167#[derive(Debug, Clone, Serialize, Deserialize, Default)]
170#[serde(rename_all = "camelCase")]
171pub struct InsecureContentStatus {
172 pub ranMixedContent: bool,
175 pub displayedMixedContent: bool,
178 pub containedMixedForm: bool,
181 pub ranContentWithCertErrors: bool,
184 pub displayedContentWithCertErrors: bool,
187 pub ranInsecureContentStyle: SecurityState,
190 pub displayedInsecureContentStyle: SecurityState,
193}
194
195#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
199pub enum CertificateErrorAction {
200 #[default]
201 Continue,
202 Cancel,
203}
204
205#[derive(Debug, Clone, Serialize, Deserialize, Default)]
206pub struct DisableParams {}
207
208impl DisableParams { pub const METHOD: &'static str = "Security.disable"; }
209
210impl crate::CdpCommand for DisableParams {
211 const METHOD: &'static str = "Security.disable";
212 type Response = crate::EmptyReturns;
213}
214
215#[derive(Debug, Clone, Serialize, Deserialize, Default)]
216pub struct EnableParams {}
217
218impl EnableParams { pub const METHOD: &'static str = "Security.enable"; }
219
220impl crate::CdpCommand for EnableParams {
221 const METHOD: &'static str = "Security.enable";
222 type Response = crate::EmptyReturns;
223}
224
225#[derive(Debug, Clone, Serialize, Deserialize, Default)]
228#[serde(rename_all = "camelCase")]
229pub struct SetIgnoreCertificateErrorsParams {
230 pub ignore: bool,
233}
234
235impl SetIgnoreCertificateErrorsParams { pub const METHOD: &'static str = "Security.setIgnoreCertificateErrors"; }
236
237impl crate::CdpCommand for SetIgnoreCertificateErrorsParams {
238 const METHOD: &'static str = "Security.setIgnoreCertificateErrors";
239 type Response = crate::EmptyReturns;
240}
241
242#[derive(Debug, Clone, Serialize, Deserialize, Default)]
245#[serde(rename_all = "camelCase")]
246pub struct HandleCertificateErrorParams {
247 pub eventId: u64,
250 pub action: CertificateErrorAction,
253}
254
255impl HandleCertificateErrorParams { pub const METHOD: &'static str = "Security.handleCertificateError"; }
256
257impl crate::CdpCommand for HandleCertificateErrorParams {
258 const METHOD: &'static str = "Security.handleCertificateError";
259 type Response = crate::EmptyReturns;
260}
261
262#[derive(Debug, Clone, Serialize, Deserialize, Default)]
266#[serde(rename_all = "camelCase")]
267pub struct SetOverrideCertificateErrorsParams {
268 #[serde(rename = "override")]
271 pub override_: bool,
272}
273
274impl SetOverrideCertificateErrorsParams { pub const METHOD: &'static str = "Security.setOverrideCertificateErrors"; }
275
276impl crate::CdpCommand for SetOverrideCertificateErrorsParams {
277 const METHOD: &'static str = "Security.setOverrideCertificateErrors";
278 type Response = crate::EmptyReturns;
279}