Создать RSA из JWK -. Net Core 3 выпуск - PullRequest
0 голосов
/ 17 апреля 2020

Я конвертирую JWK в RSA, используя код ниже. Кажется, это работает в. net ядре 2, но преобразование JWK в RSA в. net ядре 3 выдает ошибку во время выполнения:

Ошибка: System.Security.Cryptography.CryptographicException: «Указанные параметры RSA недействительны; и Exponent, и Modulus являются обязательными полями. '

Дана ошибка

Есть ли альтернатива этому?

private RSA GetRSAKeyfromJWK(JwkKey jwk)
    {
        byte[] p = Base64Url.Decode(jwk.p);
        byte[] q = Base64Url.Decode(jwk.q);
        byte[] d = Base64Url.Decode(jwk.d);
        byte[] e = Base64Url.Decode(jwk.e);
        byte[] qi = Base64Url.Decode(jwk.qi);
        byte[] dq = Base64Url.Decode(jwk.dq);
        byte[] dp = Base64Url.Decode(jwk.dp);
        byte[] n = Base64Url.Decode(jwk.n);

        RSA rsaKey = RSA.Create();
        RSAParameters keyParams = new RSAParameters
        {
            D = d,
            DP = dp,
            DQ = dq,
            Exponent = e,
            InverseQ = qi,
            Modulus = n,
            P = p,
            Q = q
        };

        rsaKey.ImportParameters(keyParams);

        return rsaKey;
    }
...