예제 #1
0
 public ServiceStatusProvider(ISymmetricEncryptionProvider symmetricEncryptionProvider,
                              IObjectSerializationProvider objectSerializationProvider, IAsymmetricEncryptionProvider asymmetricEncryptionProvider)
 {
     _symmetricEncryptionProvider  = symmetricEncryptionProvider;
     _objectSerializationProvider  = objectSerializationProvider;
     _asymmetricEncryptionProvider = asymmetricEncryptionProvider;
 }
			public void Before_each_test()
			{
				asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
				symmetricEncryptionProvider = new SymmetricEncryptionProvider();
				hashingProvider = new HashingProvider();

				smallKeyGenerator = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);

				license = new ClientLicense();
				generationOptions = 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.First().SupportedLicenseTypes = LicenseKeyTypeFlag.SingleUser;
				license.LicenseSets.First().SupportedLicenseTypes |= LicenseKeyTypeFlag.Enterprise;
				license.LicenseSets.First().SupportedLicenseTypes |= LicenseKeyTypeFlag.Unlimited;

				generationOptions.LicenseKeyType = LicenseKeyTypes.Enterprise;

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

				placeholders = smallKeyGenerator.CreateLicensePlaceholders(license, generationOptions);
				placeholdersInTemplate = KeyGenerator.FindAllPlaceholdersInTemplate(KeyGenerator.licenseKeyTemplate, placeholders);

				key = smallKeyGenerator.GenerateLicenseKey("TEST", license, generationOptions);
			}
        public static bool Verify(Signature s, Keypair kp)
        {
            IAsymmetricEncryptionProvider provider = GetRsaProvider(kp.RsaProvider);

            provider.SetKeyPair(kp.ToPublic());
            return(provider.VerifyData(s.Data, s.SignatureData));
        }
		public LicenseActiviationProvider(IAsymmetricEncryptionProvider asymmetricEncryptionProvider, ISymmetricEncryptionProvider symmetricEncryptionProvider,
			IObjectSerializationProvider objectSerializationProvider)
		{
			_asymmetricEncryptionProvider = asymmetricEncryptionProvider;
			_objectSerializationProvider = objectSerializationProvider;
			_symmetricEncryptionProvider = symmetricEncryptionProvider;
		}
예제 #5
0
        public ServiceStatusProvider(ISymmetricEncryptionProvider symmetricEncryptionProvider,
			IObjectSerializationProvider objectSerializationProvider, IAsymmetricEncryptionProvider asymmetricEncryptionProvider)
        {
            _symmetricEncryptionProvider = symmetricEncryptionProvider;
            _objectSerializationProvider = objectSerializationProvider;
            _asymmetricEncryptionProvider = asymmetricEncryptionProvider;
        }
예제 #6
0
		public ReportingProvider(ISymmetricEncryptionProvider symmetricEncryptionProvider,
			IObjectSerializationProvider objectSerializationProvider, IAsymmetricEncryptionProvider asymmetricEncryptionProvider)
		{
			_symmetricEncryptionProvider = symmetricEncryptionProvider;
			_objectSerializationProvider = objectSerializationProvider;
			_asymmetricEncryptionProvider = asymmetricEncryptionProvider;
		}
            public void Before_each_test()
            {
                asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
                symmetricEncryptionProvider  = new SymmetricEncryptionProvider();
                hashingProvider = new HashingProvider();

                smallKeyGenerator = new KeyGenerator(symmetricEncryptionProvider, asymmetricEncryptionProvider, hashingProvider);

                license           = new ClientLicense();
                generationOptions = 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.First().SupportedLicenseTypes  = LicenseKeyTypeFlag.SingleUser;
                license.LicenseSets.First().SupportedLicenseTypes |= LicenseKeyTypeFlag.Enterprise;
                license.LicenseSets.First().SupportedLicenseTypes |= LicenseKeyTypeFlag.Unlimited;

                generationOptions.LicenseKeyType = LicenseKeyTypes.Enterprise;

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

                placeholders           = smallKeyGenerator.CreateLicensePlaceholders(license, generationOptions);
                placeholdersInTemplate = KeyGenerator.FindAllPlaceholdersInTemplate(KeyGenerator.licenseKeyTemplate, placeholders);

                key = smallKeyGenerator.GenerateLicenseKey("TEST", license, generationOptions);
            }
