Уважаемые знатоки, у меня есть функция, кстати взятая с этого сайта:
function cryptoFunc (data, thumbprint, callback) {
var CADESCOM_HASH_ALGORITHM_CP_GOST_3411 = 100;
var CADESCOM_BASE64_TO_BINARY = 1;
var CAPICOM_CURRENT_USER_STORE = 2;
var CAPICOM_MY_STORE = "My";
var CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED = 2;
var CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
var CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME = 0;
var CADESCOM_CADES_BES = 1;
var hashedDataPromise = Crypto.createCryptoObjectAsync("CAdESCOM.HashedData");
hashedDataPromise.then(
function (hashObject) {
hashObject.Algorithm = CADESCOM_HASH_ALGORITHM_CP_GOST_3411;
hashObject.DataEncoding = CADESCOM_BASE64_TO_BINARY;
// Получение сертификата по отпечатку
var oStorePromise = Crypto.createCryptoObjectAsync("CAPICOM.Store");
oStorePromise.then(
function (oStore) {
oStore.Open(CAPICOM_CURRENT_USER_STORE,
CAPICOM_MY_STORE,
CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
var certificate = oStore.Certificates
.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, thumbprint)
.Item(1);
// Подпись хэша
var signerPromise = Crypto.createCryptoObjectAsync("CAdESCOM.CPSigner");
signerPromise.then(
function (signerObject) {
signerObject.Certificate = certificate;
signerObject.TSAAddress = "https://www.cryptopro.ru/tsp/";
var signedDataPromise = Crypto.createCryptoObjectAsync("CAdESCOM.CadesSignedData");
signedDataPromise.then(
function (signedDataObject) {
signedDataObject.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
hashObject.Hash(data.Data);
var signatureHex = signedDataObject.SignHash(hashObject, signerObject, CADESCOM_CADES_BES);
data.Signature = signatureHex;
data.SignDate = new Date();
//Возрат подписанного файла
callback(data);
})
});
});
});
}
Вопрос заключается в том, как ее вызвать в разметке asp, то есть на странице aspx
Я пытаюсь ее вызвать следующим образом:
<input type='button' id="#btn2" value='Подписать' onclick="return sigUser();"/>
Функция вызова:
function sigUser() {
cryptoFunc(dataV, thumbprintV, callbackV);
alert('Signature: Result---OK');
}
где
dataV = это данные с сервера переданные через сериализацию
thumbprintV = это подпись, которая выбрана по принципу oprion value
callbackV = чистый массив размерностью с dataV
На основе вышесказанного возникает вопрос, правильно ли я вообще пытаюсь вызвать функцию? А также т.к. я новичок в java то не могли бы Вы сказать правильно ли я понял что data - данные, thummbprint - подпись, callback - массив возвращаемый?
Отредактировано пользователем 22 ноября 2018 г. 8:42:52(UTC)
| Причина: Не указана