Проблема С Проверкой Подписи Через Capicom

Тема в разделе "Delphi - СОМ", создана пользователем Allegro, 5 сен 2014.

  1. Allegro

    Allegro Member
    Pascal Team

    Регистрация:
    29 авг 2007
    Сообщения:
    17
    Симпатии:
    1
    День добрый! У меня есть программа написанная на delphi 7, в ней производится подписание документов с помощью capicom. контент формируется следующим образом: SignedData.Content:=QryWhere.FieldByName('img2txt').AsVariant + DateToStr(sigDate);
    после чего без проблем заверяется ЭЦП. и есть другая программа написанная на Embarcadero RAD Studio XE2 в которой производится проверка подписи следующим образом:
    SignedData.Content:= VarToStr(ADOQ1.FieldByName('img2txt').AsVariant)+VarToStr(ADOQ1.FieldByName('DataSigA').AsString);
    SignedData.Verify(Sig, true, 0);

    при выполнении проверки вылетает неправильное значение Хеша.
    Помогите пожалуйста реализовать грамотно проверку подписи, что бы не вылетало ошибок
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Я не экстрасенс и кто такой у Вас SignedData.Content могу только догадываться... но подозреваю лажа вот тут
    Код (Delphi):
     + VarToStr(ADOQ1.FieldByName('DataSigA').AsString);
    Либо поле берите как тип variant: VarToStr(ADOQ1.FieldByName('DataSigA').AsVariant)
    Либо функцию VarToStr использовать не нужно.
    Код (Delphi):
    SignedData.Content:= VarToStr(ADOQ1.FieldByName('img2txt').AsVariant)+ADOQ1.FieldByName('DataSigA').AsString;
    Правда если у компилятора включена оптимизация, такое Ваше "нахальство" он может и подправить тихонько.
    Ну тогда подозреваю что дело в строковом типе.
    В Delphi 7 тип string это AnsiString (однобайтные символы) а в XE2 string это WideString (два байта на один символ).
    Т.е. при одинаковом строковом содержании (например строка "Привет ХиТРый;)") длина в байтах у нее будет разная (для XE2 в два раза длиннее чем в Delphi 7).
    Соответственно функция считающая Хеш даст разные результаты.
     
Загрузка...
Похожие Темы - Проблема Проверкой Подписи
  1. AgniXRudra
    Ответов:
    2
    Просмотров:
    52
  2. Zloikaktus
    Ответов:
    0
    Просмотров:
    30
  3. c0de3r
    Ответов:
    5
    Просмотров:
    153
  4. DobermannTT
    Ответов:
    10
    Просмотров:
    158
  5. SoulPaladin
    Ответов:
    4
    Просмотров:
    144

Поделиться этой страницей