Проверка подписи JWT RSA256 выдает ошибку «Дополнительные данные найдены после объекта» - Bouncycastle - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь проверить входящий токен 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 была искажена, исправление, которое решило мою проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...