コード例 #1
0
        public void SetupTests()
        {
            license          = new ClientLicense();
            license.UniqueId = Guid.NewGuid();

            license.LicenseSets = new NotifyList <LicenseSet>();
            LicenseSet ls = new LicenseSet();

            ls.SupportedLicenseTypes = LicenseKeyTypeFlag.SingleUser;
            ls.Name      = "Standard License Set";
            ls.UniquePad = new Guid();
            license.LicenseSets.Add(ls);

            generationOptions = new LicenseGenerationOptions();

            license.Product           = new Product();
            license.Product.Name      = "My Great Uber Cool Product, with new juice!";
            license.Product.ProductId = 1;

            packingService          = new PackingService(numberDataGenerationProvider);
            clientLicenseRepository = new ClientLicenseRepository(objectSerializationProvider, symmetricEncryptionProvider);
            clientLicenseService    = new ClientLicenseService(clientLicenseRepository);

            string productHash = hashingProvider.Checksum32(license.GetLicenseProductIdentifier()).ToString("X");

            LicenseActiviationProvider licenseActiviationProvider = new LicenseActiviationProvider(asymmetricEncryptionProvider, symmetricEncryptionProvider, objectSerializationProvider);

            staticKeyGenerator      = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);
            staticKeyGeneratorLarge = new Scutex.Generators.StaticKeyGeneratorLarge.KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider, hardwareFingerprintService);
            licenseKeyService       = new LicenseKeyService(staticKeyGenerator, staticKeyGeneratorLarge, packingService, clientLicenseService);
        }
コード例 #2
0
        public LicenseKeyService(ISmallKeyGenerator staticSmallKeyGenerator, ILargeKeyGenerator staticLargeKeyGenerator,
                                 IPackingService packingService, IClientLicenseService clientLicenseService)
        {
            keyGenerator          = staticSmallKeyGenerator;
            _largeKeyGenerator    = staticLargeKeyGenerator;
            _packingService       = packingService;
            _clientLicenseService = clientLicenseService;

            // Need to find a way to get these passed in correctly
            //keyGenerator = ObjectLocator.GetInstance<IKeyGenerator>(InstanceNames.SmallKeyGenerator);
            //_largeKeyGenerator = ObjectLocator.GetInstance<IKeyGenerator>(InstanceNames.LargeKeyGenerator);
        }
コード例 #3
0
		public LicenseKeyService(ISmallKeyGenerator staticSmallKeyGenerator, ILargeKeyGenerator staticLargeKeyGenerator,
		                         IPackingService packingService, IClientLicenseService clientLicenseService)
		{
			keyGenerator = staticSmallKeyGenerator;
			_largeKeyGenerator = staticLargeKeyGenerator;
			_packingService = packingService;
			_clientLicenseService = clientLicenseService;

			// Need to find a way to get these passed in correctly
			//keyGenerator = ObjectLocator.GetInstance<IKeyGenerator>(InstanceNames.SmallKeyGenerator);
			//_largeKeyGenerator = ObjectLocator.GetInstance<IKeyGenerator>(InstanceNames.LargeKeyGenerator);
		}
