Example #1
0
        internal static X509Certificate2 Prepare(string[] args)
        {
            const string installArgument = "--install-certificate";

            if (args?.FirstOrDefault() == installArgument)
            {
                AdminUtils.RewireConsoleOut <Program>();
                return(Install());
            }

            Console.Write("Preparing certificate ... ");

            X509Certificate2 testCertificate = Find(StoreName.My);

            if (testCertificate != null)
            {
                Console.WriteLine("Found");
                return(testCertificate);
            }

            Console.WriteLine("Missing");
            Console.WriteLine();
            Console.WriteLine("Installing certificate ... ");
            if (AdminUtils.IsAdministrator())
            {
                testCertificate = Install();
                Console.WriteLine("Done.");
            }
            else
            {
                AdminUtils.RunAsAdministrator <Program>(installArgument);
                testCertificate = Find(StoreName.My);
                Console.WriteLine(testCertificate != null ? "Done." : "Failed.");
            }

            return(testCertificate);
        }