Skip to content
Boriss Melikjan edited this page Apr 6, 2026 · 2 revisions

This wiki is about iOS application that allows user to sign/validate containers with Mobile-ID/Smart-ID/ID-card via USB/ID-card via NFC or encrypt/decrypt with ID-card (via USB Card Reader or via NFC). Application uses Package manager CryptoLib module for cryptographic actions and SkSigningLib for signing with Mobile-ID and Smart-ID.

Application

Application is developed using single-activity approach using declarative SwiftUI framework SwiftUI and iOS Design, Swift programming language and MVVM Architecture pattern.

Architecture is based on MVVM (Model-View-ViewModel) paradigm and relies heavily on Swift Concurrency.

Modules

Several modules are being developed along with the mobile application that can be used separately.

  • RIADigiDoc app - main application module
  • CommonsLib - Shared and Commons module
    • CommonsTestShared - Shared classes for unit tests
  • ConfigLib - Central Management Configuration module
  • CryptoLib - Encryption library module
  • IdCardLib - ID-card support (NFC, USB-reader (bR301)) library module
  • LibdigidocLib - Libdigidocpp library support module
  • MobileIdLib - Mobile-ID signing support module
  • SmartIdLib - Smart-ID signing support module
  • UtilsLib - Support utilities module
  • Additional support things - In addition to the components of the modules in the project are also included additional support things:
    • FileImportShareExtension - For opening of multiple files in the project
    • WidgetExtension - To support LiveActivities for Smart-ID signing
    • SetupConfiguration - To fetch latest configuration from Central Management in command line
    • SetupConfiguration
    • The /scripts folder containing Mac OS command line scripts to update libcdoc, Open LDAP and to generate mocks for unit testing support

How can I use it in my application?

Check out Getting started section of this wiki to setup RIA DigiDoc Modules and application in your project.

Managing containers will teach you all you need to know about creating containers, managing files and signatures in containers.

To learn what you can do with physical ID-card, go to Working with card reader section and Working-with-NFC section.

Crypto Actions will teach you how to encrypt and decrypt with CryptoLib.

Clone this wiki locally