Мне нужно получить байты моего открытого ключа RSA в формате DER и отправить этот ключ в API.Затем этот API отправит мне что-то зашифрованное с использованием этого открытого ключа, и мне нужно его расшифровать.
Первая проблема, похоже, что C # не имеет возможности экспортировать ключи RSA в формате DER.Так что, похоже, мне приходится полагаться на сторонние пакеты, такие как BouncyCastle.Я также нашел способ создания и экспорта моего открытого ключа в формате DER с помощью этого пакета:
var generator = new RsaKeyPairGenerator();
generator.Init(new KeyGenerationParameters(new SecureRandom(), 2048));
var keyPair = generator.GenerateKeyPair();
var publicKeyParam = (RsaKeyParameters)keyPair.Public;
var publicKey = SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(publicKeyParam).GetDerEncoded();
Так что теперь мне нужно было только кодировать эти байты Base64 и отправить его в API, и API рад,Но теперь я застрял, пытаясь понять, как я могу расшифровать полученные данные.Прежде всего, я декодировал строку base64, и теперь я застрял в байтах данных.Я могу получить закрытый ключ от "вещи" BouncyCastle, но я не могу преобразовать его в RsaCryptoServiceProvider правильно, и документация BouncyCastle довольно странная.Если у кого-то есть идея или другой подход, я был бы более чем счастлив.