public InitializationResult InitializeService(string url, string token, MasterServiceData data, EncryptionInfo encryptionInfo) { StatusServiceClient client = StatusServiceClientCreator(url); string encryptedToken = _symmetricEncryptionProvider.Encrypt(token, encryptionInfo); string serializedData = _objectSerializationProvider.Serialize(data); string encryptedData = _symmetricEncryptionProvider.Encrypt(serializedData, encryptionInfo); string result = client.InitializeService(encryptedToken, encryptedData); string decryptedResult = _symmetricEncryptionProvider.Decrypt(result, encryptionInfo); InitializationResult initializationResult = _objectSerializationProvider.Deserialize <InitializationResult>(decryptedResult); return(initializationResult); }
public static void SerializeMasterServiceData() { ICommonRepository commonRepository = ObjectLocator.GetInstance <ICommonRepository>(); IObjectSerializationProvider objectSerializationProvider = ObjectLocator.GetInstance <IObjectSerializationProvider>(); MasterServiceData service = commonRepository.GetMasterServiceData(); string serializedService = objectSerializationProvider.Serialize(service); if (File.Exists(Directory.GetCurrentDirectory() + "\\MasterService.dat")) { File.Delete(Directory.GetCurrentDirectory() + "\\MasterService.dat"); } using (TextWriter writer = new StreamWriter((Directory.GetCurrentDirectory() + "\\MasterService.dat"))) { writer.WriteLine(serializedService); } }
public KeyPair GetManagementKeyPair() { MasterServiceData masterData = _commonRepository.GetMasterServiceData(); StringBuilder inboundKey = new StringBuilder(); inboundKey.Append(masterData.ManagementInboundKey); inboundKey.Append(GetInboundHalfFromFile()); StringBuilder outboundKey = new StringBuilder(); outboundKey.Append(masterData.ManagementOutboundKey); outboundKey.Append(GetOutboundHalfFromFile()); KeyPair keyPair = new KeyPair(); keyPair.PublicKey = inboundKey.ToString(); keyPair.PrivateKey = outboundKey.ToString(); return(keyPair); }
public bool InitializeService(Service service) { string token = _packingService.PackToken(service.GetManagementToken()); StatusRequestResult statusResult = _serviceStatusProvider.GetServiceStatus(service.ManagementUrl, token, GetManagementStandardEncryptionInfo(service)); if (statusResult.IsInitialized == true) { return(false); } if (statusResult.IsActive == true) { return(false); } if (statusResult.IsRequestValid == false) { return(false); } MasterServiceData masterData = new MasterServiceData(); masterData.ServiceId = service.UniquePad; masterData.Token = service.Token; masterData.Initialized = true; masterData.ClientInboundKey = service.GetClientInboundKeyPart1(); masterData.ClientOutboundKey = service.GetClientOutboundKeyPart1(); masterData.ManagementInboundKey = service.GetManagementInboundKeyPart1(); masterData.ManagementOutboundKey = service.GetManagementOutboundKeyPart1(); InitializationResult result = _serviceStatusProvider.InitializeService(service.ManagementUrl, token, masterData, GetManagementStandardEncryptionInfo(service)); if (!result.WasInitializionSucessful) { return(false); } return(true); }
public string InitializeService(string token, string data) { InitializationResult result = new InitializationResult(); try { if (!_controlService.ValidateManagementToken(token)) { result.WasInitializionSucessful = false; return(_controlService.EncryptSymmetricResponse(_serializationProvider.Serialize(result))); } string decryptedData = _controlService.DecryptSymmetricResponse(data); MasterServiceData masterData = _serializationProvider.Deserialize <MasterServiceData>(decryptedData); MasterServiceData masterData1 = _masterService.SetMasterServiceData(masterData); if (masterData1 == null) { result.WasInitializionSucessful = false; return(_controlService.EncryptSymmetricResponse(_serializationProvider.Serialize(result))); } result.WasInitializionSucessful = true; string path = _commonService.GetPath(); if (File.Exists(path + "\\AllowDatabaseTest.emp")) { File.Delete(path + "\\AllowDatabaseTest.emp"); } } catch (Exception ex) { LoggingHelper.LogException(ex); } return(_controlService.EncryptSymmetricResponse(_serializationProvider.Serialize(result))); }
public MasterServiceData SetMasterServiceData(MasterServiceData data) { if (GetMasterServiceData() != null) { return(null); } using (ScutexServiceEntities db1 = new ScutexServiceEntities()) { Master m = new Master(); m.ServiceId = data.ServiceId; m.ClientInboundKey = data.ClientInboundKey; m.ClientOutboundKey = data.ClientOutboundKey; m.ManagementInboundKey = data.ManagementInboundKey; m.ManagementOutboundKey = data.ManagementOutboundKey; m.Token = data.Token; db1.AddToMasters(m); db1.SaveChanges(); } return(GetMasterServiceData()); }
public string GetServiceStatus(string token) { StatusRequestResult result = new StatusRequestResult(); if (!_controlService.ValidateManagementToken(token)) { result.IsActive = false; result.IsInitialized = false; result.IsRequestValid = false; return(_controlService.EncryptSymmetricResponse(_serializationProvider.Serialize(result))); } MasterServiceData masterData = _masterService.GetMasterServiceData(); if (masterData == null) { result.IsActive = false; result.IsInitialized = false; result.IsRequestValid = true; } return(_controlService.EncryptSymmetricResponse(_serializationProvider.Serialize(result))); }
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); }
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); activationLogRepository = new ActivationLogRepoistory(new ScutexServiceEntities()); activationLogService = new ActivationLogService(activationLogRepository, hashingProvider); keyService = new KeyManagementService(clientRepository, licenseKeyService, activationLogService, hashingProvider, serviceProductsRepository); 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); 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, packingService, clientLicenseService); activationService = new ActivationService(controlService, keyService, keyPairService, objectSerializationProvider, asymmetricEncryptionProvider, null, null); string serviceData; using (TextReader reader = new StreamReader(path + "\\Data\\Service.dat")) { serviceData = reader.ReadToEnd().Trim(); } service = objectSerializationProvider.Deserialize<Service>(serviceData); }
public MasterServiceData SetMasterServiceData(MasterServiceData data) { return(_commonRepository.SetMasterServiceData(data)); }