Статус: Новичок
Группы: Участники
Зарегистрирован: 20.07.2010(UTC) Сообщений: 6 Откуда: РБ
|
Привет! Требуется выделить тело сообщения из файла, подписанного ЭЦП Предполагаю, что файл состоит из [заголовок ЭЦП+сообщение+"хвост ЭЦП"] Ранее путем перебора нашел в заголовке нужные байты для определения длины для одной определенной ЭЦП (ИФНС) - но для другой ЭЦП (ПФР) заголовок короче... Перерыл инет в поисках описания заголовка - увы, нет. Или пока не совсем в теме. Не подскажите ли куда рыть.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
Если подпись в формате CMS, то рыть в сторону RFC5652. Но лучше эту операцию производить через CryptoAPI. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.07.2010(UTC) Сообщений: 6 Откуда: РБ
|
Kirill Sobolev написал:Если подпись в формате CMS, то рыть в сторону RFC5652. Но лучше эту операцию производить через CryptoAPI. Спасибо, Кирилл. Точно так - CMS, нарыл таки сам - нашел даже программы-арбитры по теме. Проблема моя в том, что Такском использует древнюю схему хранения данных - для налогового представителя обработка двух-трех тысяч отчетов невозможна. Пишем свои прилады. Еще раз спасибо
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.07.2010(UTC) Сообщений: 6 Откуда: РБ
|
Привет всем! Поиски привели чайника к пониманию ASN.1 - собственно все решено за нас давным-давно толковыми ребятами - например Project : Ararat Synapse - там есть asn1util.pas (Delphi) or http://www.cs.auckland.ac.nz/~pgut001/dumpasn1.cКирилл, а книга по теме Вашего предприятия будет? Или уже есть?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 25.12.2007(UTC) Сообщений: 1,732 Откуда: КРИПТО-ПРО Поблагодарили: 177 раз в 168 постах
|
По какой именно теме? Разработка и встраивание СКЗИ? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.07.2010(UTC) Сообщений: 6 Откуда: РБ
|
Kirill Sobolev написал:По какой именно теме? Разработка и встраивание СКЗИ? Описание технологии с точки зрения программера. Лично для меня все это черный ящик - как и любое криптование - но так и должно быть. Даже перевод сопутствующих RFC поможет - куплю!!!
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 20.07.2010(UTC) Сообщений: 6 Откуда: РБ
|
Здесь решение вопроса - потребовался небольшой напильник Ранее писал, что нужный код в http://www.ararat.cz/synapse/допишем так: 1. Добавим BlobFile:TMemoryStream // initialization - Create;finalization-Free 2. в процедуре ASNdump добавим флаг setBlob Применение procedure TForm4.Button1Click(Sender: TObject); var f:TFileStream; s:AnsiString; begin if OpenDialog1.Execute then begin f:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead); try SetLength(s,f.Size); f.Read(s[1],f.Size); memo1.Lines.Text:=ASNdump(s); Viewer.LoadFromStream(BlobFile); finally f.Free; s:=''; end; end; end; unit asn1util; ..... var BlobFile:TMemoryStream; // Здесь может быть все Memo, Binary, ets implementation {==============================================================================} function ASNdump(const Value: AnsiString): AnsiString; var i, at, x, n: integer; s, indent: AnsiString; il: TStringList; setBlob:boolean; begin setBlob:=false; // флаг наличия "тела сообщения" ............... ............... if IsBinaryString(s) then // здесь оно и должно быть begin if (at=ASN1_OCTSTR) and not SetBlob then // ASN1_OCTSTR - наш признак begin BlobFile.Write(s[1],length(s)); SetBlob:=true; // наличие и запись в trye end; s := DumpExStr(s); end; Result := Result + s; end; Result := Result + #$0d + #$0a; end; finally il.Free; BlobFile.Position:=0; // здесь понятно end; end; {==============================================================================} initialization BlobFile:=TMemoryStream.Create; finalization BlobFile.Free end. end.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close