コード例 #4
0
        public LicenseHelper()
        {
            asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
            hashingProvider             = new HashingProvider();
            encodingService             = new EncodingService();
            objectSerializationProvider = new ObjectSerializationProvider();
            symmetricEncryptionProvider = new SymmetricEncryptionProvider();
            clientLicenseRepository     = new ClientLicenseRepository(objectSerializationProvider, symmetricEncryptionProvider);
            clientLicenseService        = new ClientLicenseService(clientLicenseRepository);
            serviceStatusProvider       = new ServiceStatusProvider(symmetricEncryptionProvider, objectSerializationProvider, asymmetricEncryptionProvider);
            numberDataGenerator         = new NumberDataGenerator();
            packingService             = new PackingService(numberDataGenerator);
            hardwareFingerprintService = new HardwareFingerprintService(new WmiDataProvider(), new HashingProvider());
            keygen            = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);
            keyGeneratorLarge = new Scutex.Generators.StaticKeyGeneratorLarge.KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider, hardwareFingerprintService);

            licenseActiviationProvider = new LicenseActiviationProvider(asymmetricEncryptionProvider, symmetricEncryptionProvider, objectSerializationProvider);
            service                = new LicenseKeyService(keygen, keyGeneratorLarge, packingService, clientLicenseService);
            productsProvider       = new ProductsProvider(symmetricEncryptionProvider, objectSerializationProvider, asymmetricEncryptionProvider);
            zipCompressionProvider = new ZipCompressionProvider();
            wcfPackagingService    = new WcfPackagingService(zipCompressionProvider);

            //licenseSetsRepository = new LicenseSetsRepository();

            //licenseSetService = new LicenseSetService();
            //licenseService = new LicenseService();

            License          = new License();
            License.Name     = "UnitTest License";
            License.UniqueId = Guid.NewGuid();
            License.KeyPair  = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);

            //string path = System.Reflection.Assembly.GetAssembly(typeof(LicenseHelper)).Location;
            string path = Helper.AssemblyDirectory;

            DllHash   = encodingService.Encode(hashingProvider.HashFile(path + "\\WaveTech.Scutex.Licensing.dll"));
            PublicKey = encodingService.Encode(License.KeyPair.PublicKey);
        }
コード例 #5
0
ファイル: LicenseHelper.cs プロジェクト: chantsunman/Scutex
		public LicenseHelper()
		{
			asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
			hashingProvider = new HashingProvider();
			encodingService = new EncodingService();
			objectSerializationProvider = new ObjectSerializationProvider();
			symmetricEncryptionProvider = new SymmetricEncryptionProvider();
			clientLicenseRepository = new ClientLicenseRepository(objectSerializationProvider, symmetricEncryptionProvider);
			clientLicenseService = new ClientLicenseService(clientLicenseRepository);
			serviceStatusProvider = new ServiceStatusProvider(symmetricEncryptionProvider, objectSerializationProvider, asymmetricEncryptionProvider);
			numberDataGenerator = new NumberDataGenerator();
			packingService = new PackingService(numberDataGenerator);
			hardwareFingerprintService = new HardwareFingerprintService(new WmiDataProvider(), new HashingProvider());
			keygen = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);
			keyGeneratorLarge = new Scutex.Generators.StaticKeyGeneratorLarge.KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider, hardwareFingerprintService);

			licenseActiviationProvider = new LicenseActiviationProvider(asymmetricEncryptionProvider, symmetricEncryptionProvider, objectSerializationProvider);
			service = new LicenseKeyService(keygen, keyGeneratorLarge, packingService, clientLicenseService);
			productsProvider = new ProductsProvider(symmetricEncryptionProvider, objectSerializationProvider, asymmetricEncryptionProvider);
			zipCompressionProvider = new ZipCompressionProvider();
			wcfPackagingService = new WcfPackagingService(zipCompressionProvider);

			//licenseSetsRepository = new LicenseSetsRepository();

			//licenseSetService = new LicenseSetService();
			//licenseService = new LicenseService();

			License = new License();
			License.Name = "UnitTest License";
			License.UniqueId = Guid.NewGuid();
			License.KeyPair = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);

			//string path = System.Reflection.Assembly.GetAssembly(typeof(LicenseHelper)).Location;
			string path = Helper.AssemblyDirectory;

			DllHash = encodingService.Encode(hashingProvider.HashFile(path + "\\WaveTech.Scutex.Licensing.dll"));
			PublicKey = encodingService.Encode(License.KeyPair.PublicKey);
		}
