Ejemplo n.º 1
0
        private String SelectKey(NCryptStorageProvider provider)
        {
            String[] keyNames = provider.EnumKeys();

            int keyIndex = SelectFromMenu("Choose a key", keyNames);

            return(keyNames[keyIndex]);
        }
Ejemplo n.º 2
0
        private String SelectProvider()
        {
            String[] providerNames = NCryptStorageProvider.EnumProviders();

            int providerIndex = SelectFromMenu("Choose a Key Storage Provider", providerNames);

            return(providerNames[providerIndex]);
        }
Ejemplo n.º 3
0
        private void EnumerateProviders()
        {
            String[] providers = NCryptStorageProvider.EnumProviders();

            foreach (String provider in providers)
            {
                Console.WriteLine(provider);
            }
        }
Ejemplo n.º 4
0
 public CngHostAlgorithm(String providerName, String keyName)
     : base("ssh-rsa")
 {
     using (NCryptStorageProvider provider = new NCryptStorageProvider(providerName))
     {
         key = provider.OpenKey(keyName);
     }
     hashAlgorithm = new BCryptAlgorithmProvider("SHA1");
 }
Ejemplo n.º 5
0
 private void DeleteKey()
 {
     using (NCryptStorageProvider provider = new NCryptStorageProvider(SelectProvider()))
     {
         using (NCryptKey key = provider.OpenKey(SelectKey(provider)))
         {
             key.Delete();
         }
     }
 }
Ejemplo n.º 6
0
 private void ExportKey()
 {
     using (NCryptStorageProvider provider = new NCryptStorageProvider(SelectProvider()))
     {
         using (NCryptKey key = provider.OpenKey(SelectKey(provider)))
         {
             Console.WriteLine(key.ExportToOpenSSHFormat("ssh-rsa", ""));
         }
     }
 }
Ejemplo n.º 7
0
        private void EnumerateKeys()
        {
            using (NCryptStorageProvider provider = new NCryptStorageProvider(SelectProvider()))
            {
                String[] keyNames = provider.EnumKeys();

                foreach (String keyName in keyNames)
                {
                    Console.WriteLine(keyName);
                }
            }
        }
Ejemplo n.º 8
0
        private void CreateKey()
        {
            using (NCryptStorageProvider provider = new NCryptStorageProvider(SelectProvider()))
            {
                Console.WriteLine("Enter a name for the new key:");

                String keyName = Console.ReadLine();

                provider.OpenOrCreateKey(keyName);

                Console.WriteLine("Key \"{0}\" created.", keyName);
            }
        }
Ejemplo n.º 9
0
        private void Login()
        {
            String providerName = SelectProvider();
            String keyName;

            using (NCryptStorageProvider provider = new NCryptStorageProvider(providerName))
            {
                keyName = SelectKey(provider);
            }

            Console.WriteLine("Enter hostname:");
            String hostname = Console.ReadLine();

            if (hostname.Length == 0)
            {
                return;
            }

            Console.WriteLine("Enter username:"******"Logging into {0}@{1}...", username, hostname);

            using (SshClient client = new SshClient(hostname, username, new PrivateKeyCng(providerName, keyName)))
            {
                client.Connect();

                Console.WriteLine("Successfully connected to host.");

                client.RunCommand("echo 'Hello World!!'");

                client.Disconnect();
            }
        }