Используйте библиотеку Bouncy Castle с .NET Compact Framework - PullRequest
4 голосов
/ 28 июля 2011

Я пытаюсь использовать Bouncy Castle v1.7 на устройстве Windows Mobile 6.5.

Я пытаюсь выполнить следующий код:

ISigner signer = SignerUtilities.GetSigner("SHA256withRSA");

Использование двоичных файлов Bouncy Castle

На устройстве с Windows Mobile код вызывает следующее исключение:

"Эта версия сборки Microsoft .NET Compact Framework не может быть загружена версия системы сборки, версия = 1.0.5000.0, культура = нейтральная, PublicKeyToken = B77A5C561934E089."

В классическом настольном приложении (использующем всю платформу .NET) этот код выполняется без проблем.

Так что я предполагаю, что между Bouncy Castle и Compact Framework есть несовместимость. Однако на индексной странице Bouncy Castle C # написано « Source теперь основан на .NET Compact Framework 1.0 » для версии 1.2

Компиляция Bouncy Castle из исходного кода

Я также пытался скомпилировать Bouncy Castle из его исходного кода.
Я скомпилировал его с помощью Visual Studio 2008 (пришлось преобразовать проект и удалить классы, связанные с алгоритмом шифрования IDEA, на которые были ссылки, но отсутствующие) со следующими символами компиляции: NET_1_1; NETCF_2_0

Когда я ссылаюсь на DLL, полученную в результате компиляции, и запускаю код, упомянутый выше (на устройстве), я получаю следующее исключение:

"Метод не найден: GetSigner Org.BouncyCastle.Security.SignerUtilities."

Это кажется действительно странным, поскольку я получаю IntelliSense в Visual Studio во время кодирования.

Может кто-нибудь сказать мне, как запустить Bouncy Castle на Compact Framework 3.5?

Большое спасибо,
Christophe

1 Ответ

4 голосов
/ 29 июля 2011

Я создал необходимые файлы и разместил файлы SLN / CSPROJ в моем блоге .Я создал очень простое тестовое приложение, которое успешно создало экземпляр реализации ISigner.Это был мой потребительский код:

class Program
{
    static void Main(string[] args)
    {
        ISigner signer = SignerUtilities.GetSigner("SHA256withRSA"); 
    }
}
...