Comfortable api over cadesplugin from cryptopro
npm install @n3/crypto```
npm install @n3/crypto
`javascript
import { getValidCertificates } from '@n3/crypto';
getValidCertificates()
.then((certificates) => {
...
}, (err) => {
...
});
`
certificates - массив, содержащий объекты с полями:certificate
- - объект сертификата, используемый для подписания; долежн передаваться в функции signHash и signStringname
- - описание сертификата вида STREET="ул. Проверочная, д. 1, лит. А", SNILS=12345678901, OGRN=1234567890123, INN=001234567890, E=testov@test.test, C=RU, S=78 Санкт-Петербург, L=Санкт-Петербург, O=Тестовая организация, OU=Отдел тестирования, G=Тест Тестович, SN=Тестов, T=Инженер-программист, CN=Тестовая организация
- - Thumbprint сертификата вида CC1A530EC972A18FF5A9CD5D5EF319FD86B9E6CFparams
- - представление name в виде {key: value}objid
- - уникальный id сертификатаvalidFromDate
- - дата, с которой сертификат валиден, например, 2017-04-06T05:53:47.000Z2017-04-06T05:53:47.000Z
- - дата, по которую сертификат валиден, например, 2018-04-06T05:53:47.000Z
`javascript
import { signHash } from '@n3/crypto';
signHash(hash, certificate)
.then((signedHash) => {
...
}, (errorMessage) => {
...
});
`
- hash - hex-строкаcertificate
- - сертификат из результата вызова getValidCertificates
`javascript
import { coSignHash } from '@n3/crypto';
coSignHash(hash, certificate, signedMessage)
.then((signedHash) => {
...
}, (errorMessage) => {
...
});
`
- hash - hex-строкаcertificate
- - сертификат из результата вызова getValidCertificatessignedMessage
- - подписанное сообщение
`javascript
import { signString } from '@n3/crypto';
signHash(stringToSign, certificate)
.then((signedString) => {
...
}, (errorMessage) => {
...
});
`
- stringToSign - base64-строкаcertificate
- - сертификат из результата вызова getValidCertificates
`javascript
import { verifySignString } from '@n3/crypto';
verifySignString(singedMessage, dataToSign, isDetached)
.then((signedString) => {
...
}, (errorMessage) => {
...
});
`
- singedMessage - проверяемое подписанное сообщениеdataToSign
- - содержимое объекта CAdESCOM.CadesSignedData, подписанное с помощью цифровой подписиisDetached
- - вид подписи: отделенная (true) или совмещенная (false)
`javascript
import { getVersion } from '@n3/crypto';
getVersion()
.then(({
plugin,
provider,
}) => {
...
}, (errorMessage) => {
...
});
`
- plugin - версия плагинаBuildVersion
- - Возвращает номер сборкиMajorVersion
- - Возвращает старший компонент версии.MinorVersion
- - Возвращает младший компонент версии.Version
- - Возвращает строковое представление версии.provider
- - версия криптопровайдераBuildVersion
- - Возвращает номер сборки криптопровайдераMajorVersion
- - Возвращает старший компонент версии криптопровайдераMinorVersion
- - Возвращает младший компонент версии криптопровайдераVersion
- - Возвращает строковое представление версии криптопровайдераName
- - Возвращает наименование криптопровайдера
`javascript
import { getAlgorithm } from '@n3/crypto';
getAlgorithm(certificate)
.then(({
algorithmOid,
signMethod,
digestMethod,
hashMethod
}) => {
...
}, (errorMessage) => {
...
});
`
- certificate - сертификат из результата вызова getValidCertificatesalgorithmOid
- - OID алгоритма хэшированияsignMethod
- - URI алгоритма подписиdigestMethod
- - URI метода дайджестаhashMethod
- - алгоритм хэширования
`javascript
import { mock } from '@n3/crypto';
import mockJSON from 'cryptopro-mock.json';
mock(mockJSON);
`
После этого все вышеперечисленные методы будут возвращать фейковые данные, сгенерированные с помощью mockJSON.
`javascript`
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
}
`javascript``
{
"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"
}
}