Пример #1
0
        public virtual async Task<INdmCapabilityConnector> InitAsync(IConfigProvider configProvider,
            IDbProvider dbProvider, string baseDbPath, IBlockTree blockTree,
            ITxPool txPool, ISpecProvider specProvider, IReceiptStorage receiptStorage, IWallet wallet,
            IFilterStore filterStore, IFilterManager filterManager,
            ITimestamper timestamper, IEthereumEcdsa ecdsa, IRpcModuleProvider rpcModuleProvider, IKeyStore keyStore,
            IJsonSerializer jsonSerializer, ICryptoRandom cryptoRandom, IEnode enode,
            INdmConsumerChannelManager consumerChannelManager, INdmDataPublisher dataPublisher, IGrpcServer grpcServer,
            INodeStatsManager nodeStatsManager, IProtocolsManager protocolsManager,
            IProtocolValidator protocolValidator, IMessageSerializationService messageSerializationService,
            bool enableUnsecuredDevWallet, IWebSocketsManager webSocketsManager, ILogManager logManager,
            IBlockProcessor blockProcessor)
        {
            var (config, services, faucet, accountService, consumerService, consumerAddress, providerAddress) =
                await PreInitAsync(configProvider, dbProvider, baseDbPath, blockTree, txPool, specProvider,
                    receiptStorage, wallet, filterStore, filterManager, timestamper, ecdsa, rpcModuleProvider, keyStore,
                    jsonSerializer, cryptoRandom, enode, consumerChannelManager, dataPublisher, grpcServer,
                    enableUnsecuredDevWallet, webSocketsManager, logManager, blockProcessor);
            if (!config.Enabled)
            {
                return default;
            }

            var subprotocolFactory = new NdmSubprotocolFactory(messageSerializationService, nodeStatsManager,
                logManager, accountService, consumerService, consumerChannelManager, ecdsa, wallet, faucet,
                enode.PublicKey, providerAddress, consumerAddress, config.VerifyP2PSignature);
            var protocolHandlerFactory = new ProtocolHandlerFactory(subprotocolFactory, protocolValidator,
                services.RequiredServices.EthRequestService, logManager);
            var capabilityConnector = new NdmCapabilityConnector(protocolsManager, protocolHandlerFactory,
                accountService, logManager);

            return capabilityConnector;
        }
        public void Wiggle_is_fine()
        {
            Queue <int> randoms        = new(new List <int> {
                100, 600, 1000, 2000, 50
            });
            ICryptoRandom cryptoRandom = Substitute.For <ICryptoRandom>();

            cryptoRandom.NextInt(Arg.Any <int>()).Returns(ci => randoms.Dequeue());

            Snapshot snapshot = new(1, Keccak.Zero, new SortedList <Address, long>(AddressComparer.Instance)
            {
                { TestItem.AddressA, 1 },
                { TestItem.AddressB, 2 },
                { TestItem.AddressC, 3 },
                { TestItem.AddressD, 4 }
            });
            ISnapshotManager snapshotManager = Substitute.For <ISnapshotManager>();

            snapshotManager.GetOrCreateSnapshot(Arg.Any <long>(), Arg.Any <Keccak>()).Returns(snapshot);
            WiggleRandomizer randomizer = new(cryptoRandom, snapshotManager);

            BlockHeader header1 = Build.A.BlockHeader.WithNumber(1).TestObject;

            for (int i = 0; i < 5; i++)
            {
                Assert.AreEqual(100, randomizer.WiggleFor(header1));
            }
        }
