Skip to content

Commit 1ea281e

Browse files
committed
feat: define secure UI capabilities
1 parent 5801787 commit 1ea281e

2 files changed

Lines changed: 29 additions & 12 deletions

File tree

Cargo.lock

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/capability/mod.rs

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ pub enum UserCapability {
193193
NetHttpRequest,
194194
WindowCreate,
195195
WindowOverlay,
196+
WindowSecureOverlay,
196197
WindowDecorate,
197198
WindowCapture,
198199
DisplayRead,
@@ -231,6 +232,7 @@ pub enum UserCapability {
231232
KernelModuleLoad,
232233
AccountSelfRead,
233234
AccountSelfModify,
235+
AccountAuthenticate,
234236
AccountOtherRead,
235237
AccountOtherModify,
236238
SettingsRead,
@@ -273,6 +275,7 @@ impl UserCapability {
273275
NetHttpRequest => "net.http.request",
274276
WindowCreate => "window.create",
275277
WindowOverlay => "window.overlay",
278+
WindowSecureOverlay => "window.secure-overlay",
276279
WindowDecorate => "window.decorate",
277280
WindowCapture => "window.capture",
278281
DisplayRead => "display.read",
@@ -311,6 +314,7 @@ impl UserCapability {
311314
KernelModuleLoad => "kernel.module.load",
312315
AccountSelfRead => "account.self.read",
313316
AccountSelfModify => "account.self.modify",
317+
AccountAuthenticate => "account.authenticate",
314318
AccountOtherRead => "account.other.read",
315319
AccountOtherModify => "account.other.modify",
316320
SettingsRead => "settings.read",
@@ -353,6 +357,7 @@ impl UserCapability {
353357
"net.http.request" => Some(NetHttpRequest),
354358
"window.create" => Some(WindowCreate),
355359
"window.overlay" => Some(WindowOverlay),
360+
"window.secure-overlay" => Some(WindowSecureOverlay),
356361
"window.decorate" => Some(WindowDecorate),
357362
"window.capture" => Some(WindowCapture),
358363
"display.read" => Some(DisplayRead),
@@ -391,6 +396,7 @@ impl UserCapability {
391396
"kernel.module.load" => Some(KernelModuleLoad),
392397
"account.self.read" => Some(AccountSelfRead),
393398
"account.self.modify" => Some(AccountSelfModify),
399+
"account.authenticate" => Some(AccountAuthenticate),
394400
"account.other.read" => Some(AccountOtherRead),
395401
"account.other.modify" => Some(AccountOtherModify),
396402
"settings.read" => Some(SettingsRead),
@@ -461,6 +467,7 @@ pub enum Capability {
461467

462468
WindowCreate,
463469
WindowOverlay,
470+
WindowSecureOverlay,
464471
WindowDecorate,
465472
WindowCapture,
466473

@@ -524,6 +531,7 @@ pub enum Capability {
524531

525532
AccountSelfRead,
526533
AccountSelfModify,
534+
AccountAuthenticate,
527535
AccountOtherRead,
528536
AccountOtherModify,
529537

@@ -563,13 +571,14 @@ impl Capability {
563571
| PowerShutdown | PowerReboot | PowerSuspend | SystemTimeSet | PackageInstall
564572
| PackageRemove | PackageUpdate | ServiceRegister | ServiceControl | VmCreate
565573
| VmControl | DeviceGpu | DeviceAudio | DeviceInput | DeviceStorage | DeviceNet
566-
| AccountOtherRead | AccountOtherModify | SettingsWrite => CapabilityClass::Privileged,
567-
ProcessSpawn | ProcessInspect | ProcessKill | IpcClient | IpcServer | DmaAllocate
568-
| MemoryPhysMap | MemoryPhysTranslate | KernelModuleLoad | KernelDebug
569-
| CapabilitiesManage | SystemRandomRead | Unsandboxed | DeveloperDebug
570-
| DeveloperProfile | DeveloperTracing | SignatureRead | SignatureWrite => {
571-
CapabilityClass::SystemOnly
574+
| AccountAuthenticate | AccountOtherRead | AccountOtherModify | SettingsWrite => {
575+
CapabilityClass::Privileged
572576
}
577+
ProcessSpawn | ProcessInspect | ProcessKill | IpcClient | IpcServer
578+
| WindowSecureOverlay | DmaAllocate | MemoryPhysMap | MemoryPhysTranslate
579+
| KernelModuleLoad | KernelDebug | CapabilitiesManage | SystemRandomRead
580+
| Unsandboxed | DeveloperDebug | DeveloperProfile | DeveloperTracing
581+
| SignatureRead | SignatureWrite => CapabilityClass::SystemOnly,
573582
}
574583
}
575584

@@ -613,6 +622,7 @@ impl Capability {
613622

614623
WindowCreate => "window.create",
615624
WindowOverlay => "window.overlay",
625+
WindowSecureOverlay => "window.secure-overlay",
616626
WindowDecorate => "window.decorate",
617627
WindowCapture => "window.capture",
618628

@@ -676,6 +686,7 @@ impl Capability {
676686

677687
AccountSelfRead => "account.self.read",
678688
AccountSelfModify => "account.self.modify",
689+
AccountAuthenticate => "account.authenticate",
679690
AccountOtherRead => "account.other.read",
680691
AccountOtherModify => "account.other.modify",
681692

@@ -734,6 +745,7 @@ impl Capability {
734745

735746
"window.create" => WindowCreate,
736747
"window.overlay" => WindowOverlay,
748+
"window.secure-overlay" => WindowSecureOverlay,
737749
"window.decorate" => WindowDecorate,
738750
"window.capture" => WindowCapture,
739751

@@ -797,6 +809,7 @@ impl Capability {
797809

798810
"account.self.read" => AccountSelfRead,
799811
"account.self.modify" => AccountSelfModify,
812+
"account.authenticate" => AccountAuthenticate,
800813
"account.other.read" => AccountOtherRead,
801814
"account.other.modify" => AccountOtherModify,
802815

@@ -875,6 +888,7 @@ impl Capability {
875888
NetHttpRequest => UserCapability::NetHttpRequest,
876889
WindowCreate => UserCapability::WindowCreate,
877890
WindowOverlay => UserCapability::WindowOverlay,
891+
WindowSecureOverlay => UserCapability::WindowSecureOverlay,
878892
WindowDecorate => UserCapability::WindowDecorate,
879893
WindowCapture => UserCapability::WindowCapture,
880894
DisplayRead => UserCapability::DisplayRead,
@@ -914,6 +928,7 @@ impl Capability {
914928
KernelModuleLoad => UserCapability::KernelModuleLoad,
915929
AccountSelfRead => UserCapability::AccountSelfRead,
916930
AccountSelfModify => UserCapability::AccountSelfModify,
931+
AccountAuthenticate => UserCapability::AccountAuthenticate,
917932
AccountOtherRead => UserCapability::AccountOtherRead,
918933
AccountOtherModify => UserCapability::AccountOtherModify,
919934
SettingsRead => UserCapability::SettingsRead,
@@ -987,6 +1002,7 @@ impl Capability {
9871002
ProcessKill,
9881003
WindowCreate,
9891004
WindowOverlay,
1005+
WindowSecureOverlay,
9901006
WindowDecorate,
9911007
WindowCapture,
9921008
DisplayRead,
@@ -1034,6 +1050,7 @@ impl Capability {
10341050
DeviceNet,
10351051
AccountSelfRead,
10361052
AccountSelfModify,
1053+
AccountAuthenticate,
10371054
AccountOtherRead,
10381055
AccountOtherModify,
10391056
SettingsRead,

0 commit comments

Comments
 (0)