public void SetRsaPublicKeyInformation(Dictionary <string, object> result, OfficeDocumentJsonWebKeyResponse jsonWebKey)
        {
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
            {
                using (var provider = new RSACryptoServiceProvider())
                {
                    provider.FromXmlStringNetCore(jsonWebKey.SerializedKey);
                    var rsaParameters = provider.ExportParameters(false);
                    // Export the modulus
                    var modulus = rsaParameters.Modulus.Base64EncodeBytes();
                    // Export the exponent
                    var exponent = rsaParameters.Exponent.Base64EncodeBytes();

                    result.Add("n", modulus);
                    result.Add("e", exponent);
                }
            }
            else
            {
                using (var provider = new RSAOpenSsl())
                {
                    provider.FromXmlStringNetCore(jsonWebKey.SerializedKey);
                    var rsaParameters = provider.ExportParameters(false);
                    // Export the modulus
                    var modulus = rsaParameters.Modulus.Base64EncodeBytes();
                    // Export the exponent
                    var exponent = rsaParameters.Exponent.Base64EncodeBytes();

                    result.Add("n", modulus);
                    result.Add("e", exponent);
                }
            }
        }
        public Dictionary <string, object> GetPublicKeyInformation(OfficeDocumentJsonWebKeyResponse jsonWebKey)
        {
            var result   = new Dictionary <string, object>();
            var enricher = _mappingKeyTypeAndPublicKeyEnricher[jsonWebKey.Kty];

            enricher(result, jsonWebKey);
            return(result);
        }
 public Dictionary <string, object> GetJsonWebKeyInformation(OfficeDocumentJsonWebKeyResponse jsonWebKey)
 {
     return(new Dictionary <string, object>
     {
         {
             "kty", "RSA"
         },
         {
             "use", "enc"
         },
         {
             "alg", "RS256"
         },
         {
             "kid", jsonWebKey.Kid
         }
     });
 }