Пример #3
0
        public CliqueBlockProducer(ITransactionPool transactionPool,
                                   IBlockchainProcessor blockchainProcessor,
                                   IBlockTree blockTree,
                                   ITimestamp timestamp,
                                   ICryptoRandom cryptoRandom,
                                   IStateProvider stateProvider,
                                   ISnapshotManager snapshotManager,
                                   ISealer cliqueSealer,
                                   Address address,
                                   ICliqueConfig config,
                                   ILogManager logManager)
        {
            _logger          = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _transactionPool = transactionPool ?? throw new ArgumentNullException(nameof(transactionPool));
            _processor       = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor));
            _blockTree       = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _stateProvider   = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _timestamp       = timestamp ?? throw new ArgumentNullException(nameof(timestamp));
            _cryptoRandom    = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _sealer          = cliqueSealer ?? throw new ArgumentNullException(nameof(cliqueSealer));
            _snapshotManager = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config          = config ?? throw new ArgumentNullException(nameof(config));
            _address         = address ?? throw new ArgumentNullException(nameof(address));

            _timer.AutoReset = false;
            _timer.Elapsed  += TimerOnElapsed;
            _timer.Interval  = 100;
            _timer.Start();
        }
Пример #4
0
 public void Setup()
 {
     _configProvider            = Substitute.For <IConfigProvider>();
     _configManager             = Substitute.For <IConfigManager>();
     _ndmConfig                 = new NdmConfig();
     _baseDbPath                = "db";
     _rocksProvider             = Substitute.For <IDbProvider>();
     _mongoProvider             = Substitute.For <IMongoProvider>();
     _logManager                = Substitute.For <ILogManager>();
     _blockTree                 = Substitute.For <IBlockTree>();
     _specProvider              = Substitute.For <ISpecProvider>();
     _transactionPool           = Substitute.For <ITxPool>();
     _receiptStorage            = Substitute.For <IReceiptStorage>();
     _filterStore               = Substitute.For <IFilterStore>();
     _filterManager             = Substitute.For <IFilterManager>();
     _wallet                    = Substitute.For <IWallet>();
     _timestamper               = Substitute.For <ITimestamper>();
     _ecdsa                     = Substitute.For <IEthereumEcdsa>();
     _keyStore                  = Substitute.For <IKeyStore>();
     _rpcModuleProvider         = Substitute.For <IRpcModuleProvider>();
     _jsonSerializer            = Substitute.For <IJsonSerializer>();
     _cryptoRandom              = Substitute.For <ICryptoRandom>();
     _enode                     = Substitute.For <IEnode>();
     _ndmConsumerChannelManager = Substitute.For <INdmConsumerChannelManager>();
     _ndmDataPublisher          = Substitute.For <INdmDataPublisher>();
     _grpcServer                = Substitute.For <IGrpcServer>();
     _ethRequestService         = Substitute.For <IEthRequestService>();
     _notifier                  = Substitute.For <INdmNotifier>();
     _enableUnsecuredDevWallet  = false;
     _blockProcessor            = Substitute.For <IBlockProcessor>();
     _ndmModule                 = new NdmModule();
 }
Пример #5
0
 public NodeKeyManager(ICryptoRandom cryptoRandom, IKeyStore keyStore, IKeyStoreConfig config, ILogManager logManager)
 {
     _cryptoRandom = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _keyStore     = keyStore ?? throw new ArgumentNullException(nameof(keyStore));
     _config       = config ?? throw new ArgumentNullException(nameof(config));
     _logger       = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
 }
Пример #6
0
        public CliqueBlockProducer(IPendingTxSelector pendingTxSelector,
                                   IBlockchainProcessor blockchainProcessor,
                                   IStateProvider stateProvider,
                                   IBlockTree blockTree,
                                   ITimestamper timestamper,
                                   ICryptoRandom cryptoRandom,
                                   ISnapshotManager snapshotManager,
                                   ISealer cliqueSealer,
                                   Address address,
                                   ICliqueConfig config,
                                   ILogManager logManager)
        {
            _logger            = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _pendingTxSelector = pendingTxSelector ?? throw new ArgumentNullException(nameof(pendingTxSelector));
            _processor         = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor));
            _blockTree         = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _stateProvider     = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _timestamper       = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
            _cryptoRandom      = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _sealer            = cliqueSealer ?? throw new ArgumentNullException(nameof(cliqueSealer));
            _snapshotManager   = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config            = config ?? throw new ArgumentNullException(nameof(config));
            _address           = address ?? throw new ArgumentNullException(nameof(address));
            _wiggle            = new WiggleRandomizer(_cryptoRandom, _snapshotManager);

            _timer.AutoReset = false;
            _timer.Elapsed  += TimerOnElapsed;
            _timer.Interval  = 100;
            _timer.Start();
        }
