2013-04-18 17 views
1

У меня есть пара открытых/закрытых ключей RSA, сгенерированных командой «ssh-keygen» на компьютере Linux. На этом Linux-компьютере есть приложение Ruby, которое шифрует строку с использованием этого открытого ключа, и я хочу использовать этот закрытый ключ для дешифрования строки в приложении Windows C# /. Net. Я безуспешно посмотрел на Bouncy Castle libs. Любой пример или подсказка будут полезны. Благодаря!Использовать существующие ключи RSA SSH для расшифровки текста в C#

+0

Ключи RSA в SSH используются только для подписи данных для проверки подлинности, а не для шифрования данных сеанса или даже для обмена ключами сеанса обмена. Использование их для шифрования данных - не совсем лучшая практика. –

ответ

-2

Есть ли причина использовать ключи ssh?

Любого ключа RSA было бы достаточно. Вам нужно извлечь ключ RSA для шифрования. И если этот ключ не является RSA, вы не можете шифровать что-либо, поскольку DSA является только сигнатурным алгоритмом. Существует RFC для открытых ключей: http://www.ietf.org/rfc/rfc4716.txt Это не совсем то, что вам нужно. Но может помочь вам понять, как извлечь каждую часть. Это должны быть только двоичные фрагменты с кодировкой base64.

Вы можете попробовать PuTTY источник http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html keygen может генерировать и преобразовывать эти ключи. Итак, если вы найдете место, где он извлекает ключ RSA. Затем используйте любую криптографическую библиотеку для вычисления RSA с использованием ключей и данных. С помощью правильных клавиш вы получите входные данные + дополнение. Зависит от того, использовался ли открытый или закрытый ключ рубиновой программой. Надеюсь, это поможет.

+0

Потому что я предпочитаю использовать открытые стандарты. Мой код Ruby (http://pastebin.com/1djhPRxN) отлично работает в обоих направлениях (шифрует и расшифровывает). Я хотел бы иметь те же результаты с моим кодом C# /. Net. – rebeldevel