Я пытаюсь проверить входящий токен JWT RSA256. NET core web api.
private TokenValidationParameters GetTokenValidationParameters(string key)
{
var rs256Token = key.Replace("-----BEGIN PUBLIC KEY-----", "");
rs256Token = rs256Token.Replace("-----END PUBLIC KEY-----", "");
rs256Token = rs256Token.Replace("\n", "");
var keyBytes = Convert.FromBase64String(rs256Token);
var asymmetricKeyParameter = PublicKeyFactory.CreateKey(keyBytes);
var rsaKeyParameters = (RsaKeyParameters)asymmetricKeyParameter;
var rsaParameters = new RSAParameters
{
Modulus = rsaKeyParameters.Modulus.ToByteArrayUnsigned(),
Exponent = rsaKeyParameters.Exponent.ToByteArrayUnsigned()
};
var rsa = new RSACryptoServiceProvider();
rsa.ImportParameters(rsaParameters);
var validationParameters = new TokenValidationParameters()
{
RequireExpirationTime = false,
RequireSignedTokens = true,
ValidateAudience = false,
ValidateIssuer = false,
IssuerSigningKey = new RsaSecurityKey(rsa),
};
return validationParameters;
}
Проблема в том, что в следующей строке я получаю дополнительные данные System.IO.IOException 'найдены после объекта ». Я не знаю, как это исправить, какая-нибудь помощь?
var asymmetricKeyParameter = PublicKeyFactory.CreateKey(keyBytes);
РЕДАКТИРОВАТЬ: входная строка keyBytes была искажена, исправление, которое решило мою проблему