Генерация параметра RSA KEY из секретного ключа без использования надувного замка или сторонней библиотеки - PullRequest
0 голосов
/ 07 января 2019

Я хочу получить параметры 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...