Статус: Новичок
Группы: Участники
Зарегистрирован: 19.06.2014(UTC) Сообщений: 5
|
Здравствуйте! Прошу помощи, реализую электронную подпись, ссылался на http://cpdn.cryptopro.ru , подглава "создание и проверка подписи" Все работает прекрасно, сообщение подписывается, но приходится сразу ставить название сертификата, а хотелось бы предоставлять выбор как на тестовой сайте плагина. Вот мой код: Код:
function SignCreate(certSubjectName, dataToSign) {
var CADESCOM_CADES_X_LONG_TYPE_1 = 0x5d;
var CAPICOM_CURRENT_USER_STORE = 2;
var CAPICOM_MY_STORE = "My";
var CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;
var CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME = 1;
var oStore = CreateObject("CAPICOM.Store");
oStore.Open(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE,
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
var oCertificates = oStore.Certificates.Find(
CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName);
if (oCertificates.Count == 0) {
alert("Certificate not found: " + certSubjectName);
return;
}
var oCertificate = oCertificates.Item(1);
var oSigner = CreateObject("CAdESCOM.CPSigner");
oSigner.Certificate = oCertificate;
oSigner.TSAAddress = "http://cryptopro.ru/tsp/";
var oSignedData = CreateObject("CAdESCOM.CadesSignedData");
oSignedData.Content = dataToSign;
try {
var sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_X_LONG_TYPE_1);
} catch (err) {
alert("Failed to create signature. Error: " + GetErrorMessage(err));
return;
}
oStore.Close();
return sSignedMessage;
}
function RunPlugin() {
var signedMessage = SignCreate("Название сертификата(реквизит subject name)", "Message"); // хотелось бы давай выбор из списка сертификата
var verifyResult = Verify(signedMessage);
if (verifyResult) {
alert("Signature verified");
}
}
Заранее спасибо! Отредактировано пользователем 19 июня 2014 г. 23:40:11(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,340 Сказал «Спасибо»: 550 раз Поблагодарили: 2212 раз в 1727 постах
|
Что мешает посмотреть html и js-файлы на demo-странице?
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.06.2014(UTC) Сообщений: 5
|
Автор: Андрей * Что мешает посмотреть html и js-файлы на demo-странице?
спасибо, вопрос закрыт, если кому пригодится функция FillCertList('ctl00_ContentPlaceHolder1_CertListBox') Код:
function FillCertList(lstId) {
var oStore = CreateObject("CAPICOM.store");
alert("lol");
if (!oStore) {
alert("store failed");
return;
}
try {
oStore.Open();
}
catch (e) {
alert("Ошибка при открытии хранилища: " + GetErrorMessage(e));
return;
}
var certCnt = oStore.Certificates.Count;
var lst = document.getElementById(lstId);
for (var i = 1; i <= certCnt; i++) {
var cert;
try {
cert = oStore.Certificates.Item(i);
}
catch (ex) {
alert("Ошибка при перечислении сертификатов: " + GetErrorMessage(ex));
return;
}
var oOpt = document.createElement("OPTION");
try {
oOpt.text = cert.SubjectName;
}
catch (e) {
alert("Ошибка при получении свойства SubjectName: " + GetErrorMessage(e));
}
try {
oOpt.value = cert.Thumbprint;
}
catch (e) {
alert("Ошибка при получении свойства Thumbprint: " + GetErrorMessage(e));
}
lst.options.add(oOpt);
}
oStore.Close();
}
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close