我需要在C#应用程序和微控制器(pic32mx795)之间实现加密。我遇到的问题是生成一个公钥和私钥对我正在使用RSACryptoServiceProvider,但我只能得到关键属性,而不是完整的公钥。
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
RSAParameters RSAKeyInfo = RSA.ExportParameters(false);
我无法为微控制器提供关键参数,因为它只接受密钥(以字节为单位)。有一个库可以执行此操作,但它只能在2012年11月的某个时间提供(SW300055)。我正在使用SW300052库在微控制器上执行加密(密钥大小限制为256位)。
我也在这个帖子中尝试了bouncycastle建议(generating keys and showing them in a text box)。它以PEM格式保存密钥。据我所知,密钥以base64格式保存。我已经指定密钥长度为是256位,但在将公钥转换回字节时,它是62字节。
byte[] encodedDataAsBytes = Convert.FromBase64String (publicKeyString);
我还查看了Microsoft的强名称工具(sn.exe),但它支持的最小密钥大小为384位。
有没有办法可以使用c#(或使用任何其他工具)生成公共私钥对并以纯文本/字节获取公钥?我最好使用对称密钥加密来加密会话密钥吗?