Electronic digital signature

Description

Electronic digital signature (EDS) - is a detail of an electronic document intended to protect this electronic document from forgery, obtained as a result of cryptographic transformation of information using the private key of an electronic digital signature. It allows you to identify the owner of the certificate key signature and establish that there is no distortion of information in the electronic document.

Purpose of use

In the application the EDS may be used for:

  • Data integrity checking
  • Data authorship establishment

There are three types of digital signatures that differ in their use:

  • Simple electronic digital signature
    • to establish the authorship of the data
    • created with the use of codes, passwords or other instruments
  • Reinforced unqualified electronic digital signature
    • to check data integrity
    • to establish the authorship of the data
    • created using electronic signature tools
  • Reinforced qualified electronic digital signature
    • to check data integrity
    • to establish the authorship of the data
    • to create and verify an electronic signature, electronic signature tools are used that have received confirmation of compliance with the requirements of the legislation

Work specifics

The EDS utility works on the cryptoPro basis, so it should be installed on the computer:

Implementation

EDS can be attributed to the application utilities, since its main implementation is in the application. Usually the implementation of EDS is located in the lib/digest application folder (for example, the project-management app):

  • lib/digest/digestData.js - check the loading object form to the need for an electronic signature (_applicable) and check the signature process when performing a WF transition (_process)
  • lib/digest/signSaver.js - attachment of the signature to the object

Add the signedClasses setting in the deploy file for the registry module, so that EDS status can be displayed.

Example

"modules": {
    "registry": {
      "globals": {
         "signedClasses": [
          "class@application"
         ],
...

In the workflows/indicatorValueBasic.wf.json workflow add a transition with the "signBefore": true property.

Example

{
     "name": "needAppTrs_sign",
     "caption": "На утверждение",
     "startState": "edit",
     "finishState": "onapp",
     "signBefore": true,
     "signAfter": false,
     "roles": [],
     "assignments": [
       {
         "key": "state",
         "value": "onapp"
       }
     ],
     "conditions": []
   }