示例#1
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);
            keygen = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);
            licenseActiviationProvider = new LicenseActiviationProvider(asymmetricEncryptionProvider, symmetricEncryptionProvider, objectSerializationProvider);
            service = new LicenseKeyService(keygen, 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);
        }
示例#2
0
        public bool AddProductToService(License license, List<LicenseSet> licenseSets, Service service)
        {
            ServiceProduct sp = new ServiceProduct();
            sp.LicenseId = license.LicenseId;
            sp.LicenseName = license.Name;
            sp.LicenseSets = new List<ServiceLicenseSet>();

            foreach (var ls in licenseSets)
            {
                ServiceLicenseSet set = new ServiceLicenseSet();
                set.LicenseId = license.LicenseId;
                set.LicenseSetId = ls.LicenseSetId;
                set.LicenseSetName = ls.Name;
                set.LicenseType = ls.SupportedLicenseTypes;
                set.MaxUsers = ls.MaxUsers;

                sp.LicenseSets.Add(set);
            }

            string mgmtToken = _packingService.PackToken(service.GetManagementToken());

            AddProductResult result = _productsProvider.AddProduct(service.ManagementUrl, mgmtToken,
                                                                                                                         GetManagementStandardEncryptionInfo(service),
                                                                                                                         service.GetManagementServiceKeyPair(), sp);

            if (IsResultValid(result))
                return true;

            return false;
        }
示例#3
0
        public void BrokenTrialSetup()
        {
            License.Name = "UnitTest License";

            Product p = new Product();

            p.Name        = "UnitTest Product";
            p.Description = "Just a product for unit testing";

            License.LicenseId        = 1;
            License.Product          = p;
            License.KeyGeneratorType = KeyGeneratorTypes.StaticSmall;

            LicenseTrialSettings ts = new LicenseTrialSettings();

            ts.ExpirationOptions = TrialExpirationOptions.Days;
            ts.ExpirationData    = "30";

            License.TrialSettings = ts;

            LicenseSet ls = new LicenseSet();

            ls.LicenseId             = 1;
            ls.LicenseSetId          = 1;
            ls.Name                  = "Unit Test License Set";
            ls.MaxUsers              = 5;
            ls.SupportedLicenseTypes = LicenseKeyTypeFlag.Enterprise;

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

            License lic = License;
            AsymmetricEncryptionProvider asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();

            lic.KeyPair = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);

            ClientLicense lic2 = new ClientLicense(License);

            lic2.RunCount = 10;
            lic2.LastRun  = DateTime.Now.AddMonths(-12);
            lic2.FirstRun = DateTime.Now.AddMonths(-24);

            CreateFile(lic2);
        }
示例#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
        private void btnUploadLicenseSets_Click(object sender, RoutedEventArgs e)
        {
            if (cboServices.SelectedValue != null)
            {
                if (gridLocalServices.SelectedItem != null)
                {
                    if (DoesLicenseSetExistOnService() == false)
                    {
                        BackgroundWorker worker = new BackgroundWorker();
                        loadingAnimation.Visibility = Visibility.Visible;

                        var productDisplayData = gridLocalServices.SelectedItem as UploadProductDisplayData;

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

                            IServicesService   servicesService   = ObjectLocator.GetInstance <IServicesService>();
                            ILicenseSetService licenseSetService = ObjectLocator.GetInstance <ILicenseSetService>();
                            ILicenseService    licenseService    = ObjectLocator.GetInstance <ILicenseService>();

                            //LicenseSet licenseSet = (LicenseSet) data[0];
                            License    license    = licenseService.GetLicenseById(((UploadProductDisplayData)data[0]).LicenseId);
                            LicenseSet licenseSet = licenseSetService.GetLiceseSetById(((UploadProductDisplayData)data[0]).LicenseSetId);

                            List <LicenseSet> sets = new List <LicenseSet>();
                            sets.Add(licenseSet);

                            servicesService.AddProductToService(license, sets, data[1] as Service);
                            Dictionary <License, List <LicenseSet> > _servicesData = servicesService.GetServiceLicenses((Service)data[1]);

                            args.Result = _servicesData;
                        };

                        worker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
                        {
                            servicesData = (Dictionary <License, List <LicenseSet> >)args.Result;
                            gridRemoteServices.ItemsSource = DataConverters.ConvertAllLicensesSetsToDisplay(servicesData);

                            loadingAnimation.Visibility = Visibility.Collapsed;
                        };

                        worker.RunWorkerAsync(new object[]
                        {
                            productDisplayData,
                            cboServices.SelectedValue
                        });
                    }
                    else
                    {
                        MessageBox.Show("The License Set you selected already exists in the service");
                    }
                }
                else
                {
                    MessageBox.Show("You must select a License/LicenseSet to upload");
                }
            }
            else
            {
                MessageBox.Show("You must select a service to upload to.");
            }
        }
示例#6
0
		public static void SetNewLicense()
		{
			_license = new License();
			_newLicense = true;
		}
示例#7
0
 public static void SetNewLicense()
 {
     _license    = new License();
     _newLicense = true;
 }