browser_protocol/security/
mod.rs1use serde::{Serialize, Deserialize};
2
3pub type CertificateId = i64;
6
7#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
11pub enum MixedContentType {
12 #[default]
13 Blockable,
14 OptionallyBlockable,
15 None,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
21pub enum SecurityState {
22 #[default]
23 Unknown,
24 Neutral,
25 Insecure,
26 Secure,
27 Info,
28 InsecureBroken,
29}
30
31#[derive(Debug, Clone, Serialize, Deserialize, Default)]
34#[serde(rename_all = "camelCase")]
35pub struct CertificateSecurityState {
36 pub protocol: String,
39 pub keyExchange: String,
42 #[serde(skip_serializing_if = "Option::is_none")]
45 pub keyExchangeGroup: Option<String>,
46 pub cipher: String,
49 #[serde(skip_serializing_if = "Option::is_none")]
52 pub mac: Option<String>,
53 pub certificate: Vec<String>,
56 pub subjectName: String,
59 pub issuer: String,
62 pub validFrom: crate::network::TimeSinceEpoch,
65 pub validTo: crate::network::TimeSinceEpoch,
68 #[serde(skip_serializing_if = "Option::is_none")]
71 pub certificateNetworkError: Option<String>,
72 pub certificateHasWeakSignature: bool,
75 pub certificateHasSha1Signature: bool,
78 pub modernSSL: bool,
81 pub obsoleteSslProtocol: bool,
84 pub obsoleteSslKeyExchange: bool,
87 pub obsoleteSslCipher: bool,
90 pub obsoleteSslSignature: bool,
93}
94
95
96#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
97pub enum SafetyTipStatus {
98 #[default]
99 BadReputation,
100 Lookalike,
101}
102
103
104#[derive(Debug, Clone, Serialize, Deserialize, Default)]
105#[serde(rename_all = "camelCase")]
106pub struct SafetyTipInfo {
107 pub safetyTipStatus: SafetyTipStatus,
110 #[serde(skip_serializing_if = "Option::is_none")]
113 pub safeUrl: Option<String>,
114}
115
116#[derive(Debug, Clone, Serialize, Deserialize, Default)]
119#[serde(rename_all = "camelCase")]
120pub struct VisibleSecurityState {
121 pub securityState: SecurityState,
124 #[serde(skip_serializing_if = "Option::is_none")]
127 pub certificateSecurityState: Option<CertificateSecurityState>,
128 #[serde(skip_serializing_if = "Option::is_none")]
131 pub safetyTipInfo: Option<SafetyTipInfo>,
132 pub securityStateIssueIds: Vec<String>,
135}
136
137#[derive(Debug, Clone, Serialize, Deserialize, Default)]
140#[serde(rename_all = "camelCase")]
141pub struct SecurityStateExplanation {
142 pub securityState: SecurityState,
145 pub title: String,
148 pub summary: String,
151 pub description: String,
154 pub mixedContentType: MixedContentType,
157 pub certificate: Vec<String>,
160 #[serde(skip_serializing_if = "Option::is_none")]
163 pub recommendations: Option<Vec<String>>,
164}
165
166#[derive(Debug, Clone, Serialize, Deserialize, Default)]
169#[serde(rename_all = "camelCase")]
170pub struct InsecureContentStatus {
171 pub ranMixedContent: bool,
174 pub displayedMixedContent: bool,
177 pub containedMixedForm: bool,
180 pub ranContentWithCertErrors: bool,
183 pub displayedContentWithCertErrors: bool,
186 pub ranInsecureContentStyle: SecurityState,
189 pub displayedInsecureContentStyle: SecurityState,
192}
193
194#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
198pub enum CertificateErrorAction {
199 #[default]
200 Continue,
201 Cancel,
202}
203
204#[derive(Debug, Clone, Serialize, Deserialize, Default)]
207#[serde(rename_all = "camelCase")]
208pub struct SetIgnoreCertificateErrorsParams {
209 pub ignore: bool,
212}
213
214#[derive(Debug, Clone, Serialize, Deserialize, Default)]
217#[serde(rename_all = "camelCase")]
218pub struct HandleCertificateErrorParams {
219 pub eventId: u64,
222 pub action: CertificateErrorAction,
225}
226
227#[derive(Debug, Clone, Serialize, Deserialize, Default)]
231#[serde(rename_all = "camelCase")]
232pub struct SetOverrideCertificateErrorsParams {
233 #[serde(rename = "override")]
236 pub override_: bool,
237}