Пример #1
0
        public static string[] GenerateKeyPair(string output_path, string key_name)
        {
            key_name += ".key";
            string key_file_path = Path.Combine (output_path, key_name);

            if (File.Exists (key_file_path)) {
                SparkleLogger.LogInfo ("Auth", "A key pair exists ('" + key_name + "'), leaving it untouched");
                return new string [] { key_file_path, key_file_path + ".pub" };
            }

            string computer_name = System.Net.Dns.GetHostName ();

            if (computer_name.EndsWith (".local"))
                computer_name = computer_name.Substring (0, computer_name.Length - 6);

            string arguments = "-t rsa " + // crypto type
                "-P \"\" " + // empty password
                "-C \"" + computer_name + "\" " + // key comment
                "-f \"" + key_name + "\""; // file name

            SparkleKeyProcess process = new SparkleKeyProcess ("ssh-keygen", arguments);
            process.StartInfo.WorkingDirectory = output_path;
            process.Start ();
            process.WaitForExit ();

            if (process.ExitCode == 0)
                SparkleLogger.LogInfo ("Auth", "Created keypair '" + key_file_path + "'");
            else
                SparkleLogger.LogInfo ("Auth", "Could not create key pair '" + key_file_path + "'");

            return new string [] { key_file_path, key_file_path + ".pub" };
        }
Пример #2
0
        public static void ListPrivateKeys()
        {
            SparkleKeyProcess process = new SparkleKeyProcess ("ssh-add", "-l");
            process.Start ();
            string keys_in_use = process.StandardOutput.ReadToEnd ();
            process.WaitForExit ();

            SparkleLogger.LogInfo ("Auth", "The following keys may be used:\n" + keys_in_use.Trim ());
        }
Пример #3
0
        public static void ImportPrivateKey(string key_file_path)
        {
            SparkleKeyProcess process = new SparkleKeyProcess ("ssh-add", "\"" + key_file_path + "\"");
            process.Start ();
            process.WaitForExit ();

            if (process.ExitCode == 0)
                SparkleLogger.LogInfo ("Auth", "Imported key '" + key_file_path + "'");
            else
                SparkleLogger.LogInfo ("Auth", "Could not import key '" + key_file_path + "'");
        }
Пример #4
0
        public static void ListPrivateKeys()
        {
            SparkleKeyProcess process = new SparkleKeyProcess("ssh-add", "-l");

            process.Start();
            string keys_in_use = process.StandardOutput.ReadToEnd();

            process.WaitForExit();

            SparkleLogger.LogInfo("Auth", "The following keys may be used:\n" + keys_in_use.Trim());
        }
Пример #5
0
        public static void ImportPrivateKey (string key_file_path)
        {
            // Use forward slashes when dealing with Windows domain accounts
            if (key_file_path.StartsWith ("\\\\"))
                key_file_path = key_file_path.Replace ("\\", "/");

            SparkleKeyProcess process = new SparkleKeyProcess ("ssh-add", "\"" + key_file_path + "\"");
            process.Start ();
            process.WaitForExit ();

            if (process.ExitCode == 0)
                SparkleLogger.LogInfo ("Auth", "Imported key '" + key_file_path + "'");
            else
                SparkleLogger.LogInfo ("Auth", "Could not import key '" + key_file_path + "', " +
                    process.StandardError.ReadToEnd ());
        }
Пример #6
0
        public static void ImportPrivateKey(string key_file_path)
        {
            SparkleKeyProcess process = new SparkleKeyProcess("ssh-add", "\"" + key_file_path + "\"");

            process.Start();
            process.WaitForExit();

            if (process.ExitCode == 0)
            {
                SparkleLogger.LogInfo("Auth", "Imported key '" + key_file_path + "'");
            }
            else
            {
                SparkleLogger.LogInfo("Auth", "Could not import key '" + key_file_path + "'");
            }
        }
Пример #7
0
        public static string [] GenerateKeyPair(string output_path, string key_name)
        {
            key_name += ".key";
            string key_file_path = Path.Combine(output_path, key_name);

            if (File.Exists(key_file_path))
            {
                SparkleLogger.LogInfo("Auth", "A key pair exists ('" + key_name + "'), leaving it untouched");
                return(new string [] { key_file_path, key_file_path + ".pub" });
            }

            string computer_name = System.Net.Dns.GetHostName();

            if (computer_name.EndsWith(".local"))
            {
                computer_name = computer_name.Substring(0, computer_name.Length - 6);
            }

            string arguments = "-t rsa " +                                      // crypto type
                               "-b 4096 " +                                     // key size
                               "-P \"\" " +                                     // empty password
                               "-C \"" + computer_name + " (SparkleShare)\" " + // key comment
                               "-f \"" + key_name + "\"";                       // file name

            SparkleKeyProcess process = new SparkleKeyProcess("ssh-keygen", arguments);

            process.StartInfo.WorkingDirectory = output_path;
            process.Start();
            process.WaitForExit();

            if (process.ExitCode == 0)
            {
                SparkleLogger.LogInfo("Auth", "Created keypair '" + key_file_path + "'");
            }
            else
            {
                SparkleLogger.LogInfo("Auth", "Could not create key pair '" + key_file_path + "'");
            }

            return(new string [] { key_file_path, key_file_path + ".pub" });
        }
Пример #8
0
        public static void ImportPrivateKey(string key_file_path)
        {
            // Use forward slashes when dealing with Windows domain accounts
            if (key_file_path.StartsWith("\\\\"))
            {
                key_file_path = key_file_path.Replace("\\", "/");
            }

            SparkleKeyProcess process = new SparkleKeyProcess("ssh-add", "\"" + key_file_path + "\"");

            process.Start();
            process.WaitForExit();

            if (process.ExitCode == 0)
            {
                SparkleLogger.LogInfo("Auth", "Imported key '" + key_file_path + "'");
            }
            else
            {
                SparkleLogger.LogInfo("Auth", "Could not import key '" + key_file_path + "', " +
                                      process.StandardError.ReadToEnd());
            }
        }