Спасибо за ваш ответ.
Мой скрипт для создания ключа RSA, который я использовал OpenSSL с:
(Linux Script)
openssl genrsa -out ${NAME}_openssl.key 2048
openssl pkcs8 -topk8 -in ${NAME}_openssl.key -nocrypt > ${NAME}.key
openssl req -new -x509 -key ${NAME}.key -out ${NAME}.crt -outform DER
В C # нам нужен privateKey в формате XML. Я использовал этот парсер, чтобы сделать это.
Для расшифровки вызова нам нужно использовать:
byte[] challange = server.getChallenge();
RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider();
rsaProvider.FromXmlString(Demo.Properties.Resources.XmlPrivateKey);
byte[] plaintext = rsaProvider.Decrypt(challange, false);
Чтобы зашифровать сертификат сервера, нам нужно использовать:
RSACryptoServiceProvider rsaProvider = x509.PublicKey.Key as RSACryptoServiceProvider;
byte[] answer = RsaProvider.Encrypt(plaintext, false);
Спасибо за JavaScience Consulting