You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: ID_software_architecture_files/docs/index.md
+65-10Lines changed: 65 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# ARCHITECTURE OF ID-SOFTWARE
2
2
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
6
6
7
7
8
8
# Introduction
@@ -15,7 +15,7 @@ Main sources for information about ID-software are [www.id.ee](https://www.id.ee
15
15
16
16
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.
17
17
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/).
19
19
20
20
The document is targeted for:
21
21
@@ -32,9 +32,9 @@ The document is targeted for:
32
32
33
33
The software is being developed and tested by:
34
34
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;
38
38
* SK ID Solutions (SK, [https://www.skidsolutions.eu/en](https://www.skidsolutions.eu/en));
@@ -217,7 +228,7 @@ The main functions offered by ID-software are described in the following table:
217
228
| - | - |
218
229
| 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. |
219
230
| 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. |
221
232
| 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). |
222
233
| Card management operations | PIN/PUK management, reading personal data file. |
223
234
| 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
262
273
| TSL repository | Described in chap. [Software libraries](#_comp_libraries). | EU/RIA |
263
274
| Time-stamping proxy service interface | Described in chap. [Software libraries](#_comp_libraries). | RIA |
264
275
| OCSP service | Described in chap. [Software libraries](#_comp_libraries). | SK |
276
+
| Decryption service | Used to fetch Capsules for decrypting CDoc 2.0 document | RIA |
265
277
| Minidriver | Used via CNG interface in Windows environment only. Described in chap. [Drivers](#_comp_drivers). | IDEMIA |
266
278
| 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 |
*[CDoc 2.0 Decryption Service interface](#_CDoc_decryption_service)
295
308
* Interfaces with base libraries:
296
309
*[Libdigidocpp library’s API](#_Libdigidocpp_library’s_interfaces) – for handling documents in supported digital signature formats (ASiC, BDOC, DDOC and PDF)
297
310
* External base libraries: Qt6, libldap, openssl
@@ -319,10 +332,12 @@ Required:
319
332
| LDAP directory | Described in chap. [DigiDoc4](#_DigiDoc4). | SK |
320
333
| Central configuration repository | Described in chap. [Central configuration service](#_comp_central_conf). | RIA |
321
334
| Libdigidocpp | Described in chap. [Software libraries](#_comp_libraries). | RIA |
335
+
| Libcdoc | Described in chap. [Software libraries](#_comp_libraries). | RIA |
322
336
| SiVa | Described in chap. [Software libraries](#_comp_libraries). | RIA |
323
337
| TSL repository | Described in chap. [Software libraries](#_comp_libraries). | EU/RIA |
324
338
| Time-stamping proxy service interface | Described in chap. [Software libraries](#_comp_libraries). | RIA |
325
339
| OCSP service | Described in chap. [Software libraries](#_comp_libraries). | SK |
340
+
| Decryption service | Used to fetch Capsules for decrypting CDoc 2.0 document | RIA |
*[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)
356
372
* External base libraries: libldap, openssl
357
373
358
374
@@ -371,7 +387,8 @@ Required:
371
387
| 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 |
| 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 |
375
392
| 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 |
376
393
| 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 |
377
394
| 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:
442
459
443
460
* CDoc4j API: see chap. [CDoc4j library’s interfaces](#_CDoc4j_library’s_interfaces)
444
461
462
+
<aname="_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))
0 commit comments