private void MatchesExpectedHashedPassword(string password, string expected) { // Arrange var salt = GetSalt(expected); var random = new Mock <IRandom>(); random .Setup(x => x.GetBytes(It.IsAny <byte[]>())) .Callback <byte[]>(x => Buffer.BlockCopy(salt, 0, x, 0, Math.Min(salt.Length, x.Length))); var randomFactory = new Mock <IRandomFactory>(); randomFactory .Setup(x => x.Create()) .Returns(random.Object); var torPasswordHasher = new TorPasswordHasher(randomFactory.Object); // Act var actual = torPasswordHasher.HashPassword(password); // Assert Assert.Equal(expected, actual); }
public TorSharpProxy(TorSharpSettings settings) { _settings = settings; _torPasswordHasher = new TorPasswordHasher(new RandomFactory()); _toolRunner = settings.ToolRunnerType == ToolRunnerType.VirtualDesktop ? (IToolRunner) new VirtualDesktopToolRunner() : new SimpleToolRunner(); }
public TorSharpProxy(TorSharpSettings settings) { _settings = settings; _torPasswordHasher = new TorPasswordHasher(new RandomFactory()); #if NET45 if (settings.ToolRunnerType == ToolRunnerType.VirtualDesktop) { _toolRunner = new VirtualDesktopToolRunner(); } else { _toolRunner = new SimpleToolRunner(); } #else _toolRunner = new SimpleToolRunner(); #endif }
/// <summary> /// Initializes an instance of the proxy controller. /// </summary> /// <param name="settings">The settings to dictate the proxy's behavior.</param> public TorSharpProxy(TorSharpSettings settings) { _settings = settings ?? throw new ArgumentNullException(nameof(settings)); _torPasswordHasher = new TorPasswordHasher(new RandomFactory()); switch (settings.ToolRunnerType) { case ToolRunnerType.Simple: _toolRunner = new SimpleToolRunner(); break; case ToolRunnerType.VirtualDesktop: if (settings.OSPlatform != TorSharpOSPlatform.Windows) { settings.RejectRuntime($"use the {nameof(ToolRunnerType.VirtualDesktop)} tool runner"); } _toolRunner = new VirtualDesktopToolRunner(); break; default: throw new NotImplementedException($"The '{settings.ToolRunnerType}' tool runner is not supported."); } }