예제 #8
0
 public KeyGenerator(ISymmetricEncryptionProvider symmetricEncryptionProvider,
                     IAsymmetricEncryptionProvider asymmetricEncryptionProvider, IHashingProvider hashingProvider)
 {
     this.symmetricEncryptionProvider  = symmetricEncryptionProvider;
     this.asymmetricEncryptionProvider = asymmetricEncryptionProvider;
     this.hashingProvider = hashingProvider;
 }
예제 #9
0
		public KeyGenerator(ISymmetricEncryptionProvider symmetricEncryptionProvider,
			IAsymmetricEncryptionProvider asymmetricEncryptionProvider, IHashingProvider hashingProvider)
		{
			this.symmetricEncryptionProvider = symmetricEncryptionProvider;
			this.asymmetricEncryptionProvider = asymmetricEncryptionProvider;
			this.hashingProvider = hashingProvider;
		}
 public LicenseActiviationProvider(IAsymmetricEncryptionProvider asymmetricEncryptionProvider, ISymmetricEncryptionProvider symmetricEncryptionProvider,
                                   IObjectSerializationProvider objectSerializationProvider)
 {
     _asymmetricEncryptionProvider = asymmetricEncryptionProvider;
     _objectSerializationProvider  = objectSerializationProvider;
     _symmetricEncryptionProvider  = symmetricEncryptionProvider;
 }
예제 #11
0
 public ReportingProvider(ISymmetricEncryptionProvider symmetricEncryptionProvider,
                          IObjectSerializationProvider objectSerializationProvider, IAsymmetricEncryptionProvider asymmetricEncryptionProvider)
 {
     _symmetricEncryptionProvider  = symmetricEncryptionProvider;
     _objectSerializationProvider  = objectSerializationProvider;
     _asymmetricEncryptionProvider = asymmetricEncryptionProvider;
 }
예제 #12
0
		public KeyGenerator(ISymmetricEncryptionProvider symmetricEncryptionProvider,
			IAsymmetricEncryptionProvider asymmetricEncryptionProvider, IHashingProvider hashingProvider, IHardwareFingerprintService fingerprintService)
		{
			this.symmetricEncryptionProvider = symmetricEncryptionProvider;
			this.asymmetricEncryptionProvider = asymmetricEncryptionProvider;
			this.hashingProvider = hashingProvider;
			_fingerprintService = fingerprintService;
		}
예제 #13
0
 public KeyGenerator(ISymmetricEncryptionProvider symmetricEncryptionProvider,
                     IAsymmetricEncryptionProvider asymmetricEncryptionProvider, IHashingProvider hashingProvider, IHardwareFingerprintService fingerprintService)
 {
     this.symmetricEncryptionProvider  = symmetricEncryptionProvider;
     this.asymmetricEncryptionProvider = asymmetricEncryptionProvider;
     this.hashingProvider = hashingProvider;
     _fingerprintService  = fingerprintService;
 }
예제 #14
0
        private void btnRegenerateKeys_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show("Regenerating keys will cause existing clients to be unable to authenticate license keys. It's not recommended you regenerate encryption keys unless they have been comprlimised.\r\n\r\nAre you sure you want to continue?", "WARNING: Key Regeneration", MessageBoxButton.YesNo, MessageBoxImage.Exclamation) == MessageBoxResult.Yes)
            {
                IAsymmetricEncryptionProvider asymmetricEncryptionProvider =
                    ObjectLocator.GetInstance <IAsymmetricEncryptionProvider>();

                UIContext.License.KeyPair = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);
            }
        }
