Esempio n. 1
0
        private static PSCredential ReadMacOSKeyChainEntry(string name)
        {
            var    cmd      = $"/usr/bin/security find-generic-password -s '{name}'";
            var    output   = Shell.Bash(cmd);
            string username = null;
            string password = null;

            foreach (var line in output)
            {
                if (line.Trim().StartsWith(@"""acct"""))
                {
                    var acctline = line.Trim().Split(new string[] { "<blob>=" }, StringSplitOptions.None);
                    username = acctline[1].Trim(new char[] { '"' });
                }
            }
            cmd    = $"/usr/bin/security find-generic-password -s '{name}' -w";
            output = Shell.Bash(cmd);
            if (output.Count == 1)
            {
                password = output[0];
            }
            if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
            {
                return(new PSCredential(username, StringToSecureString(password)));
            }
            return(null);
        }
Esempio n. 2
0
        private static bool DeleteMacOSKeyChainEntry(string name)
        {
            var cmd     = $"/usr/bin/security delete-generic-password -s '{name}'";
            var output  = Shell.Bash(cmd);
            var success = output.Count > 1 && !output[0].StartsWith("security:");

            return(success);
        }
Esempio n. 3
0
 public void ShellBashTest()
 {
     if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
     {
         // Simple test
         var result = Shell.Bash("whoami");
         Assert.IsTrue(result.Any());
     }
 }
Esempio n. 4
0
        private static void WriteMacOSKeyChainEntry(string applicationName, string username, SecureString password, bool overwrite)
        {
            var pw  = SecureStringToString(password);
            var cmd = $"/usr/bin/security add-generic-password -a '{username}' -w '{pw}' -s '{applicationName}'";

            if (overwrite)
            {
                cmd += " -U";
            }
            Shell.Bash(cmd);
        }