Client <-> Server:
- gRPC interaction (based on tls, CA authority -> Server cert, start client with CA certificate)
- registration
- authorization (OTP)
- authentfication (JWT)
- TUI
Refs: AES-256 key encryption
prview в VSCode - Alt-D.
@startuml
Client->Client: Promt Authentification password
Client->GoKeeper: CheckEmail (EMail: string)
GoKeeper --> Client: EMailStatus
Client->GoKeeper: Registration Request (EMail: string, Password: string)
GoKeeper-> EmailServer: Send OTP QR
EmailServer-->GoKeeper:
GoKeeper-->Client: Prompt OTP password
Client->GoKeeper: OTP pass
GoKeeper-->Client: Registration complete, JWT
@enduml
@startuml
Client->GoKeeper: Authorization Request(EMail, Password)
GoKeeper-->Client: Prompt OTP password
Client->GoKeeper: OTP pass
GoKeeper-->Client: JWT
@enduml
@startuml
Client->Client: Prompt MasterKey Password and passwordHint (MasterPass, Hint)
Client->Client: Generate Storage AES-256 Key (SKey)
Client->Client: Encrypt SKey on MasterPass (EncrSKey)
Client->GoKeeper: Add MasterKey Request (JWT, Hint, EncrSKey)
GoKeeper-->Client:
@enduml
local postfix
make build
./build/server -c ./serverConf.json
./build/client_linux -c ./clientConf.json