コード例 #1
0
ファイル: KeyGenerator.cs プロジェクト: chantsunman/Scutex
		public KeyGenerator(ISymmetricEncryptionProvider symmetricEncryptionProvider,
			IAsymmetricEncryptionProvider asymmetricEncryptionProvider, IHashingProvider hashingProvider, IHardwareFingerprintService fingerprintService)
		{
			this.symmetricEncryptionProvider = symmetricEncryptionProvider;
			this.asymmetricEncryptionProvider = asymmetricEncryptionProvider;
			this.hashingProvider = hashingProvider;
			_fingerprintService = fingerprintService;
		}
コード例 #2
0
        public FingerprintContent()
        {
            InitializeComponent();

            IHardwareFingerprintService fingerprintService = ObjectLocator.GetInstance <IHardwareFingerprintService>();

            txtFingerprint.Text = fingerprintService.GetHardwareFingerprint(FingerprintTypes.Default);
        }
コード例 #3
0
ファイル: KeyGenerator.cs プロジェクト: robert0825/Scutex
 public KeyGenerator(ISymmetricEncryptionProvider symmetricEncryptionProvider,
                     IAsymmetricEncryptionProvider asymmetricEncryptionProvider, IHashingProvider hashingProvider, IHardwareFingerprintService fingerprintService)
 {
     this.symmetricEncryptionProvider  = symmetricEncryptionProvider;
     this.asymmetricEncryptionProvider = asymmetricEncryptionProvider;
     this.hashingProvider = hashingProvider;
     _fingerprintService  = fingerprintService;
 }
コード例 #4
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);
            }
コード例 #5
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);
            }
コード例 #6
0
			public void Before_each_test()
			{
				asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
				symmetricEncryptionProvider = new SymmetricEncryptionProvider();
				hashingProvider = new HashingProvider();

				var mock = new Mock<IHardwareFingerprintService>();
				mock.Setup(foo => foo.GetHardwareFingerprint(FingerprintTypes.Default)).Returns("JustATestFingerprint1050");

				_hardwareFingerprintService = new HardwareFingerprintService(new WmiDataProvider(), hashingProvider);

				largeKeyGenerator = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider, mock.Object);

				license = new ClientLicense();
				generationOptions = new List<LicenseGenerationOptions>();
				generationOptions.Add(new LicenseGenerationOptions());
				generationOptions.Add(new LicenseGenerationOptions());
				generationOptions.Add(new LicenseGenerationOptions());
				generationOptions.Add(new LicenseGenerationOptions());
				generationOptions.Add(new LicenseGenerationOptions());
				generationOptions.Add(new LicenseGenerationOptions());

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

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

				license.LicenseSets[0].LicenseSetId = 1;
				license.LicenseSets[0].Name = "Standard Edition";
				license.LicenseSets[0].MaxUsers = 5;
				license.LicenseSets[0].SupportedLicenseTypes = LicenseKeyTypeFlag.SingleUser;
				license.LicenseSets[0].SupportedLicenseTypes |= LicenseKeyTypeFlag.MultiUser;
				license.LicenseSets[0].SupportedLicenseTypes |= LicenseKeyTypeFlag.Unlimited;

				license.LicenseSets[1].LicenseSetId = 2;
				license.LicenseSets[1].Name = "Professional Edition";
				license.LicenseSets[1].MaxUsers = 5;
				license.LicenseSets[1].SupportedLicenseTypes = LicenseKeyTypeFlag.SingleUser;
				license.LicenseSets[1].SupportedLicenseTypes |= LicenseKeyTypeFlag.MultiUser;
				license.LicenseSets[1].SupportedLicenseTypes |= LicenseKeyTypeFlag.Unlimited;

				license.LicenseSets[2].LicenseSetId = 3;
				license.LicenseSets[2].Name = "Enterprise Edition";
				license.LicenseSets[2].MaxUsers = 5;
				license.LicenseSets[2].SupportedLicenseTypes = LicenseKeyTypeFlag.SingleUser;
				license.LicenseSets[2].SupportedLicenseTypes |= LicenseKeyTypeFlag.MultiUser;
				license.LicenseSets[2].SupportedLicenseTypes |= LicenseKeyTypeFlag.Unlimited;
				license.LicenseSets[2].SupportedLicenseTypes |= LicenseKeyTypeFlag.Enterprise;

				license.LicenseSets[3].LicenseSetId = 4;
				license.LicenseSets[3].Name = "Upgrade Edition";
				license.LicenseSets[3].MaxUsers = 0;
				license.LicenseSets[3].IsUpgradeOnly = true;
				license.LicenseSets[3].SupportedLicenseTypes = LicenseKeyTypeFlag.SingleUser;

				license.LicenseSets[4].LicenseSetId = 5;
				license.LicenseSets[4].Name = "Hardware Edition";
				license.LicenseSets[4].MaxUsers = 0;
				license.LicenseSets[4].IsUpgradeOnly = false;
				license.LicenseSets[4].SupportedLicenseTypes = LicenseKeyTypeFlag.HardwareLock;

				generationOptions[0].LicenseKeyType = LicenseKeyTypes.SingleUser;
				generationOptions[0].LicenseSetId = 1;

				generationOptions[1].LicenseKeyType = LicenseKeyTypes.Enterprise;
				generationOptions[1].LicenseSetId = 2;

				generationOptions[2].LicenseKeyType = LicenseKeyTypes.Enterprise;
				generationOptions[2].LicenseSetId = 3;

				generationOptions[3].LicenseKeyType = LicenseKeyTypes.Enterprise;
				generationOptions[3].LicenseSetId = 4;

				generationOptions[4].LicenseKeyType = LicenseKeyTypes.HardwareLock;
				generationOptions[4].HardwareFingerprint = "JustATestFingerprint1050";
				generationOptions[4].LicenseSetId = 5;

				generationOptions[5].LicenseKeyType = LicenseKeyTypes.HardwareLockLocal;
				generationOptions[5].HardwareFingerprint = "JustATestFingerprint1050";
				generationOptions[5].LicenseSetId = 5;

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

				placeholders = largeKeyGenerator.CreateLicensePlaceholders(license, generationOptions[0]);
				placeholdersInTemplate = KeyGenerator.FindAllPlaceholdersInTemplate(KeyGenerator.licenseKeyTemplate, placeholders);

				key = largeKeyGenerator.GenerateLicenseKey("TEST", license, generationOptions[0]);
			}