Пример #7
0
        public void Wiggle_has_no_min_value()
        {
            Queue <int> randoms = new Queue <int>(new List <int> {
                Clique.WiggleTime / 2, Clique.WiggleTime, Clique.WiggleTime * 2, Clique.WiggleTime * 3
            });
            ICryptoRandom cryptoRandom = Substitute.For <ICryptoRandom>();

            cryptoRandom.NextInt(Arg.Any <int>()).Returns(ci => randoms.Dequeue());

            Snapshot snapshot = new Snapshot(1, Keccak.Zero, new SortedList <Address, long>(AddressComparer.Instance)
            {
                { TestItem.AddressA, 1 },
                { TestItem.AddressB, 2 },
                { TestItem.AddressC, 3 },
                { TestItem.AddressD, 4 }
            });

            ISnapshotManager snapshotManager = Substitute.For <ISnapshotManager>();

            snapshotManager.GetOrCreateSnapshot(Arg.Any <long>(), Arg.Any <Keccak>()).Returns(snapshot);
            WiggleRandomizer randomizer = new WiggleRandomizer(cryptoRandom, snapshotManager);

            BlockHeader header1 = Build.A.BlockHeader.WithNumber(1).TestObject;
            BlockHeader header2 = Build.A.BlockHeader.WithNumber(2).TestObject;
            BlockHeader header3 = Build.A.BlockHeader.WithNumber(3).TestObject;
            int         wiggle  = randomizer.WiggleFor(header1);

            Assert.AreEqual(Clique.WiggleTime / 2, wiggle);

            wiggle = randomizer.WiggleFor(header2);
            Assert.AreEqual(Clique.WiggleTime, wiggle);

            wiggle = randomizer.WiggleFor(header3);
            Assert.AreEqual(Clique.WiggleTime * 2, wiggle);
        }
Пример #8
0
 public DiscoveryApp(
     INodesLocator nodesLocator,
     IDiscoveryManager discoveryManager,
     INodeTable nodeTable,
     IMessageSerializationService messageSerializationService,
     ICryptoRandom cryptoRandom,
     INetworkStorage discoveryStorage,
     INetworkConfig networkConfig,
     IDiscoveryConfig discoveryConfig,
     ITimestamper timestamper,
     ILogManager logManager,
     IPerfService perfService)
 {
     _logManager                  = logManager ?? throw new ArgumentNullException(nameof(logManager));
     _logger                      = _logManager.GetClassLogger();
     _perfService                 = perfService ?? throw new ArgumentNullException(nameof(perfService));
     _discoveryConfig             = discoveryConfig ?? throw new ArgumentNullException(nameof(discoveryConfig));
     _timestamper                 = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
     _nodesLocator                = nodesLocator ?? throw new ArgumentNullException(nameof(nodesLocator));
     _discoveryManager            = discoveryManager ?? throw new ArgumentNullException(nameof(discoveryManager));
     _nodeTable                   = nodeTable ?? throw new ArgumentNullException(nameof(nodeTable));
     _messageSerializationService = messageSerializationService ?? throw new ArgumentNullException(nameof(messageSerializationService));
     _cryptoRandom                = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _discoveryStorage            = discoveryStorage ?? throw new ArgumentNullException(nameof(discoveryStorage));
     _networkConfig               = networkConfig ?? throw new ArgumentNullException(nameof(networkConfig));
     _discoveryStorage.StartBatch();
 }
