Пример #1
0
        public IEnumerable <ExtKey> GetSecrets(string password, params Script[] scripts)
        {
            Key secret;

            try
            {
                secret = EncryptedSecret.GetKey(password);
            }
            catch (SecurityException ex)
            {
                throw new SecurityException("Invalid password.", ex);
            }
            var extKey  = new ExtKey(secret, ChainCode);
            var extKeys = new List <ExtKey>();

            lock (HdPubKeysLock)
            {
                foreach (HdPubKey key in HdPubKeys.Where(x =>
                                                         scripts.Contains(x.GetP2wpkhScript()) ||
                                                         scripts.Contains(x.GetP2shOverP2wpkhScript()) ||
                                                         scripts.Contains(x.GetP2pkhScript()) ||
                                                         scripts.Contains(x.GetP2pkScript())))
                {
                    ExtKey ek = extKey.Derive(key.FullKeyPath);
                    extKeys.Add(ek);
                }
                return(extKeys);
            }
        }
Пример #2
0
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="Rest.ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (EncryptedSecret != null)
     {
         EncryptedSecret.Validate();
     }
 }
            public void ReturnsNull()
            {
                // Arrange
                var encryptedSecret = new EncryptedSecret("mySecret", 1000);
                var xml             = (IXmlSerializable)encryptedSecret;

                // Act
                var schema = xml.GetSchema();

                // Assert
                Assert.Null(schema);
            }
            public void ReturnsEncryptedSecret()
            {
                // Arrange
                string secret     = "mySecret";
                int    iterations = 1000;

                // Act
                var encryptedSecret = new EncryptedSecret(secret, iterations);

                // Assert
                Assert.IsAssignableFrom <EncryptedSecret>(encryptedSecret);
            }
            public void ReturnsDecryptedSecret()
            {
                // Arrange
                string secret          = "mySecret";
                int    iterations      = 1000;
                var    encryptedSecret = new EncryptedSecret(secret, iterations);

                // Act
                var decryptedSecret = encryptedSecret.Decrypt();

                // Assert
                Assert.Equal(secret, decryptedSecret);
            }
            public void ConnectionIsSpecified_SetsLeaderboardsConnectionString()
            {
                // Arrange
                string[] args = { "--connection=myConnectionString" };

                // Act
                parser.Parse(args, settings);

                // Assert
                var encrypted = new EncryptedSecret("myConnectionString", 1);

                Assert.Equal(encrypted.Decrypt(), settings.LeaderboardsConnectionString.Decrypt());
            }
            public void ConnectionFlagIsSpecified_PromptsUserForConnectionAndSetsLeaderboardsConnectionString()
            {
                // Arrange
                string[] args = { "--connection" };
                mockInReader
                .SetupSequence(r => r.ReadLine())
                .Returns("myConnectionString");

                // Act
                parser.Parse(args, settings);

                // Assert
                var encrypted = new EncryptedSecret("myConnectionString", 1);

                Assert.Equal(encrypted.Decrypt(), settings.LeaderboardsConnectionString.Decrypt());
            }
            public void PasswordIsSpecified_SetsSteamPassword()
            {
                // Arrange
                string[] args = { "--password=myPassword" };
                IDailyLeaderboardsSettings settings = new StubDailyLeaderboardsSettings
                {
                    SteamUserName           = "******",
                    SteamPassword           = new EncryptedSecret("a", 1),
                    KeyDerivationIterations = 1,
                };

                // Act
                parser.Parse(args, settings);

                // Assert
                var encrypted = new EncryptedSecret("myPassword", 1);

                Assert.Equal(encrypted.Decrypt(), settings.SteamPassword.Decrypt());
            }
Пример #9
0
        public IEnumerable <ExtKey> GetSecrets(string password, IEnumerable <Script> scripts)
        {
            Key secret  = EncryptedSecret.GetKey(password);
            var extKey  = new ExtKey(secret, ChainCode);
            var extKeys = new List <ExtKey>();

            lock (HdPubKeysLock)
            {
                foreach (HdPubKey key in HdPubKeys.Where(x =>
                                                         scripts.Contains(x.GetP2wpkhScript()) ||
                                                         scripts.Contains(x.GetP2shOverP2wpkhScript()) ||
                                                         scripts.Contains(x.GetP2pkhScript()) ||
                                                         scripts.Contains(x.GetP2pkScript())))
                {
                    ExtKey ek = extKey.Derive(key.FullKeyPath);
                    extKeys.Add(ek);
                }
                return(extKeys);
            }
        }
            public void PasswordFlagIsSpecified_PromptsUserForPasswordAndSetsSteamPassword()
            {
                // Arrange
                string[] args = { "--password" };
                IDailyLeaderboardsSettings settings = new StubDailyLeaderboardsSettings
                {
                    SteamUserName           = "******",
                    SteamPassword           = new EncryptedSecret("a", 1),
                    KeyDerivationIterations = 1,
                };

                mockInReader
                .SetupSequence(r => r.ReadLine())
                .Returns("myPassword");

                // Act
                parser.Parse(args, settings);

                // Assert
                var encrypted = new EncryptedSecret("myPassword", 1);

                Assert.Equal(encrypted.Decrypt(), settings.SteamPassword.Decrypt());
            }
            public void SerializesAndDeserializes()
            {
                // Arrange
                var provider = new ServiceSettingsProvider();

                provider.GetSettingsWriter = () => sw;
                var context = new SettingsContext();
                var values  = new SettingsPropertyValueCollection();

                var property = SettingsUtil.CreateProperty <EncryptedSecret>("myProp");

                property.SerializeAs = SettingsSerializeAs.Xml;
                var value           = new SettingsPropertyValue(property);
                var encryptedSecret = new EncryptedSecret("mySecret", 1000);

                value.PropertyValue = encryptedSecret;
                values.Add(value);

                // Act
                provider.SetPropertyValues(context, values);

                // Arrange
                provider.GetSettingsReader = () => new StringReader(sw.ToString());
                var properties = new SettingsPropertyCollection();

                properties.Add(property);

                // Act
                var values2 = provider.GetPropertyValues(context, properties);
                var myProp  = values2["myProp"].PropertyValue;

                // Assert
                Assert.IsAssignableFrom <EncryptedSecret>(myProp);
                var encryptedSecret2 = (EncryptedSecret)myProp;

                Assert.Equal("mySecret", encryptedSecret2.Decrypt());
            }