コード例 #7
0
            public void Before_each_test()
            {
                asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
                symmetricEncryptionProvider  = new SymmetricEncryptionProvider();
                hashingProvider = new HashingProvider();

                var mock = new Mock <IHardwareFingerprintService>();

                mock.Setup(foo => foo.GetHardwareFingerprint(FingerprintTypes.Default)).Returns("JustATestFingerprint1050");

                _hardwareFingerprintService = new HardwareFingerprintService(new WmiDataProvider(), hashingProvider);

                largeKeyGenerator = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider, mock.Object);

                license           = new ClientLicense();
                generationOptions = new List <LicenseGenerationOptions>();
                generationOptions.Add(new LicenseGenerationOptions());
                generationOptions.Add(new LicenseGenerationOptions());
                generationOptions.Add(new LicenseGenerationOptions());
                generationOptions.Add(new LicenseGenerationOptions());
                generationOptions.Add(new LicenseGenerationOptions());
                generationOptions.Add(new LicenseGenerationOptions());

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

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

                license.LicenseSets[0].LicenseSetId           = 1;
                license.LicenseSets[0].Name                   = "Standard Edition";
                license.LicenseSets[0].MaxUsers               = 5;
                license.LicenseSets[0].SupportedLicenseTypes  = LicenseKeyTypeFlag.SingleUser;
                license.LicenseSets[0].SupportedLicenseTypes |= LicenseKeyTypeFlag.MultiUser;
                license.LicenseSets[0].SupportedLicenseTypes |= LicenseKeyTypeFlag.Unlimited;

                license.LicenseSets[1].LicenseSetId           = 2;
                license.LicenseSets[1].Name                   = "Professional Edition";
                license.LicenseSets[1].MaxUsers               = 5;
                license.LicenseSets[1].SupportedLicenseTypes  = LicenseKeyTypeFlag.SingleUser;
                license.LicenseSets[1].SupportedLicenseTypes |= LicenseKeyTypeFlag.MultiUser;
                license.LicenseSets[1].SupportedLicenseTypes |= LicenseKeyTypeFlag.Unlimited;

                license.LicenseSets[2].LicenseSetId           = 3;
                license.LicenseSets[2].Name                   = "Enterprise Edition";
                license.LicenseSets[2].MaxUsers               = 5;
                license.LicenseSets[2].SupportedLicenseTypes  = LicenseKeyTypeFlag.SingleUser;
                license.LicenseSets[2].SupportedLicenseTypes |= LicenseKeyTypeFlag.MultiUser;
                license.LicenseSets[2].SupportedLicenseTypes |= LicenseKeyTypeFlag.Unlimited;
                license.LicenseSets[2].SupportedLicenseTypes |= LicenseKeyTypeFlag.Enterprise;

                license.LicenseSets[3].LicenseSetId          = 4;
                license.LicenseSets[3].Name                  = "Upgrade Edition";
                license.LicenseSets[3].MaxUsers              = 0;
                license.LicenseSets[3].IsUpgradeOnly         = true;
                license.LicenseSets[3].SupportedLicenseTypes = LicenseKeyTypeFlag.SingleUser;

                license.LicenseSets[4].LicenseSetId          = 5;
                license.LicenseSets[4].Name                  = "Hardware Edition";
                license.LicenseSets[4].MaxUsers              = 0;
                license.LicenseSets[4].IsUpgradeOnly         = false;
                license.LicenseSets[4].SupportedLicenseTypes = LicenseKeyTypeFlag.HardwareLock;

                generationOptions[0].LicenseKeyType = LicenseKeyTypes.SingleUser;
                generationOptions[0].LicenseSetId   = 1;

                generationOptions[1].LicenseKeyType = LicenseKeyTypes.Enterprise;
                generationOptions[1].LicenseSetId   = 2;

                generationOptions[2].LicenseKeyType = LicenseKeyTypes.Enterprise;
                generationOptions[2].LicenseSetId   = 3;

                generationOptions[3].LicenseKeyType = LicenseKeyTypes.Enterprise;
                generationOptions[3].LicenseSetId   = 4;

                generationOptions[4].LicenseKeyType      = LicenseKeyTypes.HardwareLock;
                generationOptions[4].HardwareFingerprint = "JustATestFingerprint1050";
                generationOptions[4].LicenseSetId        = 5;

                generationOptions[5].LicenseKeyType      = LicenseKeyTypes.HardwareLockLocal;
                generationOptions[5].HardwareFingerprint = "JustATestFingerprint1050";
                generationOptions[5].LicenseSetId        = 5;

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

                placeholders           = largeKeyGenerator.CreateLicensePlaceholders(license, generationOptions[0]);
                placeholdersInTemplate = KeyGenerator.FindAllPlaceholdersInTemplate(KeyGenerator.licenseKeyTemplate, placeholders);

                key = largeKeyGenerator.GenerateLicenseKey("TEST", license, generationOptions[0]);
            }
コード例 #8
0
ファイル: RegisterService.cs プロジェクト: robert0825/Scutex
 public RegisterService(ILicenseKeyService licenseKeyService, ILicenseActivationService licenseActivationService, IHardwareFingerprintService hardwareFingerprintService)
 {
     _licenseKeyService          = licenseKeyService;
     _licenseActivationService   = licenseActivationService;
     _hardwareFingerprintService = hardwareFingerprintService;
 }
コード例 #9
0
ファイル: RegisterService.cs プロジェクト: chantsunman/Scutex
		public RegisterService(ILicenseKeyService licenseKeyService, ILicenseActivationService licenseActivationService, IHardwareFingerprintService hardwareFingerprintService)
		{
			_licenseKeyService = licenseKeyService;
			_licenseActivationService = licenseActivationService;
			_hardwareFingerprintService = hardwareFingerprintService;
		}