Статус: Участник
Группы: Участники
Зарегистрирован: 14.04.2015(UTC) Сообщений: 29
Сказал(а) «Спасибо»: 9 раз Поблагодарили: 6 раз в 5 постах
|
Цитата:Скажи как у тебя получилось в линукс подцепить комовскую библиотеку CAdESCOM? На сколько я знаю API BrowserPlugin не позволяет шифровать и дешифровать сообщения, там только доступны функции для создания подписи? Позволяет и шифровать и расшифровывать сообщения. Просто нет примеров в официальной документации (по крайней мере раньше небыло). Описание объектов есть: http://cpdn.cryptopro.ru..._c_p_enveloped_data.htmlЦитата:Но как ты создавал объекты, которые доступны только через виндовый ActivX? Это сейчас они доступны только через ActivX, но когда я писал данный пост они были доступны, в частности, в Firefox, т.к. на тот момент еще была поддержка NPAPI плагина, интерфейс которого полностью повторяет версию для ActivX. На данный момент, чтобы заюзать мой пример под linux нужна либо старая версия Firefox с поддержкой NPAPI и соответствующим образом настроенный плагин, либо переписать его с использованием нового асинхронного интерфейса. Например: Код:
var CADESCOM_BASE64_TO_BINARY = 0x01;
var CADESCOM_STRING_TO_UCS2LE = 0x00;
var CAPICOM_CERTIFICATE_FIND_SHA1_HASH = 0;
var encryptedData = {};
var success;
var error;
var result = new Promise(function(resolve, reject){
success = resolve;
error = reject;
});
cadesplugin.async_spawn(function *() { //cadesplugin.async_spawn
try {
var oStore = yield cadesplugin.CreateObjectAsync("CAPICOM.store");
yield oStore.Open();
var all_certs = yield oStore.Certificates;
var oCerts = yield all_certs.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, certThumbprint);
if (oCerts.Count === 0) {
encryptedData.error = "Certificate not found";
success(encryptedData);
return;
}
var certificate = yield oCerts.Item(1);
var oEnvelop = yield cadesplugin.CreateObjectAsync("CAdESCOM.CPEnvelopedData");
yield oEnvelop.propset_ContentEncoding(CADESCOM_BASE64_TO_BINARY);
yield oEnvelop.propset_Content(dataToCrypt);
var recipients = yield oEnvelop.Recipients;
yield recipients.Clear();
yield recipients.Add(certificate);
encryptedData.base64 = yield oEnvelop.Encrypt();
encryptedData.ber = cadesplugin.Base64ToBer(encryptedData.base64);
success(encryptedData);
}
catch (ex) {
encryptedData.error = "Failed to crypt data. Error: " + cadesplugin.GetErrorMessage(ex);
success(encryptedData);
}
});
return result;
|
 1 пользователь поблагодарил IOFeed за этот пост.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close