Ejemplo n.º 1
0
        public void CreateProblemKey()
        {
            string userAgent = Util.GetUserAgent();
            var    certes    = new Certify.Providers.Certes.CertesACMEProvider(Util.GetAppDataFolder() + "\\certes", userAgent);

            bool keyFound = false;

            newKey = null;
            int attempts = 0;

            while (!keyFound)
            {
                var generator       = GeneratorUtilities.GetKeyPairGenerator("ECDSA");
                var generatorParams = new ECKeyGenerationParameters(
                    CustomNamedCurves.GetOid("P-256"),
                    new SecureRandom()
                    );

                generator.Init(generatorParams);

                var keyPair = generator.GenerateKeyPair();

                var publicKey = (ECPublicKeyParameters)keyPair.Public;

                var xBytes = publicKey.Q.AffineXCoord.ToBigInteger().ToByteArrayUnsigned();
                var yBytes = publicKey.Q.AffineYCoord.ToBigInteger().ToByteArrayUnsigned();

                if (xBytes.Length != yBytes.Length)
                {
                    System.Diagnostics.Debug.WriteLine($"Problem key found in {attempts} attempts");

                    keyFound = true;

                    string pem = "";
                    using (var sr = new StringWriter())
                    {
                        var pemWriter = new PemWriter(sr);
                        pemWriter.WriteObject(keyPair);
                        pem = sr.ToString();
                    }

                    System.Diagnostics.Debug.WriteLine($"{pem}");

                    newKey = KeyFactory.FromPem(pem);
                }
                attempts++;
            }

            //certes.InitProvider().Wait();
        }
Ejemplo n.º 2
0
        public CertifyManager()
        {
            var serverConfig = SharedUtils.ServiceConfigManager.GetAppServiceConfig();

            SettingsManager.LoadAppSettings();

            InitLogging(serverConfig);

            Util.SetSupportedTLSVersions();

            _itemManager    = new ItemManager();
            _serverProvider = (ICertifiedServer) new ServerProviderIIS();

            _progressResults = new ObservableCollection <RequestProgressState>();

            _pluginManager = new PluginManager();
            _pluginManager.LoadPlugins();

            // TODO: convert providers to plugins, allow for async init
            var userAgent = Util.GetUserAgent();

            var certes = new Certify.Providers.Certes.CertesACMEProvider(Management.Util.GetAppDataFolder() + "\\certes", userAgent);

            certes.InitProvider(_serviceLog).Wait();

            _acmeClientProvider = certes;
            _vaultProvider      = certes;

            // init remaining utilities and optionally enable telematics
            _challengeDiagnostics = new ChallengeDiagnostics(CoreAppSettings.Current.EnableValidationProxyAPI);

            if (CoreAppSettings.Current.EnableAppTelematics)
            {
                _tc = new Util().InitTelemetry();
            }

            _httpChallengePort = serverConfig.HttpChallengeServerPort;
            _httpChallengeServerClient.Timeout = new TimeSpan(0, 0, 5);

            if (_tc != null)
            {
                _tc.TrackEvent("ServiceStarted");
            }

            _serviceLog?.Information("Certify Manager Started");

            PerformUpgrades().Wait();
        }
Ejemplo n.º 3
0
        public CertifyManager()
        {
            _serviceLog = new Loggy(
                new LoggerConfiguration()
                .MinimumLevel.Verbose()
                .WriteTo.Debug()
                .WriteTo.File(Util.GetAppDataFolder("logs") + "\\sessionlog.txt", shared: true, flushToDiskInterval: new TimeSpan(0, 0, 10))
                .CreateLogger()
                );

            Util.SetSupportedTLSVersions();

            _itemManager    = new ItemManager();
            _serverProvider = (ICertifiedServer) new ServerProviderIIS();

            _progressResults = new ObservableCollection <RequestProgressState>();

            _pluginManager = new PluginManager();
            _pluginManager.LoadPlugins();

            // TODO: convert providers to plugins
            var certes = new Certify.Providers.Certes.CertesACMEProvider(Management.Util.GetAppDataFolder() + "\\certes");

            _acmeClientProvider = certes;
            _vaultProvider      = certes;

            // init remaining utilities and optionally enable telematics
            _challengeDiagnostics = new ChallengeDiagnostics(CoreAppSettings.Current.EnableValidationProxyAPI);

            if (CoreAppSettings.Current.EnableAppTelematics)
            {
                _tc = new Util().InitTelemetry();
            }

            PerformUpgrades();

            var serverConfig = Util.GetAppServiceConfig();

            _httpChallengePort = serverConfig.HttpChallengeServerPort;
            _httpChallengeServerClient.Timeout = new TimeSpan(0, 0, 5);

            if (_tc != null)
            {
                _tc.TrackEvent("ServiceStarted");
            }
        }