Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 611

/ вопрос открыт /

Здравствуйте!
Серверное приложение имеет статический RSA ключ. Клиентское приложение знает его открытый ключ. Генерирует свои ключи, и свой открытый ключ отсылает серверу в сообщении зашифрованном ключом сервера. Прием сообщения и его дешифровка происходят нормально, однако при попытке положить ключ в хранилище серверное приложение сбоит и клиент теряет с ним связь.

Вопрос по коду: А правильно ли я записываю ключ клиента?

P.S. Периодически при дебаге вижу такую ошибку RSA decoding error: Invalid block format. Почему одна и та же строка может вызывать или не вызывать данную ошибку?

Приложение:
  1.  
  2. begin
  3.  
  4. Client.RSA.KeySize:=TAsynmKeySize(aks128);
  5. end;
  6.  
  7.  
  8.  
  9.  
  10. Client.RSA.PublicKey.ExponentAsString:=KeyParser(DecryptedMessage,2);


firstvirus Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: firstvirus (статус: 1-ый класс)
Вопрос отправлен: 1 сентября 2011, 23:15
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 2; последнее сообщение — 2 сентября 2011, 10:10; участников в обсуждении: 2.
Вадим К

Вадим К (статус: Академик), 2 сентября 2011, 00:11 [#1]:

Ну раз сбоит запись код, который парсит - его и нужно показывать. А не общий код. Также, проверяете ли Вы, что данные пришли правильные и в полном объеме? можно к примеру, для готовых к отправке на сервер данных сосчитать crc32, а на сервере его проверить. Если они не совпадают, тогда проблема в сетевой подсистеме.
Галочка "подтверждения прочтения" - вселенское зло.
firstvirus

firstvirus (статус: 1-ый класс), 2 сентября 2011, 10:10 [#2]:

Log.Lines.Add('Расшифрованное сообщение: '+DecryptedMessage);

Этой строчкой проверял правильно ли пришел ключ. Ключ приходит правильно, парсится тоже правильно, опять же проверял при помощи лога.

Client.RSA.PublicKey.ModulusAsString:=KeyParser(DecryptedMessage,1);

Эту строчку менял на:
parsed:=KeyParser(DecryptedMessage,1);
Client.RSA.PublicKey.ModulusAsString:=parsed;
Сбоило именно на присвоении строки с ключем.
Кодер второго поколения.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:40
Выполнено за 0.02 сек.