πŸš€ DAY 5 OF LAUNCH WEEK: Introducing Socket Firewall Enterprise.Learn more β†’
Socket
Book a DemoInstallSign in
Socket

@n3/crypto

Package Overview
Dependencies
Maintainers
11
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@n3/crypto

Comfortable api over cadesplugin from cryptopro

latest
npmnpm
Version
1.0.0
Version published
Weekly downloads
207
4.02%
Maintainers
11
Weekly downloads
Β 
Created
Source

@n3/crypto

Установка

npm install @n3/crypto

API

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ списка доступных сСртификатов

import { getValidCertificates } from '@n3/crypto';

getValidCertificates()
    .then((certificates) => {
        ...
    }, (err) => {
        ...
    });

certificates - массив, содСрТащий ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с полями:

  • certificate - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ сСртификата, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для подписания; Π΄ΠΎΠ»Π΅ΠΆΠ½ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ signHash ΠΈ signString
  • name - описаниС сСртификата Π²ΠΈΠ΄Π° STREET="ΡƒΠ». ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Π°Ρ, Π΄. 1, Π»ΠΈΡ‚. А", SNILS=12345678901, OGRN=1234567890123, INN=001234567890, E=testov@test.test, C=RU, S=78 Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, L=Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, O=ВСстовая организация, OU=ΠžΡ‚Π΄Π΅Π» тСстирования, G=ВСст ВСстович, SN=ВСстов, T=Π˜Π½ΠΆΠ΅Π½Π΅Ρ€-программист, CN=ВСстовая организация
  • print - Thumbprint сСртификата Π²ΠΈΠ΄Π° CC1A530EC972A18FF5A9CD5D5EF319FD86B9E6CF
  • params - прСдставлСниС name Π² Π²ΠΈΠ΄Π΅ {key: value}
  • objid - ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ id сСртификата
  • validFromDate - Π΄Π°Ρ‚Π°, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сСртификат Π²Π°Π»ΠΈΠ΄Π΅Π½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2017-04-06T05:53:47.000Z
  • 2017-04-06T05:53:47.000Z - Π΄Π°Ρ‚Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ сСртификат Π²Π°Π»ΠΈΠ΄Π΅Π½, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 2018-04-06T05:53:47.000Z

ПодписаниС Ρ…Π΅ΡˆΠ°

import { signHash } from '@n3/crypto';

signHash(hash, certificate)
    .then((signedHash) => {
        ...
    }, (errorMessage) => {
        ...
    });
  • hash - hex-строка
  • certificate - сСртификат ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π° getValidCertificates

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ подписи ΠΊ подписанному ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ

import { coSignHash } from '@n3/crypto';

coSignHash(hash, certificate, signedMessage)
    .then((signedHash) => {
        ...
    }, (errorMessage) => {
        ...
    });
  • hash - hex-строка
  • certificate - сСртификат ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π° getValidCertificates
  • signedMessage - подписанноС сообщСниС

ПодписаниС строки

import { signString } from '@n3/crypto';

signHash(stringToSign, certificate)
    .then((signedString) => {
        ...
    }, (errorMessage) => {
        ...
    });
  • stringToSign - base64-строка
  • certificate - сСртификат ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π° getValidCertificates

Валидация подписи строки

import { verifySignString } from '@n3/crypto';

verifySignString(singedMessage, dataToSign, isDetached)
    .then((signedString) => {
        ...
    }, (errorMessage) => {
        ...
    });
  • singedMessage - провСряСмоС подписанноС сообщСниС
  • dataToSign - содСрТимоС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° CAdESCOM.CadesSignedData, подписанноС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписи
  • isDetached - Π²ΠΈΠ΄ подписи: отдСлСнная (true) ΠΈΠ»ΠΈ совмСщСнная (false)

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ вСрсии ΠΏΠ»Π°Π³ΠΈΠ½Π°

import { getVersion } from '@n3/crypto';

