/// <summary> /// Creates a new RSA security key. /// </summary> /// <returns></returns> public static RsaSecurityKey CreateRsaSecurityKey() { var rsa = RSA.Create(); #if NET452 if (rsa.KeySize < 2048) { rsa.Dispose(); rsa = new RSACryptoServiceProvider(2048); } #endif RsaSecurityKey key = null; #if NET452 if (rsa is RSACryptoServiceProvider) { var parameters = rsa.ExportParameters(includePrivateParameters: true); key = new RsaSecurityKey(parameters); rsa.Dispose(); } #endif if (key == null) { key = new RsaSecurityKey(rsa); } key.KeyId = CryptoRandom.CreateUniqueId(16); return(key); }
/// <summary> /// Sets the temporary signing credential. /// </summary> /// <param name="builder">The builder.</param> /// <returns></returns> public static IIdentityServerBuilder AddTemporarySigningCredential(this IIdentityServerBuilder builder) { var rsa = RSA.Create(); #if NET452 if (rsa.KeySize < 2048) { rsa.Dispose(); rsa = new RSACryptoServiceProvider(2048); } #endif RsaSecurityKey key = null; #if NET452 if (rsa is RSACryptoServiceProvider) { var parameters = rsa.ExportParameters(includePrivateParameters: true); key = new RsaSecurityKey(parameters); rsa.Dispose(); } #endif if (key == null) { key = new RsaSecurityKey(rsa); } key.KeyId = CryptoRandom.CreateUniqueId(16); var credential = new SigningCredentials(key, "RS256"); return(builder.AddSigningCredential(credential)); }
/// <summary> /// Creates a new RSA security key. /// </summary> /// <returns></returns> public static RsaSecurityKey CreateRsaSecurityKey() { RSA rsa = RSA.Create(); RsaSecurityKey key; if (rsa is RSACryptoServiceProvider) { rsa.Dispose(); var cng = new RSACng(2048); var parameters = cng.ExportParameters(includePrivateParameters: true); key = new RsaSecurityKey(parameters); } else { rsa.KeySize = 2048; key = new RsaSecurityKey(rsa); } key.KeyId = CryptoRandom.CreateUniqueId(16); return(key); }