npm install @n3/crypto
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.
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
}
{
"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"
}
}