public int Execute() { if (string.IsNullOrEmpty(OutputPath)) { Console.WriteLine("No output file specified/"); _opts.WriteOptionDescriptions(Console.Error); return(1); } if (string.IsNullOrEmpty(Name)) { Console.WriteLine("No key specified"); _opts.WriteOptionDescriptions(Console.Error); return(1); } if (false == OutputPath.EndsWith(".pfx", StringComparison.InvariantCultureIgnoreCase)) { OutputPath += ".pfx"; } CngKey key; using (var finder = new KeyFinder()) { if (finder.Find(Name, out key)) { WritePrivateKey(key); return(0); } return(2); } }
public int Execute() { if (!Options.Valid) { WriteHelp(Console.Out); return(1); } try { CngKey key; var finder = new KeyFinder(); if (string.IsNullOrEmpty(Options.Anything)) { if (finder.Find(Options.Name, Options.UniqueId, out key)) { Console.WriteLine("Found key " + Options.Name ?? Options.UniqueId); Console.WriteLine("\t algorithm: " + key.Algorithm); Console.WriteLine("\t keysize: " + key.KeySize); Console.WriteLine("\t usages: " + key.KeyUsage); Console.WriteLine("\t uniquename: " + key.UniqueName); } } else if (finder.Find(Options.Anything, out key)) { Console.WriteLine("Found key " + Options.Name ?? Options.UniqueId); Console.WriteLine("\t algorithm: " + key.Algorithm); Console.WriteLine("\t keysize: " + key.KeySize); Console.WriteLine("\t usages: " + key.KeyUsage); Console.WriteLine("\t uniquename: " + key.UniqueName); } return(2); } catch (Exception e) { Console.WriteLine(e.Message); return(3); } }
public int Execute() { if (string.IsNullOrEmpty(Name)) { Console.WriteLine("Key name must be specified"); return(1); } if (!Principals.Any()) { Console.WriteLine("No usernames were provided"); return(1); } CngKey key; using (var finder = new KeyFinder()) { if (finder.Find(Name, out key)) { try { var path = @"C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\Keys\" + key.UniqueName; var file = new FileInfo(path); var policy = file.GetAccessControl(); foreach (var principal in Principals) { var rule = new FileSystemAccessRule(principal, FileSystemRights.ReadAndExecute, InheritanceFlags.None, PropagationFlags.NoPropagateInherit, AccessControlType.Allow); policy.AddAccessRule(rule); } file.SetAccessControl(policy); Console.WriteLine("Access granted successfully"); return(0); } catch (Exception e) { Console.WriteLine(e.Message); return(3); } } return(2); } }
public int Execute() { if (string.IsNullOrEmpty(Name)) { WriteHelp(Console.Error); return(1); } CngKey key; var finder = new KeyFinder(); try { if (finder.Find(Name, out key)) { key.Delete(); Console.WriteLine("Key " + Name + " deleted successfully"); } else { return(2); } return(0); } catch (Exception e) { Console.WriteLine(e.Message); return(3); } finally { finder.Dispose(); } }
public int Execute() { if (!Options.Valid) { WriteHelp(Console.Out); return 1; } try { CngKey key; var finder = new KeyFinder(); if(string.IsNullOrEmpty(Options.Anything)) { if (finder.Find(Options.Name, Options.UniqueId, out key)) { Console.WriteLine("Found key " + Options.Name ?? Options.UniqueId); Console.WriteLine("\t algorithm: " + key.Algorithm); Console.WriteLine("\t keysize: " + key.KeySize); Console.WriteLine("\t usages: " + key.KeyUsage); Console.WriteLine("\t uniquename: " + key.UniqueName); } } else if (finder.Find(Options.Anything, out key)) { Console.WriteLine("Found key " + Options.Name ?? Options.UniqueId); Console.WriteLine("\t algorithm: " + key.Algorithm); Console.WriteLine("\t keysize: " + key.KeySize); Console.WriteLine("\t usages: " + key.KeyUsage); Console.WriteLine("\t uniquename: " + key.UniqueName); } return 2; } catch (Exception e) { Console.WriteLine(e.Message); return 3; } }