Пример #9
0
        public CliqueBlockProducer(
            ITxSource txSource,
            IBlockchainProcessor blockchainProcessor,
            IStateProvider stateProvider,
            IBlockTree blockTree,
            ITimestamper timestamper,
            ICryptoRandom cryptoRandom,
            ISnapshotManager snapshotManager,
            ISealer cliqueSealer,
            IGasLimitCalculator gasLimitCalculator,
            ISpecProvider?specProvider,
            ICliqueConfig config,
            ILogManager logManager)
        {
            _logger             = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
            _txSource           = txSource ?? throw new ArgumentNullException(nameof(txSource));
            _processor          = blockchainProcessor ?? throw new ArgumentNullException(nameof(blockchainProcessor));
            _blockTree          = blockTree ?? throw new ArgumentNullException(nameof(blockTree));
            _stateProvider      = stateProvider ?? throw new ArgumentNullException(nameof(stateProvider));
            _timestamper        = timestamper ?? throw new ArgumentNullException(nameof(timestamper));
            _cryptoRandom       = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _sealer             = cliqueSealer ?? throw new ArgumentNullException(nameof(cliqueSealer));
            _gasLimitCalculator = gasLimitCalculator ?? throw new ArgumentNullException(nameof(gasLimitCalculator));
            _specProvider       = specProvider ?? throw new ArgumentNullException(nameof(specProvider));
            _snapshotManager    = snapshotManager ?? throw new ArgumentNullException(nameof(snapshotManager));
            _config             = config ?? throw new ArgumentNullException(nameof(config));
            _wiggle             = new WiggleRandomizer(_cryptoRandom, _snapshotManager);

            _timer.AutoReset = false;
            _timer.Elapsed  += TimerOnElapsed;
            _timer.Interval  = 100;
            _timer.Start();
        }
        public void Returns_zero_for_in_turn_blocks()
        {
            Queue <int> randoms        = new(new List <int> {
                Consensus.Clique.Clique.WiggleTime / 2, Consensus.Clique.Clique.WiggleTime, Consensus.Clique.Clique.WiggleTime * 2, Consensus.Clique.Clique.WiggleTime * 3
            });
            ICryptoRandom cryptoRandom = Substitute.For <ICryptoRandom>();

            cryptoRandom.NextInt(Arg.Any <int>()).Returns(ci => randoms.Dequeue());

            Snapshot snapshot = new(1, Keccak.Zero, new SortedList <Address, long>(AddressComparer.Instance)
            {
                { TestItem.AddressA, 1 },
                { TestItem.AddressB, 2 },
                { TestItem.AddressC, 3 },
                { TestItem.AddressD, 4 }
            });

            ISnapshotManager snapshotManager = Substitute.For <ISnapshotManager>();

            snapshotManager.GetOrCreateSnapshot(Arg.Any <long>(), Arg.Any <Keccak>()).Returns(snapshot);
            WiggleRandomizer randomizer = new(cryptoRandom, snapshotManager);

            BlockHeader header1 = Build.A.BlockHeader.WithNumber(1).WithDifficulty(Consensus.Clique.Clique.DifficultyInTurn).TestObject;
            int         wiggle  = randomizer.WiggleFor(header1);

            Assert.AreEqual(0, wiggle);
        }
Пример #11
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="BlowfishEncryptor" /> class with a defined
 ///     <see cref="BlowfishCipherMode" /> and <see cref="ICryptoRandom" />.
 /// </summary>
 /// <param name="chiperMode">The chiper mode.</param>
 /// <param name="random">The random generator to be used for creation of IV's.</param>
 /// <exception cref="UnexpectedEnumValueException{BlowfishCipherMode}">
 ///     <paramref name="chiperMode" /> is not defined in <see cref="BlowfishCipherMode" />.
 /// </exception>
 /// <seealso cref="BlowfishCipherMode" />
 /// <seealso cref="IvSize" />
 /// <seealso cref="ICryptoRandom" />
 public BlowfishEncryptor(BlowfishCipherMode chiperMode, ICryptoRandom random) : base(random)
 {
     if (((int)chiperMode != 0) && ((int)chiperMode != 1))
     {
         throw new UnexpectedEnumValueException <BlowfishCipherMode>(chiperMode);
     }
     CipherMode = chiperMode;
 }