getVersion()
    .then(({
      plugin,
      provider,
    }) => {
        ...
    }, (errorMessage) => {
        ...
    });
  • plugin - вСрсия ΠΏΠ»Π°Π³ΠΈΠ½Π°
    • BuildVersion - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ сборки
    • MajorVersion - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ вСрсии.
    • MinorVersion - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ младший ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ вСрсии.
    • Version - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строковоС прСдставлСниС вСрсии.
  • provider - вСрсия ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°
    • BuildVersion - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ сборки ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°
    • MajorVersion - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ вСрсии ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°
    • MinorVersion - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ младший ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ вСрсии ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°
    • Version - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строковоС прСдставлСниС вСрсии ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°
    • Name - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π°

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

import { getAlgorithm } from '@n3/crypto';

getAlgorithm(certificate)
    .then(({
      algorithmOid,
      signMethod,
      digestMethod,
      hashMethod
    }) => {
        ...
    }, (errorMessage) => {
        ...
    });
  • certificate - сСртификат ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹Π·ΠΎΠ²Π° getValidCertificates
  • algorithmOid - OID Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ
  • signMethod - URI Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° подписи
  • digestMethod - URI ΠΌΠ΅Ρ‚ΠΎΠ΄Π° дайдТСста
  • hashMethod - Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΊΠ°

import { mock } from '@n3/crypto';

import mockJSON from 'cryptopro-mock.json';

mock(mockJSON);

ПослС этого всС Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ„Π΅ΠΉΠΊΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, сгСнСрированныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ mockJSON.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ json для ΠΌΠΎΠΊΠ°

  certificates: [{
      ValidFromDate: #String
      ValidToDate: #String
      SubjectName: #String
      Thumbprint: #String
  }]
  plugin: {
      BuildVersion: #Number
      MajorVersion: #Number
      MinorVersion: #Number
      Version: #String
  }
  provider: {
      BuildVersion: #Number
      MajorVersion: #Number
      MinorVersion: #Number
      Version: #String
      Name: #String
  }

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ json для ΠΌΠΎΠΊΠ°

{
  "certificates": [
    {
      "ValidFromDate": "2017-04-06T05:53:47.000Z",
      "ValidToDate": "2018-04-06T05:53:47.000Z",
      "SubjectName": "STREET=\"ΡƒΠ». ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Π°Ρ, Π΄. 1, Π»ΠΈΡ‚. А\", SNILS=12345678901, OGRN=1234567890123, INN=001234567890, E=testov@test.test, C=RU, S=78 Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, L=Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, O=ВСстовая организация, OU=ΠžΡ‚Π΄Π΅Π» тСстирования, G=ВСст ВСстович, SN=ВСстов, T=Π˜Π½ΠΆΠ΅Π½Π΅Ρ€-программист, CN=ВСстовая организация",
      "Thumbprint": "CC1A530EC972A18FF5A9CD5D5EF319FD86B9E6CF"
    },
    {
      "ValidFromDate": "2017-01-24T07:51:47.000Z",
      "ValidToDate": "2017-03-24T07:51:47.000Z",
      "SubjectName": "STREET=\"ΡƒΠ». ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Π°Ρ, Π΄. 1, Π»ΠΈΡ‚. А\", SNILS=12345678901, OGRN=1234567890123, INN=001234567890, E=testov@test.test, C=RU, S=78 Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, L=Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, O=ВСстовая организация, OU=ΠžΡ‚Π΄Π΅Π» тСстирования, G=ВСст ВСстович, SN=ВСстов, T=Π˜Π½ΠΆΠ΅Π½Π΅Ρ€-программист, CN=ВСстовая организация",
      "Thumbprint": "DA572D0784DB9C95DEAD44D3E2A7D6288CF7A42E"
    }
  ],
  "plugin": {
      "BuildVersion": 2,
      "MajorVersion": 0,
      "MinorVersion": 12619,
      "Version": "2.0.12619"
  },
  "provider": {
      "BuildVersion": 3,
      "MajorVersion": 1,
      "MinorVersion": 101,
      "Version": "3.1.101",
      "Name": "Microsoft RSA/Schannel Cryptographic Provide"
  }
}

FAQs

Package last updated on 08 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts