Я хочу получить параметры RSAKey, чтобы проверить токен JWT, т.е. без использования надувного замка или какой-либо сторонней библиотеки. Я ищу много, но не могу найти ничего, что генерирует модуль и экспоненту, то есть часть RSAParameters.
Ниже приведен небольшой фрагмент кода, который я пробовал. Пожалуйста, дайте мне знать, если у вас есть предложения
string secret = "XXXXXXX";
string token = "XXXXXXX";
string[] parts = token.Split('.');
string header = parts[0];
string payload = parts[1];
var keyBytes = Convert.FromBase64String(secret); // your key here
var rsaKeyParameters = (RsaKeyParameters)PublicKeyFactory.CreateKey(keyBytes);//////I don't want to use this line of code as it is part of //////////third party library it only helps us in getting modulus and exponent
//////Please let me know any other way to achieve validation of JWT token if any
RSAParameters rsaParameters = new RSAParameters
{
Modulus = rsaKeyParameters.Modulus.ToByteArrayUnsigned(),
Exponent = rsaKeyParameters.Exponent.ToByteArrayUnsigned()
};
var rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaParameters);
byte[] hash = SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(header + '.' + payload));
var rsaDeformatter = new RSAPKCS1SignatureDeformatter(rsa);
rsaDeformatter.SetHashAlgorithm("SHA256");
bool isv = rsaDeformatter.VerifySignature(hash, FromBase64Url(parts[2]));
Console.WriteLine("is" + isv);