コード例 #6
0
            public void Before_each_test()
            {
                clientLicenseRepoistory      = new ClientLicenseRepository(objectSerializationProvider, symmetricEncryptionProvider);
                clientLicenseService         = new ClientLicenseService(clientLicenseRepoistory);
                serviceProductsRepository    = new ServiceProductsRepository(new ScutexServiceEntities());
                symmetricEncryptionProvider  = new SymmetricEncryptionProvider();
                asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
                hashingProvider             = new HashingProvider();
                objectSerializationProvider = new ObjectSerializationProvider();
                numberDataGenerator         = new NumberDataGenerator();
                packingService             = new PackingService(numberDataGenerator);
                commonRepository           = new CommonRepository(new ScutexServiceEntities());
                clientRepository           = new ClientRepository(new ScutexServiceEntities());
                keyGenerator               = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);
                masterService              = new MasterService(commonRepository);
                hardwareFingerprintService = new HardwareFingerprintService(new WmiDataProvider(), new HashingProvider());
                keyGeneratorLarge          = new Scutex.Generators.StaticKeyGeneratorLarge.KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider, hardwareFingerprintService);

                var mockActivationLogRepository = new Mock <IActivationLogRepoistory>();

                mockActivationLogRepository.Setup(log => log.SaveActivationLog(It.IsAny <Scutex.Model.ActivationLog>()));

                activationLogService = new ActivationLogService(mockActivationLogRepository.Object, hashingProvider);
                commonService        = new CommonService();

                string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);

                path = path.Replace("file:\\", "");

                var mockCommonService = new Mock <ICommonService>();

                mockCommonService.Setup(common => common.GetPath()).Returns(path + "\\Data\\Client\\");

                string masterServiceDataText;

                using (TextReader reader = new StreamReader(path + "\\Data\\MasterService.dat"))
                {
                    masterServiceDataText = reader.ReadToEnd().Trim();
                }

                masterServiceData = objectSerializationProvider.Deserialize <MasterServiceData>(masterServiceDataText);

                var mockCommonRepository = new Mock <ICommonRepository>();

                mockCommonRepository.Setup(repo => repo.GetMasterServiceData()).Returns(masterServiceData);

                masterService = new MasterService(mockCommonRepository.Object);

                keyPairService             = new KeyPairService(mockCommonService.Object, mockCommonRepository.Object);
                controlService             = new ControlService(symmetricEncryptionProvider, keyPairService, packingService, masterService, objectSerializationProvider, asymmetricEncryptionProvider);
                servicesRepository         = new ServicesRepository(new ScutexEntities());
                serviceStatusProvider      = new ServiceStatusProvider(symmetricEncryptionProvider, objectSerializationProvider, asymmetricEncryptionProvider);
                licenseActiviationProvider = new LicenseActiviationProvider(asymmetricEncryptionProvider, symmetricEncryptionProvider, objectSerializationProvider);
                servicesService            = new ServicesService(servicesRepository, serviceStatusProvider, packingService, licenseActiviationProvider, null, null, null, null, null);
                licenseKeyService          = new LicenseKeyService(keyGenerator, keyGeneratorLarge, packingService, clientLicenseService);
                keyService        = new KeyManagementService(clientRepository, licenseKeyService, activationLogService, hashingProvider, serviceProductsRepository);
                activationService = new ActivationService(controlService, keyService, keyPairService, objectSerializationProvider, asymmetricEncryptionProvider, activationLogService, masterService, commonService, null);

                string serviceData;

                using (TextReader reader = new StreamReader(path + "\\Data\\Service.dat"))
                {
                    serviceData = reader.ReadToEnd().Trim();
                }

                service = objectSerializationProvider.Deserialize <Service>(serviceData);
            }
