Пример #1
0
        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);
        }
Пример #2
0
 public TorSharpProxy(TorSharpSettings settings)
 {
     _settings          = settings;
     _torPasswordHasher = new TorPasswordHasher(new RandomFactory());
     _toolRunner        =
         settings.ToolRunnerType == ToolRunnerType.VirtualDesktop
             ? (IToolRunner) new VirtualDesktopToolRunner()
             : new SimpleToolRunner();
 }
Пример #3
0
        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
        }
Пример #4
0
        /// <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.");
            }
        }