Пример #12
0
 protected EncryptorBase(ICryptoRandom random)
 {
     if (random == null)
     {
         throw new ArgumentNullException(nameof(random));
     }
     _random = random;
 }
Пример #13
0
        public EthashSealValidator(ILogManager logManager, IDifficultyCalculator difficultyCalculator, ICryptoRandom cryptoRandom, IEthash ethash)
        {
            _difficultyCalculator = difficultyCalculator ?? throw new ArgumentNullException(nameof(difficultyCalculator));
            _cryptoRandom         = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
            _ethash = ethash ?? throw new ArgumentNullException(nameof(ethash));
            _logger = logManager.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));

            ResetValidationInterval();
        }
Пример #14
0
 public FileKeyStore(IConfigProvider configurationProvider, IJsonSerializer jsonSerializer, ISymmetricEncrypter symmetricEncrypter, ICryptoRandom cryptoRandom, ILogManager logManager)
 {
     _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _configurationProvider = configurationProvider.GetConfig <KeystoreConfig>();
     _jsonSerializer        = jsonSerializer;
     _symmetricEncrypter    = symmetricEncrypter;
     _cryptoRandom          = cryptoRandom;
     _keyStoreEncoding      = Encoding.GetEncoding(_configurationProvider.KeyStoreEncoding);
 }
Пример #15
0
 public FileKeyStore(IKeyStoreConfig keyStoreConfig, IJsonSerializer jsonSerializer, ISymmetricEncrypter symmetricEncrypter, ICryptoRandom cryptoRandom, ILogManager logManager)
 {
     _logger              = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _config              = keyStoreConfig ?? throw new ArgumentNullException(nameof(keyStoreConfig));
     _jsonSerializer      = jsonSerializer ?? throw new ArgumentNullException(nameof(jsonSerializer));
     _symmetricEncrypter  = symmetricEncrypter ?? throw new ArgumentNullException(nameof(symmetricEncrypter));
     _cryptoRandom        = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _keyStoreEncoding    = Encoding.GetEncoding(_config.KeyStoreEncoding);
     _privateKeyGenerator = new PrivateKeyGenerator(_cryptoRandom);
 }
 public RandomContractTxSource(IList <RandomContract> contracts,
                               IEciesCipher eciesCipher,
                               PrivateKey privateKey,
                               ICryptoRandom cryptoRandom)
 {
     _contracts   = contracts ?? throw new ArgumentNullException(nameof(contracts));
     _eciesCipher = eciesCipher ?? throw new ArgumentNullException(nameof(eciesCipher));
     _privateKey  = privateKey ?? throw new ArgumentNullException(nameof(privateKey));
     _random      = cryptoRandom;
 }
Пример #17
0
 public RandomContractTxSource(
     IList <IRandomContract> contracts,
     IEciesCipher eciesCipher,
     ProtectedPrivateKey cryptoKey,
     ICryptoRandom cryptoRandom,
     ILogManager logManager)
 {
     _contracts   = contracts ?? throw new ArgumentNullException(nameof(contracts));
     _eciesCipher = eciesCipher ?? throw new ArgumentNullException(nameof(eciesCipher));
     _cryptoKey   = cryptoKey ?? throw new ArgumentNullException(nameof(cryptoKey));
     _random      = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _logger      = logManager?.GetClassLogger <RandomContractTxSource>() ?? throw new ArgumentNullException(nameof(logManager));
 }
