private void DumpGeneratorResults(ICommonSettings settings, IEnumerable <String> results)
        {
            Debug.WriteLine($"Type: {settings.Type}, Length: {settings.Length}, Amount: {settings.Amount}");

            foreach (String result in results)
            {
                Debug.WriteLine(result);
            }
        }
        public IEnumerable <String> Generate(ICommonSettings settings, IPoolsCollector collector)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            if (collector == null)
            {
                throw new ArgumentNullException(nameof(collector));
            }

            if (settings.Length < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(settings), $"Settings value {nameof(ICommonSettings.Length)} must be greater than zero.");
            }

            List <String> results = new List <String>();

            for (Int32 count = 0; count < settings.Amount; count++)
            {
                List <String> sources = new List <String>();

                switch (settings.Type)
                {
                case CommonType.InternetPassword1:
                    this.ApplySourcesType1(collector, settings.Length, sources);
                    break;

                case CommonType.InternetPassword2:
                    this.ApplySourcesType2(collector, settings.Length, sources);
                    break;

                case CommonType.InternetPassword3:
                    this.ApplySourcesType3(collector, settings.Length, sources);
                    break;

                case CommonType.InternetPasswordX:
                    this.ApplySourcesTypeX(collector, settings.Length, sources);
                    break;

                default:
                    throw new NotSupportedException($"Common type of \"{settings.Type}\" is not supported.");
                }

                String result = sources.Raffle(this.random);

                results.Add(result);
            }

            this.DumpGeneratorResults(settings, results);

            return(results);
        }
Beispiel #3
0
        public IEnumerable<String> Generate(ICommonSettings settings, IPoolsCollector collector)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            if (collector == null)
            {
                throw new ArgumentNullException(nameof(collector));
            }

            if (settings.Length < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(settings), $"Settings value {nameof(ICommonSettings.Length)} must be greater than zero.");
            }

            if (settings.Amount < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(settings), $"Settings value {nameof(ICommonSettings.Amount)} must be greater than zero.");
            }

            Pools pools = Pools.Nothing;

            if (settings.IsUppers) { pools |= Pools.Uppers; }
            if (settings.IsLowers) { pools |= Pools.Lowers; }
            if (settings.IsDigits) { pools |= Pools.Digits; }
            if (settings.IsExtras) { pools |= Pools.Extras; }

            String source = collector.Collect(pools);

            if (String.IsNullOrWhiteSpace(source))
            {
                return Enumerable.Empty<String>();
            }

            IEnumerable<String> results = null;

            switch (settings.Type)
            {
                case CommonType.PasswordManager1:
                case CommonType.PasswordManager2:
                case CommonType.PasswordManager3:
                    results = this.Generate(source, settings.Length, settings.Amount);
                    break;
                default:
                    throw new NotSupportedException($"Common type of \"{settings.Type}\" is not supported.");
            }

            this.DumpGeneratorResults(settings, results);

            return results;
        }
Beispiel #4
0
        public IEnumerable <String> Generate(ICommonSettings settings, IGeneratorSettings source)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }

            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            if (settings.Amount < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(settings), $"Settings value {nameof(ICommonSettings.Amount)} must be greater than zero.");
            }

            if (settings.Length < 1)
            {
                throw new ArgumentOutOfRangeException(nameof(settings), $"Settings value {nameof(ICommonSettings.Length)} must be greater than zero.");
            }

            IPoolsCollector collector = CollectorFactory.Create <IPoolsCollector>();

            switch (settings.Type)
            {
            case CommonType.InternetPassword1:
            case CommonType.InternetPassword2:
            case CommonType.InternetPassword3:
            case CommonType.InternetPasswordX:
                return(this.GenerateInternetPasswords(settings, collector));

            case CommonType.PasswordManager1:
            case CommonType.PasswordManager2:
            case CommonType.PasswordManager3:
                return(this.GenerateManagerPasswords(settings, collector));

            case CommonType.WepKey64Bit:
            case CommonType.WepKey128Bit:
            case CommonType.WepKey152Bit:
            case CommonType.WepKey256Bit:
            case CommonType.WepKeyCustom:
            case CommonType.WpaKey:
            case CommonType.Wpa2Key:
                return(this.GenerateWirelessPasswords(settings, collector));

            default:
                throw new NotSupportedException($"Common type of {settings.Type} is not supported.");
            }
        }
Beispiel #5
0
        public static void RegisterLoggingSources(IEnumerable <EventSource> logSources, ICommonSettings settings)
        {
            var logListener = new ObservableEventListener();

            foreach (var logSource in logSources)
            {
                logListener.EnableEvents(
                    logSource, EventLevel.LogAlways, Keywords.All);
            }

            logListener.LogToFlatFile(
                fileName: settings.LogFilePath,
                formatter: new EventTextFormatter());
        }
Beispiel #6
0
        private IEnumerable <String> GenerateWirelessPasswords(ICommonSettings settings, IPoolsCollector collector)
        {
            IWirelessPasswordGenerator generator = GeneratorFactory.Create <IWirelessPasswordGenerator>();

            return(generator.Generate(settings, collector));
        }
Beispiel #7
0
        private IEnumerable <String> GenerateManagerPasswords(ICommonSettings settings, IPoolsCollector collector)
        {
            IPasswordManagerGenerator generator = GeneratorFactory.Create <IPasswordManagerGenerator>();

            return(generator.Generate(settings, collector));
        }