Skip to content

StasMerzlyakov/gophkeeper

Repository files navigation

gophkeeper - Yandex Practicum graduation project

iteration1 - authirization

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

Registration

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

Authorization

@startuml
Client->GoKeeper: Authorization Request(EMail, Password)
GoKeeper-->Client: Prompt OTP password
Client->GoKeeper: OTP pass
GoKeeper-->Client: JWT
@enduml

MasterKey Generation

@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

Send mail

local postfix

Build

make build

run server

./build/server -c ./serverConf.json

run client

./build/client_linux -c ./clientConf.json

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages