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); } }
/// <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()); }
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()); }