Skip to content

Latest commit

 

History

History
38 lines (30 loc) · 2.92 KB

architecture.md

File metadata and controls

38 lines (30 loc) · 2.92 KB

Wallet App Architecture

The wallet app provides functionality to import digital green certificates (DCC) and Verifiable credentials (VC/SHC) alongside with other types of certificates. It's possible to import .jpeg or .pdf files. If during import system is able to recognise known certificate - it's stored as data. In other case it's stored directly as file. Imported certificates can be verified over structure correctness, validity and rules of destination/departure countries. To validate certificate (verify it's structure, expiration time) app verifies the signature with the keys provided by the wallet app’s backend.

App architecture overview

Modules

Application consists of set of module. External modules are used for certificates verification:

  • [decoder] (https://github.com/eu-digital-green-certificates/dgca-app-core-android) - certificates structure and validity verification.
  • engine - verification of certificates compliance with rules. In-app modules are representing general application logic like:
  • [app] - certificate cards management. Importing of certificates. Displaying and verifying certificates data. and branching different certificate type-specific logic:
  • [dcc] (Digital green certificate)
  • [vc] (Verifiable credentials)
  • [shc] (Smart health card)
  • [divoc / icao] (Sample modules, to demonstrate ability for extension).

General application flow

Interaction with the app starts with an authorization, after passing it, entry point is certificates screen: Here you can import certificates: . The most typical flow to import certificate is via scanning QR code: . After scanning certificates you see it's details: where you can claim it by pressing Save button. To claim certificate - you need to enter it's TAN: and pressing Next. After claiming certificate, you can see it in the list: . By pressing on certificate card in the list you can see it's details: , . From here you can navigate to verification screen by pressing Check Validity: . Validating certificate you can receive different results: , .