Add UML files for class and sequence diagrams
[platform/core/security/ode.git] / doc / diagram / sequence / ode-internal-encrypt-ext4.uml
1 @startuml
2 hide footbox
3 actor ODEDaemon
4 activate ODEDaemon
5
6 ODEDaemon -> Server : construct
7 activate Server
8
9 Server -> Service : construct(/tmp/.ode.sock)
10 activate Service
11 Service -> Mainloop : construct
12 activate Mainloop
13 Mainloop -> ServerConnection : construct
14 activate ServerConnection
15 Server -> InternalEncryption : construct
16 activate InternalEncryption
17 InternalEncryption -> Service : setMethodHandler
18 InternalEncryption -> Ext4Engine : construct
19 activate Ext4Engine
20
21 participant FileFooter
22 participant KeyManager
23
24 Ext4Engine -> ProgressBar : construct
25 activate ProgressBar
26
27 participant ClientConnection
28 participant Client
29 participant ODEContext
30
31 actor ODELibrary
32
33 ODEContext <- ODELibrary : ode_internal_encryption_encrypt
34 activate ODEContext
35
36 ODEContext -> Client : methodCall
37 activate Client
38
39 Client -> ClientConnection : send
40 activate ClientConnection
41 ClientConnection -> Mainloop : Request remote method call
42 Client -> ClientConnection : dispatch
43 Mainloop -> Service : Event source callback
44 Service -> Service : onMessageProcess
45 Service -> ServerConnection: dispatch
46 ServerConnection --> Service
47 Service -> InternalEncryption : InternalEncryption::encrypt
48
49 InternalEncryption -> Ext4Engine : getKeyMeta
50 Ext4Engine -> FileFooter : read
51 FileFooter --> Ext4Engine
52 Ext4Engine --> InternalEncryption
53
54 InternalEncryption -> KeyManager : construct
55 activate KeyManager
56 InternalEncryption -> KeyManager : verifyPassword
57 InternalEncryption -> KeyManager : getMasterKey
58 deactivate KeyManager
59
60 InternalEncryption -> InternalEncryption: stopSystemdUserSessions
61 InternalEncryption -> InternalEncryption: stopDependedSystemServices
62 InternalEncryption -> InternalEncryption: showProgressUI(Encrypting)
63 InternalEncryption -> InternalEncryption: umount(opt/usr)
64 InternalEncryption -> Ext4Engine : encrypt
65
66 Ext4Engine -> Ext4Engine : isEnoughToCopyInplace
67 Ext4Engine -> Ext4Engine : mount
68 Ext4Engine -> Ext4Engine : sanitizeKey
69 Ext4Engine -> Ext4Engine : addKeyToKeyring(key)
70 Ext4Engine -> Ext4Engine : setPolicy
71 Ext4Engine -> Ext4Engine : copyInPlace
72 Ext4Engine -> Ext4Engine : mount
73 Ext4Engine -> ProgressBar : update
74 Ext4Engine -> Ext4Engine : sync
75 Ext4Engine -> ProgressBar : done
76
77 InternalEncryption -> InternalEncryption: setOptions
78 InternalEncryption -> InternalEncryption: sync
79 InternalEncryption -> InternalEncryption: reboot
80 InternalEncryption --> Service : reply
81 deactivate InternalEncryption
82 deactivate Ext4Engine
83 deactivate ProgressBar
84
85 Service -> ServerConnection : send
86
87 ServerConnection -> ClientConnection
88 deactivate ServerConnection
89 deactivate Service
90 deactivate Mainloop
91 ClientConnection --> Client
92 deactivate ClientConnection
93 Client --> ODEContext : result
94 deactivate Client
95 ODEContext --> ODELibrary : result
96 deactivate ODEContext
97
98 @enduml