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 } }); }