Сейчас пытаюсь авторизоваться на клиенте и отправить на сервер токен, сигнатуру и отпечаток для дальнейших подписаний документов
Попытки подключиться к Вашей Com на языке JS у меня безрезультатны. Поэтому попробовал воспользоваться Крипто ПРО плугином и тут всё стало проще, но возникли вопросы по x509:
function FillCertList_NPAPI() {
let certList = {};
return new Promise(function(resolve, reject){
cadesplugin.async_spawn(function *(args) {
try {
let oStore = yield cadesplugin.CreateObjectAsync("CAPICOM.Store");
yield oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
let CertificatesObj = yield oStore.Certificates;
let Count = yield CertificatesObj.Count;
if (Count == 0) {
certList.globalCountCertificate = 0;
reject({certListNotFound: true});
return;
}
if (!Array.isArray(certList.globalOptionList)) {
certList.globalOptionList = [];
}
let text;
let dateObj = new Date();
let count = 0;
for (let i = 1; i <= Count; i ) {
let cert = yield CertificatesObj.Item(i);
let ValidToDate = new Date((yield cert.ValidToDate));
let ValidFromDate = new Date((yield cert.ValidFromDate));
let HasPrivateKey = yield cert.HasPrivateKey();
let Validator = yield cert.IsValid();
let IsValid = yield Validator.Result;
if( dateObj < new Date(ValidToDate) && IsValid && HasPrivateKey) {
let issuedBy = yield cert.GetInfo(1);
issuedBy = issuedBy || "";
var Adjust = new CertificateAdjuster();
text = new CertificateAdjuster().GetCertInfoString(yield cert.SubjectName, ValidFromDate, issuedBy);
var pubKey = yield cert.PublicKey();
var algo = yield pubKey.Algorithm;
var fAlgoName = yield algo.FriendlyName;
var oPrivateKey = yield cert.PrivateKey;
var sProviderName = yield oPrivateKey.ProviderName;
let subjectName = yield Adjust.GetCertName(yield cert.SubjectName);
var oSigner = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPSigner");
yield oSigner.propset_Certificate(cert);
certList.globalOptionList.push({
'value': text.replace(/^cn=([^;] );. /i, '$1'),
'text' : text.replace("CN=", ""),
'subject' : subjectName,
'issuer' : Adjust.GetIssuer(yield cert.IssuerName),
'from' : Adjust.GetCertDate(yield cert.ValidFromDate),
'till' : Adjust.GetCertDate(yield cert.ValidToDate),
'algorithm' : fAlgoName,
'provname' : sProviderName,
'signature' : signatures
});
count ;
}
}
certList.globalCountCertificate = count;
resolve(certList.globalOptionList, certList);
}
catch (err) {
reject(err);
// throw errormes;
}
});
});
}
Непонятно что должен отправить из полученного Вам.
Код взят и статьи: КриптоПро ЭЦП Browser plug-in. Создание и проверка подписи
А также из проекта: splincode/cryptopro-browser-plugin
Понимаю что вот прос звучит не по адресу, но огромное спасибо если окажите помощь и поможете разобраться.
Доброе время суток, уважаемые коллеги разработчики,
Не достиг я успеха в авторизации через ASP.NET C#
Код на C# при публикации в IIS на клиенте не отработал с правадли того кто открыл сайт
Сейчас пытаюсь авторизоваться на клиенте и отправить на сервер токен, сигнатуру и отпечаток для дальнейших подписаний документов
Попытки подключиться к Вашей Com на языке JS у меня безрезультатны. Поэтому попробовал воспользоваться Крипто ПРО плугином и тут всё стало проще, но возникли вопросы по x509:
Вопрос:
Как мне получить
<Двоичное DER-представление X.509-сертификата пользователя>
из статьи:
Как авторизоваться в системе
Используя следующую функцию:
В ней добрался до описания
Непонятно что должен отправить из полученного Вам.
Код взят и статьи: КриптоПро ЭЦП Browser plug-in. Создание и проверка подписи
А также из проекта: splincode/cryptopro-browser-plugin
Понимаю что вот прос звучит не по адресу, но огромное спасибо если окажите помощь и поможете разобраться.