Статус: Активный участник
Группы: Участники
Зарегистрирован: 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 не соответствует выдранной подписи этого файла. Подскажите что не так делаю. Спасибо
|
|
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 14,190   Сказал «Спасибо»: 621 раз Поблагодарили: 2397 раз в 1886 постах
|
Автор: AndrewVL  Так же имеется уже подписанный файл. и к нему сформированная подпись. выдрана из XML документа с закупок. то что получается в sSignedMessage не соответствует выдранной подписи этого файла.
Подскажите что не так делаю.
Спасибо Различная подпись для одних и тех же данных |
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 22.01.2008(UTC) Сообщений: 675   Откуда: Йошкар-Ола Сказал «Спасибо»: 3 раз Поблагодарили: 95 раз в 68 постах
|
В дополнение ещё скажу, что стандартные компоненты от Крипто-Про поддерживают работу с подписями CAdES только до формата CAdES-X Long Type 1. То есть работать с подписью CAdES-A придётся собственными силами. |
С уважением, Юрий Строжевский |
 1 пользователь поблагодарил Юрий за этот пост.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 29.01.2010(UTC) Сообщений: 34
|
ок.
Тогда у меня возникает такой вопрос.
На рабочей машине стоит Криптопро, capicom и sign.cab. Плюс казначейская подпись.
С сайта получил XML документ, в котором содержится мой PDF и подпись к нему. Как с данным набором софта я подписал этот самый PDF и в свойствах подписи в XML документе стоит CADES-a?
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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. |
С уважением, Юрий Строжевский |
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 29.01.2010(UTC) Сообщений: 34
|
Ну из софта стоит только то, что перечислено )
не заметил в доке, что возможна еще CADES-BES.
Еще пару вопросов возникло по пути. 1. Как же все таки там образовалась CADES-A, если на рабочем компе стоит только capicom. Могу предположить, что только из sign.cab ) 2. Если я в приведенном коде поменяю параметр на CADESCOM_CADES_BES и подпишу - как мне проверить корректность и тип подписи? Я имею ввиду воспримет ли внешняя система эту подпись.
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 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. |
С уважением, Юрий Строжевский |
|
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close