Преобразование из общедоступного Microsoft.Идентификационная модель.Жетоны.JsonWebKey.JsonWebKey для RSAParameters (Открытый ключ)

#c# #asp.net-core #rsa #.net-5 #jwk

Вопрос:

По сути, я хочу преобразовать общедоступный Microsoft.Идентификационная модель.Жетоны.JsonWebKey.JsonWebKey для RSAParameters для последующего использования в экземпляре RSA. После этого я создаю JsonWebKey Azure KeyVault, чтобы импортировать этот ключ в свое хранилище. В настоящее время я пробовал это, однако не смог заставить это работать. Какие-либо рекомендации/ярлыки?

 var jwk = new JsonWebKey(someStr); // IdentityModel.Tokens...

var rsaParams = new RSAParameters
{
    Modulus = WebEncoders.Base64UrlDecode(jwk.N),
    Exponent = WebEncoders.Base64UrlDecode(jwk.E)
};

var rsa = RSA.Create(rsaParams);
var key = new JsonWebKey(rsa); // Azure.Security.KeyVault.Keys
....
var kvKey = keyClient.ImportKey(keyName, key); // keyClient = KeyClient class
 

Ошибка, которую я получаю от этого запроса, заключается в следующем:

 RSA key is not valid - cannot instantiate crypto service