Ejemplo n.º 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));
            }
        }
Ejemplo n.º 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();
        }
Ejemplo n.º 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();
 }
Ejemplo n.º 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));
 }
Ejemplo n.º 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();
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 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();
 }
Ejemplo n.º 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);
        }
Ejemplo n.º 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;
 }
Ejemplo n.º 12
0
 protected EncryptorBase(ICryptoRandom random)
 {
     if (random == null)
     {
         throw new ArgumentNullException(nameof(random));
     }
     _random = random;
 }
Ejemplo n.º 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();
        }
Ejemplo n.º 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);
 }
Ejemplo n.º 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;
 }
Ejemplo n.º 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));
 }
Ejemplo n.º 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();
 }
Ejemplo n.º 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);
        }
Ejemplo n.º 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);
 }
Ejemplo n.º 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);
            }
Ejemplo n.º 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;
        }
Ejemplo n.º 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;
 }
Ejemplo n.º 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);
 }
Ejemplo n.º 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
            });
        }
Ejemplo n.º 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;
 }
Ejemplo n.º 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>()));
        }
Ejemplo n.º 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);
        }