예제 #15
0
 public ControlService(ISymmetricEncryptionProvider symmetricEncryptionProvider, IKeyPairService keyPairService,
                       IPackingService packingService, IMasterService masterService, IObjectSerializationProvider objectSerializationProvider,
                       IAsymmetricEncryptionProvider asymmetricEncryptionProvider)
 {
     _symmetricEncryptionProvider = symmetricEncryptionProvider;
     _packingService = packingService;
     _masterService  = masterService;
     _keyPairService = keyPairService;
     _objectSerializationProvider  = objectSerializationProvider;
     _asymmetricEncryptionProvider = asymmetricEncryptionProvider;
 }
예제 #16
0
        public ActivationService(IControlService controlService, IKeyManagementService keyService, IKeyPairService keyPairService,
			IObjectSerializationProvider serializationProvider, IAsymmetricEncryptionProvider asymmetricEncryptionProvider,
			IActivationLogService activationLogService, IMasterService masterService)
        {
            _controlService = controlService;
            _keyService = keyService;
            _keyPairService = keyPairService;
            _serializationProvider = serializationProvider;
            _asymmetricEncryptionProvider = asymmetricEncryptionProvider;
            _activationLogService = activationLogService;
            _masterService = masterService;
        }
예제 #17
0
        public static void InitializeForNewLicense()
        {
            if (_newLicense)
            {
                _license.UniqueId = Guid.NewGuid();
                IAsymmetricEncryptionProvider asymmetricEncryptionProvider =
                    ObjectLocator.GetInstance <IAsymmetricEncryptionProvider>();

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

                _newLicense = false;
            }
        }
예제 #18
0
 public ActivationService(IControlService controlService, IKeyManagementService keyService, IKeyPairService keyPairService,
                          IObjectSerializationProvider serializationProvider, IAsymmetricEncryptionProvider asymmetricEncryptionProvider,
                          IActivationLogService activationLogService, IMasterService masterService, ICommonService commonService, IProductManagementService productManagementService)
 {
     _controlService               = controlService;
     _keyService                   = keyService;
     _keyPairService               = keyPairService;
     _serializationProvider        = serializationProvider;
     _asymmetricEncryptionProvider = asymmetricEncryptionProvider;
     _activationLogService         = activationLogService;
     _masterService                = masterService;
     _commonService                = commonService;
     _productManagementService     = productManagementService;
 }
        public static Signature Sign(byte[] data, string password, Keypair kp)
        {
            IAsymmetricEncryptionProvider provider = GetRsaProvider(kp.RsaProvider);

            provider.SetKeyPair(kp, password);
            var signature = new Signature {
                Data = new byte[data.Length]
            };

            Array.Copy(data, signature.Data, data.Length);
            // todo include salt
            signature.SignatureData = provider.SignData(signature.Data);
            signature.AuthorId      = kp.ShortId;
            return(signature);
        }
        public static byte[] Decrypt(Message m, string password, Keypair kp)
        {
            if (m.RecipientId != kp.ShortId)
            {
                throw new InvalidOperationException("Keypair does not match the recipient");
            }
            IAsymmetricEncryptionProvider provider = GetRsaProvider(kp.RsaProvider);

            provider.SetKeyPair(kp, password);
            byte[] key = provider.Decrypt(m.EncryptedKey);
            var    aes = new AesSymmetricEncryptionProvider {
                Key = key, Iv = m.Iv
            };

            return(aes.TransformAsync(m.Content, false).Result);
        }
        /// <summary>
        ///     Encrypts <paramref name="data" /> for <paramref name="recipient" />. <paramref name="recipient" /> can be a public
        ///     key.
        /// </summary>
        /// <param name="recipient"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static Message Encrypt(Keypair recipient, byte[] data)
        {
            IAsymmetricEncryptionProvider provider = GetRsaProvider(recipient.RsaProvider);

            provider.SetKeyPair(recipient.ToPublic());
            var aes = new AesSymmetricEncryptionProvider();

            byte[] cipher       = aes.TransformAsync(data).Result;
            byte[] encryptedKey = provider.Encrypt(aes.Key);
            var    m            = new Message {
                Content      = cipher,
                EncryptedKey = encryptedKey,
                Iv           = aes.Iv,
                RecipientId  = recipient.ShortId
            };

            return(m);
        }
