public static List <RSA> GetAllPrivateKeys() { List <RSA> output = new List <RSA>(); EncryptionSettings settings = EncryptionSettings.GetEncryptionSettings(); if (settings == null) { Trace.WriteLine("No encryption setting found in config file"); return(output); } foreach (KeySettings keyinfo in settings.RSAKeys) { if (!String.IsNullOrEmpty(keyinfo.PrivateKey)) { Trace.WriteLine("Loading key " + keyinfo.Name); RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); try { RSAKeyExtensions.FromXmlStringDotNetCore2(RSA, keyinfo.PrivateKey); } catch (Exception ex) { throw new PingCastleException("Unable to load the key \"" + keyinfo.Name + "\"", ex); } output.Add(RSA); } } return(output); }
public static RSA GetRSAEncryptionKey() { EncryptionSettings settings = EncryptionSettings.GetEncryptionSettings(); string EncryptionKey = settings.EncryptionKey; if (String.IsNullOrEmpty(EncryptionKey)) { foreach (KeySettings keyinfo in settings.RSAKeys) { if (!String.IsNullOrEmpty(keyinfo.PublicKey)) { RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); RSAKeyExtensions.FromXmlStringDotNetCore2(RSA, keyinfo.PublicKey); return(RSA); } if (!String.IsNullOrEmpty(keyinfo.PrivateKey)) { RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); RSAKeyExtensions.FromXmlStringDotNetCore2(RSA, keyinfo.PrivateKey); return(RSA); } } throw new PingCastleException("No encryption key set in config file"); } else { foreach (KeySettings keyinfo in settings.RSAKeys) { if (keyinfo.Name == EncryptionKey) { RSACryptoServiceProvider RSA = new RSACryptoServiceProvider(); if (!String.IsNullOrEmpty(keyinfo.PublicKey)) { RSAKeyExtensions.FromXmlStringDotNetCore2(RSA, keyinfo.PublicKey); } else if (!String.IsNullOrEmpty(keyinfo.PrivateKey)) { RSAKeyExtensions.FromXmlStringDotNetCore2(RSA, keyinfo.PrivateKey); } else { throw new PingCastleException(@"The container """ + EncryptionKey + @""" does not contain a public or a private key"); } return(RSA); } } } throw new PingCastleException("Encryption key not found (name:" + EncryptionKey + ")"); }