Skip to content

Commit d70c9a2

Browse files
Merge pull request #21 from open-eid/update
Update documentation
2 parents b25588a + ea5cf15 commit d70c9a2

File tree

4 files changed

+65
-10
lines changed

4 files changed

+65
-10
lines changed

ID_software_architecture_files/ID_software_architecture_files_2_8.qea renamed to ID_software_architecture_files/ID_software_architecture_files_2_9.qea

1.63 MB
Binary file not shown.

ID_software_architecture_files/docs/index.md

Lines changed: 65 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# ARCHITECTURE OF ID-SOFTWARE
22

3-
Document version: 2.8
4-
Software version: 24.09
5-
Last updated: 23.9.2024
3+
Document version: 2.9
4+
Software version: 25.08
5+
Last updated: 9.10.2025
66

77

88
# Introduction
@@ -15,7 +15,7 @@ Main sources for information about ID-software are [www.id.ee](https://www.id.ee
1515

1616
This document covers description of ID-software and its components, their deployment in different environments, provided and required interfaces. The document does not include components that have reached the end of their support nor the components that have not yet been released.
1717

18-
The document is based on the latest released state of the ID-software components. At the time of writing, the latest released version of ID-software is **version 24.09**. Latest version numbers of the various ID-software components are provided at [https://www.id.ee/en/article/information-on-the-latest-software-versions/](https://www.id.ee/en/article/information-on-the-latest-software-versions/).
18+
The document is based on the latest released state of the ID-software components. At the time of writing, the latest released version of ID-software is **version 25.08**. Latest version numbers of the various ID-software components are provided at [https://www.id.ee/en/article/information-on-the-latest-software-versions/](https://www.id.ee/en/article/information-on-the-latest-software-versions/).
1919

2020
The document is targeted for:
2121

@@ -32,9 +32,9 @@ The document is targeted for:
3232

3333
The software is being developed and tested by:
3434

35-
* **RaulWalter** (RW, [https://www.raulwalter.com](https://www.raulwalter.com)) as the main contractor during 2019-2024;
36-
* **Nortal** ([https://nortal.com](https://nortal.com)) during 2019-2024;
37-
* **TTT** ([https://www.testijad.ee](https://www.testijad.ee)) during 2019-2024;
35+
* **RaulWalter** (RW, [https://www.raulwalter.com](https://www.raulwalter.com)) as the main contractor during 2019-2025;
36+
* **Nortal** ([https://nortal.com](https://nortal.com)) during 2019-2025;
37+
* **TTT** ([https://www.testijad.ee](https://www.testijad.ee)) during 2019-2025;
3838
* SK ID Solutions (SK, [https://www.skidsolutions.eu/en](https://www.skidsolutions.eu/en));
3939
* Aktors ([http://www.aktors.ee/wp/](http://www.aktors.ee/wp/));
4040
* CGI Estonia ([https://www.cgi.ee/et](https://www.cgi.ee/et)).
@@ -110,7 +110,7 @@ The following table maps the main ID-software components, their owner/developer
110110
<td>LGPL</td>
111111
</tr>
112112
<tr>
113-
<th rowspan="3"><a href="#software-libraries">Software libraries</a></td>
113+
<th rowspan="4"><a href="#software-libraries">Software libraries</a></td>
114114
<th>DigiDoc4j (Java)</th>
115115
<td>yes (2)</td>
116116
<td>yes (1)</td>
@@ -144,6 +144,17 @@ The following table maps the main ID-software components, their owner/developer
144144
<td>LGPL</td>
145145
</tr>
146146
<tr>
147+
<th>Libcdoc (C++, .NET)</th>
148+
<td>-</td>
149+
<td>-</td>
150+
<td>yes</td>
151+
<td>yes (1)</td>
152+
<td>-</td>
153+
<td>-</td>
154+
<td>RIA</td>
155+
<td>LGPL</td>
156+
</tr>
157+
<tr>
147158
<th rowspan="2"><a href="#web-components">Web components</a></td>
148159
<th>Browser signing modules</th>
149160
<td>-</td>
@@ -217,7 +228,7 @@ The main functions offered by ID-software are described in the following table:
217228
| - | - |
218229
| Handling ASiC/BDOC/PADES documents | Handling documents in [BDOC 2.1](https://www.id.ee/wp-content/uploads/2020/06/bdoc-spec212-eng.pdf) digital signature format that is a profile of [ETSI XAdES](http://www.etsi.org/deliver/etsi_ts/101900_101999/101903/01.04.02_60/ts_101903v010402p.pdf) (XML Advanced Electronic Signature) and [ETSI ASiC](http://www.etsi.org/deliver/etsi_ts/102900_102999/102918/01.02.01_60/ts_102918v010201p.pdf) formats. Validating timestamp and signatures of enclosed DDOC document in the Time Stamp Token (TST) based [ETSI ASIC-S](http://www.etsi.org/deliver/etsi_ts/102900_102999/102918/01.02.01_60/ts_102918v010201p.pdf) containers. Validating the signatures of PDF documents in [PAdES](http://www.etsi.org/deliver/etsi_en/319100_319199/31914201/01.01.01_60/en_31914201v010101p.pdf) digital signature format that is a profile of [ETSI PAdES](http://www.etsi.org/deliver/etsi_en/319100_319199/31914201/01.01.01_60/en_31914201v010101p.pdf). More information on the formats’ life cycle can be found from [https://www.id.ee/en/article/digidoc-container-format-life-cycle-2/](https://www.id.ee/en/article/digidoc-container-format-life-cycle-2/). See [Libdigidocpp](http://open-eid.github.io/libdigidocpp/manual.html#format) and [Digidoc4j](https://github.com/open-eid/digidoc4j#features) documentation for supported formats. |
219230
| Handling DDOC documents | Handling documents in [DIGIDOC-XML 1.3 (DDOC)](https://www.id.ee/wp-content/uploads/2020/08/digidoc_format_1.3.pdf) digital signature format that is a profile of [ETSI XAdES](http://www.etsi.org/deliver/etsi_ts/101900_101999/101903/01.04.02_60/ts_101903v010402p.pdf) (XML Advanced Electronic Signature) format. More information on the formats’ life cycle can be found from [https://www.id.ee/en/article/digidoc-container-format-life-cycle-2/](https://www.id.ee/en/article/digidoc-container-format-life-cycle-2/). |
220-
| Handling CDOC documents | Encrypting and decrypting documents in [ENCDOC-XML 1.0 (CDOC)](https://www.id.ee/wp-content/uploads/2020/02/SK-CDOC-1.0-20120625_EN.pdf) also [CDOC 1.1](https://www.ria.ee/sites/default/files/content-editors/EID/cdoc.pdf) format. |
231+
| Handling CDOC documents | Encrypting and decrypting documents in [ENCDOC-XML 1.0 (CDOC)](https://www.id.ee/wp-content/uploads/2020/02/SK-CDOC-1.0-20120625_EN.pdf), [CDOC 1.1](https://www.ria.ee/sites/default/files/content-editors/EID/cdoc.pdf) and [CDOC 2.0](https://open-eid.github.io/CDOC2/) format. |
221232
| Calculating RSA/ECDSA signature | Calculating the RSA or ECDSA signature value in browser or desktop/server environment. The operation involves connecting with the signature token’s driver, sending the data to be signed and receiving digital signature value calculated with the token owner’s RSA or ECDSA private key. The following cryptographic tokens are supported: hardware-based tokens (e.g. PKCS#11-based eID cards, USB cryptostick, Mobile-ID and Smart-ID); software-based tokens (e.g. PKCS#12 software token). |
222233
| Card management operations | PIN/PUK management, reading personal data file. |
223234
| Authentication | Authentication with ID-card. The operation is generally done via native operating system/browser components. In case of Estonian ID-cards and Firefox browser, a PKCS#11 module pkcs11-register is used for setting the proper parameters for authentication in Firefox browser on Linux. |
@@ -262,6 +273,7 @@ Note that not all of the external base libraries are included in the component m
262273
| TSL repository | Described in chap. [Software libraries](#_comp_libraries). | EU/RIA |
263274
| Time-stamping proxy service interface | Described in chap. [Software libraries](#_comp_libraries). | RIA |
264275
| OCSP service | Described in chap. [Software libraries](#_comp_libraries). | SK |
276+
| Decryption service | Used to fetch Capsules for decrypting CDoc 2.0 document | RIA |
265277
| Minidriver | Used via CNG interface in Windows environment only. Described in chap. [Drivers](#_comp_drivers). | IDEMIA |
266278
| ID-Updater | Used in Windows and macOS only, described in chap. [Updating mechanisms](#_comp_update). In case of Windows platform, the ID-Updater can be executed from DigiDoc4 program. | RIA |
267279

@@ -292,6 +304,7 @@ Required:
292304
* [Mobile-ID (MID) REST service](#_MID_REST_service)
293305
* [Smart-ID (MID) REST service](#_SID_REST_service)
294306
* [LDAP directory interface](#_LDAP_directory_interface)
307+
* [CDoc 2.0 Decryption Service interface](#_CDoc_decryption_service)
295308
* Interfaces with base libraries:
296309
* [Libdigidocpp library’s API](#_Libdigidocpp_library’s_interfaces) – for handling documents in supported digital signature formats (ASiC, BDOC, DDOC and PDF)
297310
* External base libraries: Qt6, libldap, openssl
@@ -319,10 +332,12 @@ Required:
319332
| LDAP directory | Described in chap. [DigiDoc4](#_DigiDoc4). | SK |
320333
| Central configuration repository | Described in chap. [Central configuration service](#_comp_central_conf). | RIA |
321334
| Libdigidocpp | Described in chap. [Software libraries](#_comp_libraries). | RIA |
335+
| Libcdoc | Described in chap. [Software libraries](#_comp_libraries). | RIA |
322336
| SiVa | Described in chap. [Software libraries](#_comp_libraries). | RIA |
323337
| TSL repository | Described in chap. [Software libraries](#_comp_libraries). | EU/RIA |
324338
| Time-stamping proxy service interface | Described in chap. [Software libraries](#_comp_libraries). | RIA |
325339
| OCSP service | Described in chap. [Software libraries](#_comp_libraries). | SK |
340+
| Decryption service | Used to fetch Capsules for decrypting CDoc 2.0 document | RIA |
326341

327342

328343
**Table: RIA DigiDoc**
@@ -353,6 +368,7 @@ Required:
353368
* [LDAP directory interface](#_LDAP_directory_interface)
354369
* Interfaces with base libraries:
355370
* [Libdigidocpp library’s API](#_Libdigidocpp_library’s_interfaces) – for handling documents in supported digital signature formats (ASiC, BDOC, DDOC and PDF)
371+
* [Libcdoc library’s API](#_Libcdoc_library’s_interfaces) – for handling documents in supported encryption formats (CDoc 1.0/1.1/2.0)
356372
* External base libraries: libldap, openssl
357373

358374

@@ -371,7 +387,8 @@ Required:
371387
| DigiDoc4j-util program | Small command line application that implements the main functionality of DigiDoc4j library. Used for testing purposes. Can also be used as a source for sample client code for using DigiDoc4j. See also [http://open-eid.github.io/digidoc4j](http://open-eid.github.io/digidoc4j). | RIA |
372388
| CDoc4j | Java software library that enables handling documents in CDoc 1.1 format. Documentation: [https://github.com/open-eid/cdoc4j/wiki/Examples-of-how-to-use-it](https://github.com/open-eid/cdoc4j/wiki/Examples-of-how-to-use-it) . Code repository: [https://github.com/open-eid/cdoc4j](https://github.com/open-eid/cdoc4j). | RIA |
373389
| CDoc4j-util program | Small command line application that implements the main functionality of CDoc4j library. Used for testing purposes. Can also be used as a source for sample client code for using CDoc4j. See also [https://github.com/open-eid/cdoc4j/tree/master/util](https://github.com/open-eid/cdoc4j/tree/master/util). | RIA |
374-
| Libdigidocpp | C++ software library that enables handling documents in BDOC 2.1, ASiC and DIGIDOC-XML 1.3 formats (via SiVa service). Wiki: [https://github.com/open-eid/libdigidocpp/wiki](https://github.com/open-eid/libdigidocpp/wiki) Code repository: [https://github.com/open-eid/libdigidocpp](https://github.com/open-eid/libdigidocpp) Documentation: [http://open-eid.github.io/libdigidocpp](http://open-eid.github.io/libdigidocpp). | RIA |
390+
| Libcdoc | C/C++ library that enables handling documents in CDOC and CDOC2 formats (encrypting/decrypting). Code repository: [https://github.com/open-eid/libcdoc](https://github.com/open-eid/libcdoc) Documentation: [https://open-eid.github.io/libcdoc/](https://open-eid.github.io/libcdoc/). | RIA |
391+
| Libdigidocpp | C++ library that enables handling documents in BDOC 2.1, ASiC and DIGIDOC-XML 1.3 formats (via SiVa service). Wiki: [https://github.com/open-eid/libdigidocpp/wiki](https://github.com/open-eid/libdigidocpp/wiki) Code repository: [https://github.com/open-eid/libdigidocpp](https://github.com/open-eid/libdigidocpp) Documentation: [http://open-eid.github.io/libdigidocpp](http://open-eid.github.io/libdigidocpp). | RIA |
375392
| digidoc-tool program | Small command line application (digidoc-tool.exe) that implements the main functionality of Libdigidocpp library. Used for testing purposes. Can also be used as a source for sample client code for using Libdigidocpp. See also [http://open-eid.github.io/libdigidocpp](http://open-eid.github.io/libdigidocpp). | RIA |
376393
| DigiDocCSharp | .NET C# wrapper classes for using Libidigidocpp library’s functionality in .NET environment. Created with Swig tool. See also [https://github.com/open-eid/libdigidocpp/blob/master/examples/DigiDocCSharp/README.md](https://github.com/open-eid/libdigidocpp/blob/master/examples/DigiDocCSharp/README.md). | RIA |
377394
| SiVa | *Si*gnature *Ve*rification Service is an online web service for validating digitally signed documents.<br/>SiVa is used by the DigiDoc4 and RIA DigiDoc (by libdigidocpp base library) to validate documents in formats that are not natively supported; currently the service is used to validate ASiC (CAdES), PDF (ETSI PAdES) and DDOC documents.<br/>See also [Signature Verification Service interface](#_SiVa_verification_service). | RIA |
@@ -442,6 +459,36 @@ Required:
442459

443460
* CDoc4j API: see chap. [CDoc4j library’s interfaces](#_CDoc4j_library’s_interfaces)
444461

462+
<a name="_Libcdoc_library’s_interfaces"></a>
463+
### Libcdoc library’s interfaces
464+
465+
Provided:
466+
467+
* Libcdoc API
468+
* User: DigiDoc4, RIA DigiDoc, Libcdoc utility program
469+
* Accessible with: C/C++
470+
471+
Required:
472+
473+
* Interfaces with base libraries:
474+
* OpenSSL, libxml2
475+
* Interfaces with cryptographic token’s drivers (described in chap. [Drivers](#_comp_drivers))
476+
* CNG interface
477+
* PKCS#11 interface
478+
* PKCS#12 interface
479+
480+
### libcdoc utility program’s interfaces
481+
482+
Provided:
483+
484+
* [libcdoc utility program’s interface](https://github.com/open-eid/libcdoc)
485+
* User: server application, end-user application, end-user
486+
* Accessible with: command line
487+
488+
Required:
489+
490+
* Libcdoc API: see chap. [Libcdoc library’s interfaces](#_Libcdoc_library’s_interfaces)
491+
445492
<a name="_Libdigidocpp_library’s_interfaces"></a>
446493
### Libdigidocpp library’s interfaces
447494

@@ -855,6 +902,14 @@ The following chapter describes interfaces that different ID-software components
855902
* Accessible from: [https://siva.eesti.ee/V3/validate](https://siva.eesti.ee/V3/validate)
856903
* Documentation: [http://open-eid.github.io/SiVa/](http://open-eid.github.io/SiVa/)
857904

905+
<a name="_CDoc_decryption_service"></a>
906+
#### CDoc 2.0 Decryption Service interface
907+
908+
* User: DigiDoc4, Libcdoc (RIA DigiDoc)
909+
* Accessible with: HTTPS protocol
910+
* Accessible from: [https://cdoc2.id.ee](https://cdoc2.id.ee)
911+
* Documentation: [https://open-eid.github.io/CDOC2/](https://open-eid.github.io/CDOC2/)
912+
858913

859914

860915
# Deployment model
5 KB
Loading
7.5 KB
Loading

0 commit comments

Comments
 (0)