コード例 #7
0
            public void Before_each_test()
            {
                clientLicenseRepoistory = new ClientLicenseRepository(objectSerializationProvider, symmetricEncryptionProvider);
                clientLicenseService = new ClientLicenseService(clientLicenseRepoistory);
                serviceProductsRepository = new ServiceProductsRepository(new ScutexServiceEntities());
                symmetricEncryptionProvider = new SymmetricEncryptionProvider();
                asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
                hashingProvider = new HashingProvider();
                objectSerializationProvider = new ObjectSerializationProvider();
                numberDataGenerator = new NumberDataGenerator();
                packingService = new PackingService(numberDataGenerator);
                commonRepository = new CommonRepository(new ScutexServiceEntities());
                clientRepository = new ClientRepository(new ScutexServiceEntities());
                keyGenerator = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);
                masterService = new MasterService(commonRepository);
                hardwareFingerprintService = new HardwareFingerprintService(new WmiDataProvider(), new HashingProvider());
                keyGeneratorLarge = new Scutex.Generators.StaticKeyGeneratorLarge.KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider, hardwareFingerprintService);

                var mockActivationLogRepository = new Mock<IActivationLogRepoistory>();
                mockActivationLogRepository.Setup(log => log.SaveActivationLog(It.IsAny<Scutex.Model.ActivationLog>()));

                activationLogService = new ActivationLogService(mockActivationLogRepository.Object, hashingProvider);
                commonService = new CommonService();

                string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase);
                path = path.Replace("file:\\", "");

                var mockCommonService = new Mock<ICommonService>();
                mockCommonService.Setup(common => common.GetPath()).Returns(path + "\\Data\\Client\\");

                string masterServiceDataText;

                using (TextReader reader = new StreamReader(path + "\\Data\\MasterService.dat"))
                {
                    masterServiceDataText = reader.ReadToEnd().Trim();
                }

                masterServiceData = objectSerializationProvider.Deserialize<MasterServiceData>(masterServiceDataText);

                var mockCommonRepository = new Mock<ICommonRepository>();
                mockCommonRepository.Setup(repo => repo.GetMasterServiceData()).Returns(masterServiceData);

                masterService = new MasterService(mockCommonRepository.Object);

                keyPairService = new KeyPairService(mockCommonService.Object, mockCommonRepository.Object);
                controlService = new ControlService(symmetricEncryptionProvider, keyPairService, packingService, masterService, objectSerializationProvider, asymmetricEncryptionProvider);
                servicesRepository = new ServicesRepository(new ScutexEntities());
                serviceStatusProvider = new ServiceStatusProvider(symmetricEncryptionProvider, objectSerializationProvider, asymmetricEncryptionProvider);
                licenseActiviationProvider = new LicenseActiviationProvider(asymmetricEncryptionProvider, symmetricEncryptionProvider, objectSerializationProvider);
                servicesService = new ServicesService(servicesRepository, serviceStatusProvider, packingService, licenseActiviationProvider, null, null, null, null, null);
                licenseKeyService = new LicenseKeyService(keyGenerator, keyGeneratorLarge, packingService, clientLicenseService);
                keyService = new KeyManagementService(clientRepository, licenseKeyService, activationLogService, hashingProvider, serviceProductsRepository);
                activationService = new ActivationService(controlService, keyService, keyPairService, objectSerializationProvider, asymmetricEncryptionProvider, activationLogService, masterService, commonService, null);

                string serviceData;

                using (TextReader reader = new StreamReader(path + "\\Data\\Service.dat"))
                {
                    serviceData = reader.ReadToEnd().Trim();
                }

                service = objectSerializationProvider.Deserialize<Service>(serviceData);
            }