Пример #18
0
 public DiscoveryApp(IDiscoveryConfigurationProvider configurationProvider, INodesLocator nodesLocator, ILogger logger, IDiscoveryManager discoveryManager, INodeFactory nodeFactory, INodeTable nodeTable, IMessageSerializationService messageSerializationService, ICryptoRandom cryptoRandom, IDiscoveryStorage discoveryStorage)
 {
     _configurationProvider = configurationProvider;
     _nodesLocator          = nodesLocator;
     _logger                      = logger;
     _discoveryManager            = discoveryManager;
     _nodeFactory                 = nodeFactory;
     _nodeTable                   = nodeTable;
     _messageSerializationService = messageSerializationService;
     _cryptoRandom                = cryptoRandom;
     _discoveryStorage            = discoveryStorage;
     _discoveryStorage.StartBatch();
 }
Пример #19
0
        public void Initialize()
        {
            var config = new VaultConfig();

            _keyStoreConfig             = new KeyStoreConfig();
            _keyStoreIOSettingsProvider = new VaultKeyStoreIOSettingsProvider(config);

            ILogManager logger = LimboLogs.Instance;

            _serializer   = new EthereumJsonSerializer();
            _cryptoRandom = new CryptoRandom();
            _store        = new FileKeyStore(_keyStoreConfig, _serializer, new AesEncrypter(_keyStoreConfig, logger), _cryptoRandom, logger, _keyStoreIOSettingsProvider);
        }
Пример #20
0
 public FileKeyStore(IKeyStoreConfig keyStoreConfig, IJsonSerializer jsonSerializer,
                     ISymmetricEncrypter symmetricEncrypter, ICryptoRandom cryptoRandom, ILogManager logManager)
 {
     _logger             = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _config             = keyStoreConfig ?? throw new ArgumentNullException(nameof(keyStoreConfig));
     _jsonSerializer     = jsonSerializer ?? throw new ArgumentNullException(nameof(jsonSerializer));
     _symmetricEncrypter = symmetricEncrypter ?? throw new ArgumentNullException(nameof(symmetricEncrypter));
     _cryptoRandom       = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _keyStoreEncoding   = _config.KeyStoreEncoding.Equals("UTF-8", StringComparison.InvariantCultureIgnoreCase)
         ? new UTF8Encoding(false)
         : Encoding.GetEncoding(_config.KeyStoreEncoding);
     _privateKeyGenerator = new PrivateKeyGenerator(_cryptoRandom);
 }
Пример #21
0
            public BenchmarkTestRandom(ICryptoRandom trueRandom, int mod)
            {
                responses = new byte[6][];
                _mod      = mod;
                _i        = -1;

                // WARN: order reflects the internal implementation of the service (tests may fail after any refactoring)
                responses[0] = NetTestVectors.NonceA;
                responses[1] = NetTestVectors.EphemeralKeyA.KeyBytes;
                responses[2] = trueRandom.GenerateRandomBytes(100);
                responses[3] = NetTestVectors.NonceB;
                responses[4] = NetTestVectors.EphemeralKeyB.KeyBytes;
                responses[5] = trueRandom.GenerateRandomBytes(100);
            }
Пример #22
0
        public PrivateKeyProvider(ICryptoRandom cryptoRandom)
        {
            PrivateKey privateKey = null;

            do
            {
                var bytes = cryptoRandom.GenerateRandomBytes(32);
                if (Proxy.VerifyPrivateKey(bytes))
                {
                    privateKey = new PrivateKey(bytes);
                }
            } while (privateKey == null);

            PrivateKey = privateKey;
        }
