Статус: Новичок
Группы: Участники
Зарегистрирован: 19.06.2014(UTC) Сообщений: 5
|
Здравствуйте! Прошу помощи, реализую электронную подпись, ссылался на http://cpdn.cryptopro.ru , подглава "создание и проверка подписи" Все работает прекрасно, сообщение подписывается, но задача стоит другая, а именно подписать word документ. Скажите пожалуйста в какую стороны копать... Вот мой код: Код:
<html>
<object id="cadesplugin" type="application/x-cades" class="hiddenObject"></object>
<script type="text/javascript">
RunPlugin();
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;
function GetErrorMessage(e) {
var err = e.message;
if (!err) {
err = e;
} else if (e.number) {
err += " (" + e.number + ")";
}
return err;
}
function CreateObject(name) {
switch (navigator.appName) {
case "Microsoft Internet Explorer":
return new ActiveXObject(name);
default:
var userAgent = navigator.userAgent;
if (userAgent.match(/Trident\/./i)) {
return new ActiveXObject(name);
}
var cadesobject = document.getElementById("cadesplugin");
return cadesobject.CreateObject(name);
}
}
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 Verify(sSignedMessage) {
var oSignedData = CreateObject("CAdESCOM.CadesSignedData");
try {
oSignedData.VerifyCades(sSignedMessage, CADESCOM_CADES_X_LONG_TYPE_1);
} catch (err) {
alert("Failed to verify signature. Error: " + GetErrorMessage(err));
return false;
}
return true;
}
function RunPlugin() {
var signedMessage = SignCreate("Название сертификата", "Message");
var verifyResult = Verify(signedMessage);
if (verifyResult) {
alert("Signature verified");
}
}
Заранее спасибо!
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.06.2014(UTC) Сообщений: 5
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 19.06.2014(UTC) Сообщений: 5
|
Неужели никто не может подсказать?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 10.12.2008(UTC) Сообщений: 924 Откуда: Крипто-Про Поблагодарили: 99 раз в 95 постах
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close