コード例 #8
0
        private void btnGenerateKeys_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            if (IsGenerationFormValid())
            {
                loadingAnimation.Visibility = Visibility.Visible;

                BackgroundWorker         worker = new BackgroundWorker();
                LicenseGenerationOptions licenseGenerationOptions = new LicenseGenerationOptions();

                int keysToGenerate = int.Parse(txtKeysToGenerate.Text);

                if (cboSingleUser.IsChecked.HasValue && cboSingleUser.IsChecked.Value)
                {
                    licenseGenerationOptions.LicenseKeyType = LicenseKeyTypes.SingleUser;
                }
                else if (cboMultiUser.IsChecked.HasValue && cboMultiUser.IsChecked.Value)
                {
                    licenseGenerationOptions.LicenseKeyType = LicenseKeyTypes.MultiUser;
                }
                else if (cboHardwareLock.IsChecked.HasValue && cboHardwareLock.IsChecked.Value)
                {
                    licenseGenerationOptions.LicenseKeyType = LicenseKeyTypes.HardwareLock;
                }
                else if (cboUnlimited.IsChecked.HasValue && cboUnlimited.IsChecked.Value)
                {
                    licenseGenerationOptions.LicenseKeyType = LicenseKeyTypes.Unlimited;
                }
                else if (cboEnterprise.IsChecked.HasValue && cboEnterprise.IsChecked.Value)
                {
                    licenseGenerationOptions.LicenseKeyType = LicenseKeyTypes.Enterprise;
                }
                else if (cboHardwareLockLocal.IsChecked.HasValue && cboHardwareLockLocal.IsChecked.Value)
                {
                    licenseGenerationOptions.LicenseKeyType      = LicenseKeyTypes.HardwareLockLocal;
                    licenseGenerationOptions.HardwareFingerprint = txtHardwareKeyData.Text;
                    keysToGenerate = 1;                         // Can only generate 1 local hardware locked key at a time.
                }

                licenseGenerationOptions.LicenseSetId = ((LicenseSet)cboLicenseSet.SelectedValue).LicenseSetId;

                worker.DoWork += delegate(object s, DoWorkEventArgs args)
                {
                    object[] data = args.Argument as object[];

                    ISmallKeyGenerator          smallKeygen = ObjectLocator.GetInstance <ISmallKeyGenerator>();
                    ILargeKeyGenerator          largeKeygen = ObjectLocator.GetInstance <ILargeKeyGenerator>();
                    ILicenseActiviationProvider licenseActiviationProvider = ObjectLocator.GetInstance <ILicenseActiviationProvider>();
                    IPackingService             packingService             = ObjectLocator.GetInstance <IPackingService>();
                    IClientLicenseService       clientLicenseService       = ObjectLocator.GetInstance <IClientLicenseService>();

                    if ((string)data[2] == InstanceNames.SmallKeyGenerator)
                    {
                        ((LicenseGenerationOptions)data[0]).GeneratorType = KeyGeneratorTypes.StaticSmall;
                    }
                    else
                    {
                        ((LicenseGenerationOptions)data[0]).GeneratorType = KeyGeneratorTypes.StaticLarge;
                    }

                    LicenseKeyService service = new LicenseKeyService(smallKeygen, largeKeygen, packingService, clientLicenseService);
                    List <string>     keys    = service.GenerateLicenseKeys(UIContext.License.KeyPair.PrivateKey,
                                                                            UIContext.License,
                                                                            (LicenseGenerationOptions)data[0],
                                                                            int.Parse(data[1].ToString()));

                    args.Result = keys;
                };

                worker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
                {
                    LicenseKeys = new BindingList <string>((List <string>)args.Result);
                    lstLicenseKeys.ItemsSource  = LicenseKeys;
                    loadingAnimation.Visibility = Visibility.Collapsed;
                };


                worker.RunWorkerAsync(new object[]
                {
                    licenseGenerationOptions,
                    keysToGenerate,
                    GetGeneratorName()
                });
            }
            else
            {
                MessageBox.Show("Please select a license set, license type to generate and a amount.");
            }
        }
コード例 #9
0
        public void SetupTests()
        {
            license = new ClientLicense();
            license.UniqueId = Guid.NewGuid();

            license.LicenseSets = new NotifyList<LicenseSet>();
            LicenseSet ls = new LicenseSet();
            ls.SupportedLicenseTypes = LicenseKeyTypeFlag.SingleUser;
            ls.Name = "Standard License Set";
            ls.UniquePad = new Guid();
            license.LicenseSets.Add(ls);

            generationOptions = new LicenseGenerationOptions();

            license.Product = new Product();
            license.Product.Name = "My Great Uber Cool Product, with new juice!";
            license.Product.ProductId = 1;

            packingService = new PackingService(numberDataGenerationProvider);
            clientLicenseRepository = new ClientLicenseRepository(objectSerializationProvider, symmetricEncryptionProvider);
            clientLicenseService = new ClientLicenseService(clientLicenseRepository);

            string productHash = hashingProvider.Checksum32(license.GetLicenseProductIdentifier()).ToString("X");

            LicenseActiviationProvider licenseActiviationProvider = new LicenseActiviationProvider(asymmetricEncryptionProvider, symmetricEncryptionProvider, objectSerializationProvider);

            staticKeyGenerator = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);
            staticKeyGeneratorLarge = new Scutex.Generators.StaticKeyGeneratorLarge.KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider, hardwareFingerprintService);
            licenseKeyService = new LicenseKeyService(staticKeyGenerator, staticKeyGeneratorLarge, packingService, clientLicenseService);
        }