Пример #23
0
 public NodeKeyManager(
     ICryptoRandom cryptoRandom,
     IKeyStore keyStore,
     IKeyStoreConfig config,
     ILogManager logManager,
     IPasswordProvider passwordProvider,
     IFileSystem fileSystem)
 {
     _cryptoRandom     = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _keyStore         = keyStore ?? throw new ArgumentNullException(nameof(keyStore));
     _config           = config ?? throw new ArgumentNullException(nameof(config));
     _logger           = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _passwordProvider = passwordProvider ?? throw new ArgumentNullException(nameof(passwordProvider));
     _fileSystem       = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
 }
 public RandomContractTxSource(
     IList <IRandomContract> contracts,
     IEciesCipher eciesCipher,
     ISigner signer,
     ProtectedPrivateKey previousCryptoKey, // this is for backwards-compability when upgrading validator node
     ICryptoRandom cryptoRandom,
     ILogManager logManager)
 {
     _contracts         = contracts ?? throw new ArgumentNullException(nameof(contracts));
     _eciesCipher       = eciesCipher ?? throw new ArgumentNullException(nameof(eciesCipher));
     _signer            = signer ?? throw new ArgumentNullException(nameof(signer));
     _previousCryptoKey = previousCryptoKey ?? throw new ArgumentNullException(nameof(previousCryptoKey));
     _random            = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _logger            = logManager?.GetClassLogger <RandomContractTxSource>() ?? throw new ArgumentNullException(nameof(logManager));
 }
 public EncryptionHandshakeService(
     IMessageSerializationService messageSerializationService,
     IEciesCipher eciesCipher,
     ICryptoRandom cryptoRandom,
     ISigner signer,
     PrivateKey privateKey,
     ILogManager logManager)
 {
     _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _messageSerializationService = messageSerializationService;
     _eciesCipher  = eciesCipher;
     _privateKey   = privateKey;
     _cryptoRandom = cryptoRandom;
     _signer       = signer;
 }
Пример #26
0
 public HandshakeService(
     IMessageSerializationService messageSerializationService,
     IEciesCipher eciesCipher,
     ICryptoRandom cryptoRandom,
     IEcdsa ecdsa,
     PrivateKey privateKey,
     ILogManager logManager)
 {
     _logger = logManager?.GetClassLogger() ?? throw new ArgumentNullException(nameof(logManager));
     _messageSerializationService = messageSerializationService ?? throw new ArgumentNullException(nameof(messageSerializationService));
     _eciesCipher        = eciesCipher ?? throw new ArgumentNullException(nameof(eciesCipher));
     _privateKey         = privateKey ?? throw new ArgumentNullException(nameof(privateKey));
     _cryptoRandom       = cryptoRandom ?? throw new ArgumentNullException(nameof(cryptoRandom));
     _ecdsa              = ecdsa ?? throw new ArgumentNullException(nameof(ecdsa));
     _ephemeralGenerator = new PrivateKeyGenerator(_cryptoRandom);
 }
Пример #27
0
        private NodeKeyManagerTest CreateTest()
        {
            IKeyStore         keyStore         = Substitute.For <IKeyStore>();
            ICryptoRandom     cryptoRandom     = Substitute.For <ICryptoRandom>();
            KeyStoreConfig    keyStoreConfig   = new KeyStoreConfig();
            IPasswordProvider passwordProvider = Substitute.For <IPasswordProvider>();
            IFileSystem       fileSystem       = Substitute.For <IFileSystem>();

            return(new NodeKeyManagerTest()
            {
                NodeKeyManager = new NodeKeyManager(cryptoRandom, keyStore, keyStoreConfig, LimboLogs.Instance, passwordProvider, fileSystem),
                KeyStore = keyStore,
                CryptoRandom = cryptoRandom,
                KeyStoreConfig = keyStoreConfig,
                PasswordProvider = passwordProvider,
                FileSystem = fileSystem
            });
        }
