@3asoft/web-crypto-js 中文文档教程
Обертка для работы с КриптоПро браузер Плагин
- Модуль экспортирует глобальную переменную tscrypto
- Интерфейс
{
supported: true,
plugin: {
getInfo: информация о плагине
},
browserInfo: инфорация о браузере,
certificate: {
all: все сертифкаты,
gost: только ГОСТовые,
notaryLike: получение сертифкатов по идентификаторам нотариусов (или ВРИО),
getByHash: поиск по хешу,
getBySn: поиск по серийному номеру,
parserDN : разбор "Distinguished name" сертифката
},
signData: подписать данные,
signHash: подписать по хешу,
calcHash: получить хеш,
decryptData: асим. расшифровать данные,
encryptData: асим. зашифровать на сертификате,
symmetricAlgorithm: получить объект SymmetricAlgorithm
}
Сертификат
x509Certificate - сертификат, как объект КриптоПро;
subjectName - субъект;
sn - серийный номер сертифката
thumbprint - отпечаток сертифката
issuerName - издатель
validFromDate - время действия с
validToDate - время действия по
hasPrivateKey - наличие приватного ключа
isValid - признак валидности
isGost - ГОСТовый сертифкат
Разбор "Distinguished name" сертификата
метод tscrypto.certificates.parserDN(cert.subjectName)
возвращает объект
{
full: string , // имя без изменений
commonName: string, // CN
email:string,
position:string, // должность
inn:string, // ИНН
snils:string, // СНИЛС
organizationName:string, // Наименование организации
fio:string, // ФИО владельца
}
SymmetricAlgorithm (обертка на ISymmetricAlgorithm)
SymmetricAlgorithm - повторят методы ISymmetricAlgorithm, результат передается через Promise
Примеры
Получение списка сертификатов
tscrypto.certificates.all().then(function(certs){
console.log(certs);
}, function(error){
console.error(error);
})
Получение списка сертификатов для нотариуса
// tscrypto.certificates.notaryLike(ids, onlyValid)
tscrypto.certificates.notaryLike(["94200005", "942A0007"], false).then(function(certs){
console.log(certs);
}, function(error){
console.error(error);
})
Создание открепленной подписи
var sn='123456789';
tscrypto.certificates.getBySn()
.then(function(cert){
if(cert){
return tscrypto.signData(cert, base64Data);
}else{
throw new Error('Сертификат не найден');
}
})
.then(function(signature){
console.log(signature);
})
.catch(function(error){
console.error(error);
})
Создание наложенной подписи
var sn='123456789';
tscrypto.certificates.getBySn(sn)
.then(function(cert){
if(cert){
// signData(cert, data, pinCode, attached)
return tscrypto.signData(cert, base64Data, null, true);
}else{
throw new Error('Сертификат не найден');
}
})
.then(function(signature){
console.log(signature);
})
.catch(function(error){
console.error(error);
})
Шифрование на сертификате
var sn='123456789';
tscrypto.certificates.getBySn(sn)
.then(function(cert){
if(cert){
return tscrypto.encryptData(base64Data, cert);
}else{
throw new Error('Сертифкат не найден');
}
})
.then(function(signature){
console.log(signature);
})
.catch(function(error){
console.error(error);
})
Обертка для работы с КриптоПро браузер Плагин
- Модуль экспортирует глобальную переменную tscrypto
- Интерфейс
{
supported: true,
plugin: {
getInfo: информация о плагине
},
browserInfo: инфорация о браузере,
certificate: {
all: все сертифкаты,
gost: только ГОСТовые,
notaryLike: получение сертифкатов по идентификаторам нотариусов (или ВРИО),
getByHash: поиск по хешу,
getBySn: поиск по серийному номеру,
parserDN : разбор "Distinguished name" сертифката
},
signData: подписать данные,
signHash: подписать по хешу,
calcHash: получить хеш,
decryptData: асим. расшифровать данные,
encryptData: асим. зашифровать на сертификате,
symmetricAlgorithm: получить объект SymmetricAlgorithm
}
Сертификат
x509Certificate - сертификат, как объект КриптоПро;
subjectName - субъект;
sn - серийный номер сертифката
thumbprint - отпечаток сертифката
issuerName - издатель
validFromDate - время действия с
validToDate - время действия по
hasPrivateKey - наличие приватного ключа
isValid - признак валидности
isGost - ГОСТовый сертифкат
Разбор "Distinguished name" сертификата
метод tscrypto.certificates.parserDN(cert.subjectName)
возвращает объект
{
full: string , // имя без изменений
commonName: string, // CN
email:string,
position:string, // должность
inn:string, // ИНН
snils:string, // СНИЛС
organizationName:string, // Наименование организации
fio:string, // ФИО владельца
}
SymmetricAlgorithm (обертка на ISymmetricAlgorithm)
SymmetricAlgorithm - повторят методы ISymmetricAlgorithm, результат передается через Promise
Примеры
Получение списка сертификатов
tscrypto.certificates.all().then(function(certs){
console.log(certs);
}, function(error){
console.error(error);
})
Получение списка сертификатов для нотариуса
// tscrypto.certificates.notaryLike(ids, onlyValid)
tscrypto.certificates.notaryLike(["94200005", "942A0007"], false).then(function(certs){
console.log(certs);
}, function(error){
console.error(error);
})
Создание открепленной подписи
var sn='123456789';
tscrypto.certificates.getBySn()
.then(function(cert){
if(cert){
return tscrypto.signData(cert, base64Data);
}else{
throw new Error('Сертификат не найден');
}
})
.then(function(signature){
console.log(signature);
})
.catch(function(error){
console.error(error);
})
Создание наложенной подписи
var sn='123456789';
tscrypto.certificates.getBySn(sn)
.then(function(cert){
if(cert){
// signData(cert, data, pinCode, attached)
return tscrypto.signData(cert, base64Data, null, true);
}else{
throw new Error('Сертификат не найден');
}
})
.then(function(signature){
console.log(signature);
})
.catch(function(error){
console.error(error);
})
Шифрование на сертификате
var sn='123456789';
tscrypto.certificates.getBySn(sn)
.then(function(cert){
if(cert){
return tscrypto.encryptData(base64Data, cert);
}else{
throw new Error('Сертифкат не найден');
}
})
.then(function(signature){
console.log(signature);
})
.catch(function(error){
console.error(error);
})