Мне нужно реализовать шифрование между приложением C# и микроконтроллером (pic32mx795). Проблема, с которой я сталкиваюсь, создает пару открытых и закрытых ключей. Я использую RSACryptoServiceProvider, но я могу получить только ключевые атрибуты, а не полный открытый ключ.Создание открытых и закрытых пар ключей в C# и сохранение открытого ключа в виде простого текста
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAParameters RSAKeyInfo = RSA.ExportParameters(false);
Я не могу предоставить микроконтроллеру параметры ключа, так как он принимает только ключ (как байты). Существует библиотека, которая сможет это сделать, но она будет доступна только в ноябре 2012 года (SW300055). Я использую библиотеку SW300052 для выполнения шифрования на микроконтроллере (размер ключа ограничен 256 битами).
Я также пробовал предложение bouncycastle в этой теме (generating keys and showing them in a text box).Это сохраняет ключи в формате PEM. Из того, что я понимаю, ключи сохраняются в формате base64. Я указал, что длина ключа составляет 256 бит но при преобразовании открытого ключа обратно в байты, составляет 62 байт.
byte[] encodedDataAsBytes = Convert.FromBase64String (publicKeyString);
Я также посмотрел на инструменте Strong Названия компании Microsoft (sn.exe), но минимальный размер ключа он поддерживает составляет 384 бит.
Есть ли способ, которым я могу сгенерировать пару открытого частного ключа и получить открытый ключ в виде обычного текста/байта с помощью C# (или с любым другим л)? Мне просто лучше использовать симметричное шифрование ключей для шифрования ключа сеанса?