예제 #22
0
        private void SetService()
        {
            if (_service == null)
            {
                IAsymmetricEncryptionProvider asymmetricEncryptionProvider =
                    ObjectLocator.GetInstance <IAsymmetricEncryptionProvider>();

                _service = new Service();
                _service.OutboundKeyPair           = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);
                _service.InboundKeyPair            = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);
                _service.ManagementInboundKeyPair  = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);
                _service.ManagementOutboundKeyPair = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);
                _service.Token = Guid.NewGuid().ToString();

                IStringDataGeneratorProvider stringDataGenerator = ObjectLocator.GetInstance <IStringDataGeneratorProvider>();
                _service.ClientRequestToken     = stringDataGenerator.GenerateRandomString(10, 25, true, true);
                _service.ManagementRequestToken = stringDataGenerator.GenerateRandomString(10, 25, true, true);
            }
        }
 public void WireUp()
 {
     asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
     _key = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);
 }
            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]);
            }
			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]);
			}
 public void WireUp()
 {
     asymmetricEncryptionProvider = new AsymmetricEncryptionProvider();
     _key = asymmetricEncryptionProvider.GenerateKeyPair(BitStrengths.High);
 }
예제 #27
0
        private async void butGenerate_Click(object sender, EventArgs e)
        {
            // validate form
            textBox_name.Text = textBox_name.Text.Trim();
            bool nameValid = !string.IsNullOrWhiteSpace(textBox_name.Text);

            textBox_email.Text = textBox_email.Text.Trim();
            bool emailValid = !string.IsNullOrWhiteSpace(textBox_email.Text);

            if (emailValid)
            {
                try {
                    new MailAddress(textBox_email.Text);
                }
                catch {
                    emailValid = false;
                }
            }

            if (!nameValid)
            {
                MessageBox.Show("Jméno musí být vyplněno.");
                return;
            }

            if (!emailValid)
            {
                MessageBox.Show("E-mail není v pořádku.");
                return;
            }

            butGenerate.Enabled = false;
            progressBar.Style   = ProgressBarStyle.Marquee;
            int selectedItem = comboBox_model.SelectedIndex;
            await Task.Factory.StartNew(() => {
                switch (selectedItem)
                {
                case 0:     // .NET RSA
                    var sym = new SystemAsymmetricEncryptionProvider();
                    sym.EnsurePositiveModulus();
                    _aep = sym;
                    break;

                case 1:     // Hitai RSA
                    var hiaep = new HitaiAsymmetricEncryptionProvider();
                    try {
                        hiaep.GenerateNewKeypair(_cancellationTokenSource.Token);
                    }
                    catch (OperationCanceledException) {
                        Cancelled = true;
                        return;
                    }

                    _aep = hiaep;
                    break;

                default:
                    throw new NotImplementedException();
                }
            });

            if (Cancelled)
            {
                return;
            }
            progressBar.Style   = ProgressBarStyle.Continuous;
            butGenerate.Enabled = true;
            var passwordCreationDialog = new CreatePasswordDialog();

            if (passwordCreationDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            Keypair = _aep.GetPrivateKey(passwordCreationDialog.Password);
            Keypair.CreationTime = DateTime.Now;
            Keypair.Expires      = dateTimePicker.Value;
            Keypair.UserId       = $"{textBox_name.Text} <{textBox_email.Text}>";
            Keypair.RsaProvider  =
                Array.IndexOf(AsymmetricEncryptionController.ProviderList, _aep.GetType());
            textBox_id.Text = Keypair.ShortId;
            butSave.Enabled = true;
        }