Пример #28
0
 public NdmRequiredServices(IConfigProvider configProvider, IConfigManager configManager, INdmConfig ndmConfig,
                            string baseDbPath, IDbProvider rocksProvider, IMongoProvider mongoProvider, ILogManager logManager,
                            IBlockTree blockTree, ITxPool transactionPool, ISpecProvider specProvider, IReceiptStorage receiptStorage,
                            IFilterStore filterStore, IFilterManager filterManager, IWallet wallet, ITimestamper timestamper,
                            IEthereumEcdsa ecdsa, IKeyStore keyStore, IRpcModuleProvider rpcModuleProvider,
                            IJsonSerializer jsonSerializer, ICryptoRandom cryptoRandom, IEnode enode,
                            INdmConsumerChannelManager ndmConsumerChannelManager, INdmDataPublisher ndmDataPublisher,
                            IGrpcServer grpcServer, IEthRequestService ethRequestService, INdmNotifier notifier,
                            bool enableUnsecuredDevWallet, IBlockProcessor blockProcessor, IJsonRpcClientProxy jsonRpcClientProxy,
                            IEthJsonRpcClientProxy ethJsonRpcClientProxy, IHttpClient httpClient, IMonitoringService monitoringService)
 {
     ConfigProvider            = configProvider;
     ConfigManager             = configManager;
     NdmConfig                 = ndmConfig;
     BaseDbPath                = baseDbPath;
     RocksProvider             = rocksProvider;
     MongoProvider             = mongoProvider;
     LogManager                = logManager;
     BlockTree                 = blockTree;
     TransactionPool           = transactionPool;
     SpecProvider              = specProvider;
     ReceiptStorage            = receiptStorage;
     FilterStore               = filterStore;
     FilterManager             = filterManager;
     Wallet                    = wallet;
     Timestamper               = timestamper;
     Ecdsa                     = ecdsa;
     KeyStore                  = keyStore;
     RpcModuleProvider         = rpcModuleProvider;
     JsonSerializer            = jsonSerializer;
     CryptoRandom              = cryptoRandom;
     Enode                     = enode;
     NdmConsumerChannelManager = ndmConsumerChannelManager;
     NdmDataPublisher          = ndmDataPublisher;
     GrpcServer                = grpcServer;
     EthRequestService         = ethRequestService;
     Notifier                  = notifier;
     EnableUnsecuredDevWallet  = enableUnsecuredDevWallet;
     BlockProcessor            = blockProcessor;
     JsonRpcClientProxy        = jsonRpcClientProxy;
     EthJsonRpcClientProxy     = ethJsonRpcClientProxy;
     HttpClient                = httpClient;
     MonitoringService         = monitoringService;
 }
Пример #29
0
        private static IFastEncryptor GetSut(
            BlowfishCipherMode?cipherMode = null,
            ICryptoRandom random          = null,
            PaddingMode paddingMode       = PaddingMode.PKCS7,
            IPadder padder = null)
        {
            IPadderFactory factory = null;

            if (padder != null)
            {
                var factoryMock = new Mock <IPadderFactory>();
                factoryMock.Setup(p => p.GetPadder(paddingMode))
                .Returns(padder);
                factory = factoryMock.Object;
            }

            return(new BlowfishEncryptor(cipherMode ?? BlowfishCipherMode.Cbc, paddingMode,
                                         random ?? Stubs.Get <IFastRandom>(), factory ?? Stubs.Get <IPadderFactory>()));
        }
Пример #30
0
        public void Initialize()
        {
            _config      = new KeyStoreConfig();
            _keyStoreDir = _config.KeyStoreDirectory;
            if (!Directory.Exists(_keyStoreDir))
            {
                Directory.CreateDirectory(_keyStoreDir);
            }

            ILogManager logManager = NullLogManager.Instance;

            _serializer   = new EthereumJsonSerializer();
            _cryptoRandom = new CryptoRandom();
            _store        = new FileKeyStore(_config, _serializer, new AesEncrypter(_config, logManager), _cryptoRandom, logManager);

            var testsContent = File.ReadAllText("basic_tests.json");

            _testsModel = _serializer.Deserialize <KeyStoreTestsModel>(testsContent);
        }