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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline AndrewVL  
#1 Оставлено : 3 апреля 2014 г. 16:55:28(UTC)
AndrewVL

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

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

Здравствуйте.

В криптографии не силен. Поэтому может быть вопрос будет казаться странным )

Имеется.
1. Казначейская подпись
2. Файл
3. Delphi 7
4. Импортированные в Дельфи CAPICOM и CADESCOM

Необходимо его с помощью этой подписи подписать (может некорректно выражусь) в формате CADES-a.

Делаю так.

Код:


var
  oStore,oCertificates,Certificates,oCertificate,oSigner,oSignedData:variant;
  sSignedMessage:string;
  s,s1:string;
  instream,outstream:TFileStream;
  ss:TStringstream;
  ws:Widestring;
begin
  s:='c:\cades\1111111.pdf';
  s1:='c:\cades\1111111.64';
  instream := TFileStream.Create(s, fmOpenRead);
  outstream := TFileStream.Create(s1, fmCreate);
  EncodeStream(instream,outstream); // Base64
  ss:=TStringstream.create('');
  outstream.position:=0;
  ss.copyfrom(outstream,outstream.size);


  instream.free;
  outstream.free;

   oStore := CreateOLEObject('CAPICOM.Store');
   oStore.Open (2, 'My', 0);//(CAPICOM_CURRENT_USER_STORE, CAPICOM_MY_STORE, CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED);
   oCertificates := oStore.Certificates;//.Find(CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME, certSubjectName);
   Certificates := oCertificates.Select('Nieneie na?oeoeeaoia', 'Auaa?eoa na?oeoeeao aey iiaiene aieoiaioa:');

   if (Certificates.Count = 0) then
   begin
       application.messagebox('1','');
       exit; 
   end;

   oCertificate := Certificates.Item[1];
   oSigner := CreateOLEObject('CAdESCOM.CPSigner');
   oSigner.Certificate := oCertificate;

   oSignedData := CreateOLEObject('CAdESCOM.CadesSignedData');
   oSignedData.ContentEncoding := CADESCOM_BASE64_TO_BINARY;
   oSignedData.Content := ss.datastring;
   sSignedMessage :='';
        try
            sSignedMessage := oSignedData.SignCades(oSigner, CADESCOM_CADES_BES, true);
        finally
            oStore.Close();
        end;

end;




Так же имеется уже подписанный файл. и к нему сформированная подпись. выдрана из XML документа с закупок.
то что получается в sSignedMessage не соответствует выдранной подписи этого файла.

Подскажите что не так делаю.

Спасибо
Offline Андрей Писарев  
#2 Оставлено : 3 апреля 2014 г. 20:04:34(UTC)
Андрей *

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

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

Сказал «Спасибо»: 621 раз
Поблагодарили: 2397 раз в 1886 постах
Автор: AndrewVL Перейти к цитате

Так же имеется уже подписанный файл. и к нему сформированная подпись. выдрана из XML документа с закупок.
то что получается в sSignedMessage не соответствует выдранной подписи этого файла.

Подскажите что не так делаю.

Спасибо



Различная подпись для одних и тех же данных
Техническую поддержку оказываем тут
Наша база знаний
Offline Юрий  
#3 Оставлено : 3 апреля 2014 г. 22:05:18(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 675
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
В дополнение ещё скажу, что стандартные компоненты от Крипто-Про поддерживают работу с подписями CAdES только до формата CAdES-X Long Type 1.
То есть работать с подписью CAdES-A придётся собственными силами.
С уважением,
Юрий Строжевский
thanks 1 пользователь поблагодарил Юрий за этот пост.
Андрей * оставлено 03.04.2014(UTC)
Offline AndrewVL  
#4 Оставлено : 4 апреля 2014 г. 9:30:30(UTC)
AndrewVL

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

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

ок.

Тогда у меня возникает такой вопрос.

На рабочей машине стоит Криптопро, capicom и sign.cab.
Плюс казначейская подпись.

С сайта получил XML документ, в котором содержится мой PDF и подпись к нему.
Как с данным набором софта я подписал этот самый PDF и в свойствах подписи в XML документе стоит CADES-a?
Offline Юрий  
#5 Оставлено : 4 апреля 2014 г. 10:17:56(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 675
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Автор: AndrewVL Перейти к цитате
ок.

Тогда у меня возникает такой вопрос.

На рабочей машине стоит Криптопро, capicom и sign.cab.
Плюс казначейская подпись.

С сайта получил XML документ, в котором содержится мой PDF и подпись к нему.
Как с данным набором софта я подписал этот самый PDF и в свойствах подписи в XML документе стоит CADES-a?

Давайте я вам сделаю набор софта, который будет ставить в свойство XML документа "CAdES-B"? :)
А если серьёзно: обращайтесь к производитель того софта, которым подписали. Стандартный компонент от Крипто-Про работает только с подписями вплоть до CAdES-X Long Type 1.
С уважением,
Юрий Строжевский
Offline AndrewVL  
#6 Оставлено : 4 апреля 2014 г. 10:33:26(UTC)
AndrewVL

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

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

Ну из софта стоит только то, что перечислено )

не заметил в доке, что возможна еще CADES-BES.

Еще пару вопросов возникло по пути.
1. Как же все таки там образовалась CADES-A, если на рабочем компе стоит только capicom. Могу предположить, что только из sign.cab )
2. Если я в приведенном коде поменяю параметр на CADESCOM_CADES_BES и подпишу - как мне проверить корректность и тип подписи? Я имею ввиду воспримет ли внешняя система эту подпись.
Offline Юрий  
#7 Оставлено : 4 апреля 2014 г. 10:41:44(UTC)
Юрий

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

Группы: Участники
Зарегистрирован: 22.01.2008(UTC)
Сообщений: 675
Мужчина
Российская Федерация
Откуда: Йошкар-Ола

Сказал «Спасибо»: 3 раз
Поблагодарили: 95 раз в 68 постах
Автор: AndrewVL Перейти к цитате
Ну из софта стоит только то, что перечислено )

не заметил в доке, что возможна еще CADES-BES.

Еще пару вопросов возникло по пути.
1. Как же все таки там образовалась CADES-A, если на рабочем компе стоит только capicom. Могу предположить, что только из sign.cab )
2. Если я в приведенном коде поменяю параметр на CADESCOM_CADES_BES и подпишу - как мне проверить корректность и тип подписи? Я имею ввиду воспримет ли внешняя система эту подпись.

Ещё раз - обращайтесь к производителю того софта, которым подписали. Очень даже может быть, что в "sign.cab" находится полноценный объект работы с подписями вида CAdES-A.
С уважением,
Юрий Строжевский
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.