예제 #1
0
파일: Program.cs 프로젝트: JBClimber/Ddeess
        static void Main(string[] args)
        {
            Console.WriteLine("  - - - - -  DES key test  - - - - - - \r\n");

            string readFile;

            do
            {
                Console.WriteLine("Enter path and file to read Keys from: ");
                readFile = Console.ReadLine();
            } while (!File.Exists(readFile));

            StreamReader file = new StreamReader(readFile);
            string       key;

            while ((key = file.ReadLine()) != null)
            {
                Console.WriteLine(key);
                //ConvertToBoolArray(key);
                KeyGenerators kg = new KeyGenerators(new BitArray(ConvertToBoolArray(key)));;
                Console.ReadKey();
                Console.WriteLine();

                //ConvertToBoolArrayComplement(key);
                kg = new KeyGenerators(new BitArray(ConvertToBoolArrayComplement(key)));
                Console.ReadKey();
                Console.WriteLine();
            }

            Console.WriteLine("  - - - - -  END test  - - - - - - - -");
            CompleteBeep();
            Console.ReadKey();
        }
예제 #2
0
        public string AddComponentToken(string tenantName, string productName, string componentName, ComponentToken componentToken, bool shoudGenerateToken = true)
        {
            List <TenantConfiguration> tenants = TenantIOReader.ReadTenantsFromConfigFile();
            var tenant = tenants.Find(x => x.Name == tenantName);

            if (tenant == null)
            {
                return(null);
            }

            var product = tenant.Products.Find(x => x.Name == productName);

            if (product == null)
            {
                return(null);
            }

            var component = product.Components.Find(x => x.Name == componentName);

            if (component == null)
            {
                return(null);
            }

            if (shoudGenerateToken == true)
            {
                string apiKey = KeyGenerators.GenerateApiKey();
                componentToken.Token = apiKey;
            }

            component.Settings.Tokens.Add(componentToken);

            // store token in memory!
            _tenantRepository.AddComponentToken(tenantName, productName, componentName, componentToken);

            // Write into file
            if (TenantIOWriter.WriteTenantsConfiguration(tenants) == true)
            {
                if (shoudGenerateToken == true)
                {
                    // Send to the Cluster
                    _storageHubService.SendCreateComponentTokenStorage(new Model.Storages.Requests.Components.CreateComponentTokenDetails()
                    {
                        Tenant    = tenantName,
                        Product   = productName,
                        Component = componentName,
                        Token     = componentToken,

                        StoragesAlreadySent = new List <string>()
                    });
                }
                return(componentToken.Token);
            }

            return(null);
        }
예제 #3
0
        public IKeyGenerator NewKeyGenerator(KeyGenerators keyGeneratorType)
        {
            switch (keyGeneratorType)
            {
            case KeyGenerators.LFSR:
                return(new LFSR());

            case KeyGenerators.Geffe:
                return(new Geffe());

            default:
                return(new LFSR());
            }
        }
예제 #4
0
        public void Init()
        {
            if (isInitialized)
            {
                return;
            }
            var dbProvider = CreateDbProvider(ProviderName);

            var projSettings = new ProjectSettings
            {
                Platform         = dbProvider.Name,
                Namespace        = "Goliath.Data.Runtime",
                ConnectionString = ConnectionString
            };

            sessionFactory = new Database()
                             .Configure(configMapPath, projSettings, null, KeyGenerators.ToArray())
                             .RegisterProvider(dbProvider).Init();

            isInitialized = true;
        }
예제 #5
0
        public string AddToken(string tenantName, DateTime expireDate)
        {
            List <TenantConfiguration> tenants = TenantIOReader.ReadTenantsFromConfigFile();
            var tenant = tenants.Find(x => x.Name == tenantName);

            if (tenant == null)
            {
                return(null);
            }

            string apiKey = KeyGenerators.GenerateApiKey();

            var tenantToken = new TenantToken()
            {
                ExpireDate = expireDate,
                Token      = apiKey,
                IsActive   = true,
                IssuedDate = DateTime.Now,
                IssuedFor  = $"Issued for tenant {tenantName}"
            };

            tenant.Settings.Tokens.Add(tenantToken);
            _tenantRepository.AddTenantToken(tenantName, tenantToken);

            // Write into file
            if (TenantIOWriter.WriteTenantsConfiguration(tenants) == true)
            {
                // Send to the Cluster
                _storageHubService.SendCreateTenantTokenStorage(new Model.Storages.Requests.Tenants.CreateTenantTokenDetails()
                {
                    Tenant = tenantName,
                    Token  = tenantToken,
                    StoragesAlreadySent = new List <string>()
                });

                return(apiKey);
            }

            return(null);
        }