Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

3 Страницы<123>
Опции
К последнему сообщению К первому непрочитанному
Online Андрей Писарев  
#11 Оставлено : 30 июня 2017 г. 9:05:40(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
Автор: vorh Перейти к цитате
Как оказалось не один из доступных способов в js то же не может декодировать подпись - все валятся с ошибкой

Можно ли изменить чтобы CAdESCOM.CPSigner подпись сразу выдавал в бинарном формате ?


Какая цель?
Техническую поддержку оказываем тут
Наша база знаний
Online Андрей Писарев  
#12 Оставлено : 30 июня 2017 г. 9:08:51(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
Автор: vorh Перейти к цитате

Иногда удается нормально декодировать , но подпись не открывается как .p7b

В чем может быть проблема ?



Зачем это всё делается?
Техническую поддержку оказываем тут
Наша база знаний
Offline vorh  
#13 Оставлено : 30 июня 2017 г. 10:38:19(UTC)
vorh

Статус: Участник

Группы: Участники
Зарегистрирован: 18.05.2017(UTC)
Сообщений: 16

Сказал(а) «Спасибо»: 4 раз
После подписание документа , надо сохранить подпись на сервере , чтобы потом дать возможность юзерам скачать ее в личном кабинете на сайте и затем зайти на гос портал проверить ее.

Т.е. это планировал сделать как : подпись отправляется на сервер в Base64 - декодируется и затем сохраняется в бд

Если я что то делаю не так , можете подсказать другой способ или указать на мои ошибки.

Пытался декодировать с помощью js на стороне клиента - получил вот такую строку:

0⇒\u0006\t*戆獁\u0007\u0002ð⇿\u0002\u0001\u00011\f0\n\u0006\u0006*僂\u0002\t\u0005

Что с ней делать то же не понятно

Offline 4eIIIupKo  
#14 Оставлено : 13 июля 2017 г. 9:56:40(UTC)
4eIIIupKo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.12.2016(UTC)
Сообщений: 114
Мужчина
Российская Федерация

Сказал «Спасибо»: 26 раз
Автор: Андрей * Перейти к цитате
1. Вы смотрели результат?
почему в base64 в каждой строке "\r\n"?

2. Чтобы получить сертификат - необходимо выполнить проверку подписи (.VerifyCades), тогда будут доступны Signers,



Signers object
Signers.Item


а у Signer - Signer.Certificate property
из которого можно получить необходимое.



Это получается, нужно скачать файл. Запустить проверку. И только потом я смогу получить данные сертификата.
А без нее никак? Если я и так уверен что подпись от нужного файла.
Online Андрей Писарев  
#15 Оставлено : 13 июля 2017 г. 10:00:19(UTC)
Андрей *

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 26.07.2011(UTC)
Сообщений: 12,630
Мужчина
Российская Федерация

Сказал «Спасибо»: 494 раз
Поблагодарили: 2034 раз в 1578 постах
Можно и без файлов, "на вход" же не файл подается, а данные.
И инициализировать можно некорректными данными и запросить проверку.
Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Андрей * за этот пост.
4eIIIupKo оставлено 17.07.2017(UTC)
Offline 4eIIIupKo  
#16 Оставлено : 17 июля 2017 г. 11:09:42(UTC)
4eIIIupKo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.12.2016(UTC)
Сообщений: 114
Мужчина
Российская Федерация

Сказал «Спасибо»: 26 раз
Автор: Андрей * Перейти к цитате
Можно и без файлов, "на вход" же не файл подается, а данные.
И инициализировать можно некорректными данными и запросить проверку.


Спасибо большое буду пробывать.
Offline 4eIIIupKo  
#17 Оставлено : 24 июля 2017 г. 15:17:30(UTC)
4eIIIupKo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.12.2016(UTC)
Сообщений: 114
Мужчина
Российская Федерация

Сказал «Спасибо»: 26 раз
Автор: 4eIIIupKo Перейти к цитате
Автор: Андрей * Перейти к цитате
Можно и без файлов, "на вход" же не файл подается, а данные.
И инициализировать можно некорректными данными и запросить проверку.


Спасибо большое буду пробывать.


Код:
	cadesplugin.async_spawn(function*(arg){
		var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
		try{
			yield oSignedData.propset_ContentEncoding(1);
			yield oSignedData.propset_Content(dataToVerify);
			yield oSignedData.VerifyCades(sSignedMessage.replace(/(\r\n|\n|\r)/gm," "),CADESCOM_CADES_BES,true);
		}catch(err){
			error_eds("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
			return false;
		}
		console.log(yield oSignedData.Signers.Item(1).Certificate.SigningTimestampTime);
		//$('#eds_status').modal('hide');
	});


Не работает. Вылетает с ошибкой Uncaught (in promise) TypeError: oSignedData.Signers.Item is not a function.
Как отловить?
Offline 4eIIIupKo  
#18 Оставлено : 25 июля 2017 г. 12:59:35(UTC)
4eIIIupKo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 17.12.2016(UTC)
Сообщений: 114
Мужчина
Российская Федерация

Сказал «Спасибо»: 26 раз
Проблема была в синхронности. Вдруг кому-то пригодится.

Код:

				var oSignedData = yield cadesplugin.CreateObjectAsync("CAdESCOM.CadesSignedData");
				try{
					yield oSignedData.propset_ContentEncoding(1);
					yield oSignedData.propset_Content(sBase64Data);
					yield oSignedData.VerifyCades(eds.replace(/(\r\n|\n|\r)/gm," "),CADESCOM_CADES_BES,true);
				}catch(err){
					error_eds("Failed to verify signature. Error: " + cadesplugin.getLastError(err));
					return false;
				}
				var Signers = yield oSignedData.Signers;
				console.log(yield Signers.Count);
				
				var Item = yield Signers.Item(1);
				console.log(yield Signers.Item(1));
				
				var Certificate = yield Item.Certificate;
				console.log(yield Item.Certificate);
				
				AddCertInfoForEDS_Async(Certificate);



А еще вопрос как выдрать СНИЛС и другие данные с сертификата?

Отредактировано пользователем 25 июля 2017 г. 13:00:15(UTC)  | Причина: Не указана

Offline cross  
#19 Оставлено : 31 июля 2017 г. 13:56:23(UTC)
Анатолий Беляев

Статус: Сотрудник

Группы: Администраторы, Участники
Зарегистрирован: 24.11.2009(UTC)
Сообщений: 965
Откуда: Crypto-Pro

Сказал(а) «Спасибо»: 3 раз
Поблагодарили: 174 раз в 152 постах
Данные сертификата можно получить через метод GetInfo() с нужными параметрами.
Техническую поддержку оказываем тут.
Наша база знаний.
Наша страничка в Instagram.
Offline crypto7  
#20 Оставлено : 13 мая 2021 г. 11:42:58(UTC)
crypto7

Статус: Активный участник

Группы: Участники
Зарегистрирован: 07.05.2021(UTC)
Сообщений: 49
Российская Федерация
Откуда: NN

Сказал(а) «Спасибо»: 15 раз
Автор: Андрей * Перейти к цитате
1. Вы смотрели результат?
почему в base64 в каждой строке "\r\n"?

2. Чтобы получить сертификат - необходимо выполнить проверку подписи (.VerifyCades), тогда будут доступны Signers,



Signers object
Signers.Item


а у Signer - Signer.Certificate property
из которого можно получить необходимое.



Андрей, можете сориентировать, какие еще методы кроме Certificate, есть у свойства Signers.Item? Хотелось бы знать, что еще можно извлечь, например, у SignedData.Signers.Item[n]?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
3 Страницы<123>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.