public PeerServerChannelFactoryTests()
        {
            _testScheduler      = new TestScheduler();
            _correlationManager = Substitute.For <IPeerMessageCorrelationManager>();
            _gossipManager      = Substitute.For <IBroadcastManager>();
            _keySigner          = Substitute.For <IKeySigner>();

            var peerSettings = Substitute.For <IPeerSettings>();

            peerSettings.NetworkType.Returns(NetworkType.Devnet);
            var peerValidator = Substitute.For <IPeerIdValidator>();

            peerValidator.ValidatePeerIdFormat(Arg.Any <PeerId>()).Returns(true);

            _factory = new TestPeerServerChannelFactory(
                _correlationManager,
                _gossipManager,
                _keySigner,
                peerValidator,
                peerSettings,
                _testScheduler);
            _senderId      = PeerIdHelper.GetPeerId("sender");
            _correlationId = CorrelationId.GenerateCorrelationId();
            _signature     = ByteUtil.GenerateRandomByteArray(new FfiWrapper().SignatureLength);
            _keySigner.Verify(Arg.Any <ISignature>(), Arg.Any <byte[]>(), default)
            .ReturnsForAnyArgs(true);
        }
        public RpcServerChannelFactoryTests()
        {
            _testScheduler      = new TestScheduler();
            _correlationManager = Substitute.For <IRpcMessageCorrelationManager>();
            _keySigner          = Substitute.For <IKeySigner>();
            _keySigner.CryptoContext.SignatureLength.Returns(64);

            var authenticationStrategy = Substitute.For <IAuthenticationStrategy>();

            authenticationStrategy.Authenticate(Arg.Any <PeerId>()).Returns(true);

            var peerSettings = Substitute.For <IPeerSettings>();

            peerSettings.NetworkType.Returns(NetworkType.Devnet);

            var peerIdValidator = Substitute.For <IPeerIdValidator>();

            peerIdValidator.ValidatePeerIdFormat(Arg.Any <PeerId>()).Returns(true);
            _factory = new TestRpcServerChannelFactory(
                _correlationManager,
                _keySigner,
                authenticationStrategy,
                peerIdValidator,
                peerSettings,
                _testScheduler);
        }
Esempio n. 3
0
 public VerifyMessageRequestObserver(IPeerSettings peerSettings,
                                     ILogger logger,
                                     IKeySigner keySigner)
     : base(logger, peerSettings)
 {
     _keySigner = keySigner;
 }
Esempio n. 4
0
        public CatalystNodePoa(IKeySigner keySigner,
                               IPeerService peer,
                               IConsensus consensus,
                               IDfs dfs,
                               ILedger ledger,
                               ILogger logger,
                               IPeerClient peerClient,
                               IPeerSettings peerSettings,
                               IMempool <PublicEntryDao> memPool,
                               IContract contract = null)
        {
            _peer         = peer;
            _peerClient   = peerClient;
            _peerSettings = peerSettings;
            Consensus     = consensus;
            _dfs          = dfs;
            _ledger       = ledger;
            _keySigner    = keySigner;
            _logger       = logger;
            _memPool      = memPool;
            _contract     = contract;

            var privateKey = keySigner.KeyStore.KeyStoreDecrypt(KeyRegistryTypes.DefaultKey);

            _publicKey = keySigner.CryptoContext.GetPublicKeyFromPrivateKey(privateKey);
        }
Esempio n. 5
0
        public void Init()
        {
            Setup(TestContext.CurrentContext);

            _testMessageToSign = ByteString.CopyFromUtf8("TestMsg");

            ContainerProvider.ContainerBuilder.RegisterInstance(TestKeyRegistry.MockKeyRegistry()).As <IKeyRegistry>();
            ContainerProvider.ContainerBuilder.RegisterModule(new KeystoreModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new KeySignerModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new RpcServerModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new DfsModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new MempoolModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new ConsensusModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new BulletProofsModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new AuthenticationModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new HashingModule());
            ContainerProvider.ContainerBuilder.RegisterType <VerifyMessageRequestObserver>().As <IRpcRequestObserver>();

            ContainerProvider.ContainerBuilder.RegisterInstance(PeerIdHelper.GetPeerId("Test"))
            .As <PeerId>();

            ContainerProvider.ConfigureContainerBuilder();

            _scope       = ContainerProvider.Container.BeginLifetimeScope(CurrentTestName);
            _keySigner   = ContainerProvider.Container.Resolve <IKeySigner>();
            _peerId      = ContainerProvider.Container.Resolve <PeerId>();
            _fakeContext = Substitute.For <IChannelHandlerContext>();

            var fakeChannel = Substitute.For <IChannel>();

            _fakeContext.Channel.Returns(fakeChannel);
            _verifyMessageRequestObserver = _scope.Resolve <IRpcRequestObserver>();
        }
        public VerifyMessageRequestObserverTests()
        {
            _signingContext = new SigningContext
            {
                NetworkType   = NetworkType.Devnet,
                SignatureType = SignatureType.ProtocolRpc
            };

            _testPeerId = PeerIdHelper.GetPeerId("TestPeerIdentifier");

            var peerSettings = _testPeerId.ToSubstitutedPeerSettings();

            _keySigner = Substitute.For <FakeKeySigner>();
            _keySigner.CryptoContext.Returns(new FfiWrapper());

            var logger = Substitute.For <ILogger>();

            _fakeContext = Substitute.For <IChannelHandlerContext>();

            var fakeChannel = Substitute.For <IChannel>();

            _fakeContext.Channel.Returns(fakeChannel);
            _verifyMessageRequestObserver = new VerifyMessageRequestObserver(peerSettings, logger, _keySigner);

            _verifyMessageRequest = GetValidVerifyMessageRequest();
        }
Esempio n. 7
0
        public CatalystNodePoa(IKeySigner keySigner,
                               IPeerService peer,
                               IConsensus consensus,
                               IDfsService dfsService,
                               ILedger ledger,
                               ILogger logger,
                               IPeerClient peerClient,
                               IPeerSettings peerSettings,
                               IMempool <PublicEntryDao> memPool,
                               ISynchroniser synchronizer,
                               IPeerRepository peerRepository,
                               IContract contract = null)
        {
            Guard.Argument(peerRepository, nameof(peerRepository)).NotNull();

            _peer           = peer;
            _peerClient     = peerClient;
            _peerSettings   = peerSettings;
            Consensus       = consensus;
            _dfsService     = dfsService;
            _ledger         = ledger;
            _keySigner      = keySigner;
            _logger         = logger;
            _memPool        = memPool;
            _contract       = contract;
            _synchronizer   = synchronizer;
            _peerRepository = peerRepository;

            var privateKey = keySigner.KeyStore.KeyStoreDecrypt(KeyRegistryTypes.DefaultKey);

            _publicKey = keySigner.CryptoContext.GetPublicKeyFromPrivateKey(privateKey);
        }
 public TestPeerClientChannelFactory(IKeySigner keySigner,
                                     IPeerMessageCorrelationManager correlationManager,
                                     IPeerIdValidator peerIdValidator,
                                     IPeerSettings peerSettings,
                                     IScheduler scheduler)
     : base(keySigner, correlationManager, peerIdValidator, peerSettings, scheduler)
 {
     _handlers = HandlerGenerationFunction();
 }
Esempio n. 9
0
 public TestRpcServerChannelFactory(IRpcMessageCorrelationManager correlationManager,
                                    IKeySigner keySigner,
                                    IAuthenticationStrategy authenticationStrategy,
                                    IPeerIdValidator peerIdValidator,
                                    IPeerSettings peerSettings,
                                    TestScheduler testScheduler)
     : base(correlationManager, keySigner, authenticationStrategy, peerIdValidator, peerSettings, testScheduler)
 {
     _handlers = HandlerGenerationFunction();
 }
Esempio n. 10
0
 public TestPeerServerChannelFactory(IPeerMessageCorrelationManager correlationManager,
                                     IBroadcastManager broadcastManager,
                                     IKeySigner keySigner,
                                     IPeerIdValidator peerIdValidator,
                                     IPeerSettings signingContextProvider,
                                     TestScheduler testScheduler)
     : base(correlationManager, broadcastManager, keySigner, peerIdValidator, signingContextProvider,
            testScheduler)
 {
     _handlers = HandlerGenerationFunction();
 }
Esempio n. 11
0
        public BroadcastManagerTests()
        {
            _senderPeerId = PeerIdHelper.GetPeerId("sender");
            _keySigner    = Substitute.For <IKeySigner>();
            var fakeSignature = Substitute.For <ISignature>();

            _keySigner.Sign(Arg.Any <byte[]>(), default).ReturnsForAnyArgs(fakeSignature);
            _keySigner.CryptoContext.SignatureLength.Returns(64);
            _peers        = Substitute.For <IPeerRepository>();
            _cache        = new MemoryCache(new MemoryCacheOptions());
            _peerSettings = _senderPeerId.ToSubstitutedPeerSettings();
        }
Esempio n. 12
0
        public ProtocolMessageSignHandlerTests()
        {
            _fakeContext = Substitute.For <IChannelHandlerContext>();
            _keySigner   = Substitute.For <IKeySigner>();
            _signature   = Substitute.For <ISignature>();

            _signature.SignatureBytes.Returns(ByteUtil.GenerateRandomByteArray(new FfiWrapper().SignatureLength));
            _signature.PublicKeyBytes.Returns(ByteUtil.GenerateRandomByteArray(new FfiWrapper().PublicKeyLength));

            _dto = new MessageDto(new PingRequest().ToProtocolMessage(PeerIdHelper.GetPeerId("sender")),
                                  PeerIdHelper.GetPeerId("recipient")
                                  );
        }
        public SignMessageRequestObserverTests()
        {
            _keySigner = Substitute.For <IKeySigner>();
            _signature = Substitute.For <ISignature>();
            _signature.SignatureBytes.Returns(ByteUtil.GenerateRandomByteArray(new FfiWrapper().SignatureLength));
            _signature.PublicKeyBytes.Returns(ByteUtil.GenerateRandomByteArray(new FfiWrapper().PublicKeyLength));
            _logger      = Substitute.For <ILogger>();
            _fakeContext = Substitute.For <IChannelHandlerContext>();
            var fakeChannel = Substitute.For <IChannel>();

            _fakeContext.Channel.Returns(fakeChannel);

            _keySigner.Sign(default, default).ReturnsForAnyArgs(_signature);
Esempio n. 14
0
 public PeerClientChannelFactory(IKeySigner keySigner,
                                 IPeerMessageCorrelationManager correlationManager,
                                 IPeerIdValidator peerIdValidator,
                                 IPeerSettings peerSettings,
                                 IScheduler scheduler = null)
 {
     _scheduler          = scheduler ?? Scheduler.Default;
     _keySigner          = keySigner;
     _correlationManager = correlationManager;
     _peerIdValidator    = peerIdValidator;
     _signingContext     = new SigningContext {
         NetworkType = peerSettings.NetworkType, SignatureType = SignatureType.ProtocolPeer
     };
 }
        public ProtocolMessageVerifyHandlerTests()
        {
            _fakeContext    = Substitute.For <IChannelHandlerContext>();
            _keySigner      = Substitute.For <IKeySigner>();
            _signingContext = DevNetPeerSigningContext.Instance;

            var signatureBytes = ByteUtil.GenerateRandomByteArray(new FfiWrapper().SignatureLength);
            var publicKeyBytes = ByteUtil.GenerateRandomByteArray(new FfiWrapper().PublicKeyLength);
            var peerId         = PeerIdHelper.GetPeerId(publicKeyBytes);

            _protocolMessageSigned = new PingRequest()
                                     .ToSignedProtocolMessage(peerId, signatureBytes, _signingContext)
                                     .ToSignedProtocolMessage(peerId, signatureBytes, _signingContext);
        }
        public RpcClientChannelFactoryTests()
        {
            _testScheduler      = new TestScheduler();
            _correlationManager = Substitute.For <IRpcMessageCorrelationManager>();
            _keySigner          = Substitute.For <IKeySigner>();

            var peerIdValidator = Substitute.For <IPeerIdValidator>();

            peerIdValidator.ValidatePeerIdFormat(Arg.Any <PeerId>()).Returns(true);

            var peerSettings = Substitute.For <IPeerSettings>();

            peerSettings.NetworkType.Returns(NetworkType.Devnet);

            _factory = new TestRpcClientChannelFactory(_keySigner, _correlationManager, peerIdValidator,
                                                       peerSettings, _testScheduler);
        }
Esempio n. 17
0
        /// <summary>
        /// </summary>
        /// <param name="keySigner"></param>
        /// <param name="messageCorrelationCache"></param>
        /// <param name="peerIdValidator"></param>
        /// <param name="peerSettings"></param>
        /// <param name="backLogValue"></param>
        /// <param name="scheduler"></param>
        public RpcClientChannelFactory(IKeySigner keySigner,
                                       IRpcMessageCorrelationManager messageCorrelationCache,
                                       IPeerIdValidator peerIdValidator,
                                       IPeerSettings peerSettings,
                                       int backLogValue     = 100,
                                       IScheduler scheduler = null) : base(backLogValue)
        {
            var observableScheduler = scheduler ?? Scheduler.Default;

            _keySigner = keySigner;
            _messageCorrelationCache = messageCorrelationCache;
            _peerIdValidator         = peerIdValidator;
            _signingContext          = new SigningContext {
                NetworkType = peerSettings.NetworkType, SignatureType = SignatureType.ProtocolRpc
            };
            _observableServiceHandler = new ObservableServiceHandler(observableScheduler);
        }
        /// <summary>
        /// </summary>
        /// <param name="correlationManger"></param>
        /// <param name="keySigner"></param>
        /// <param name="authenticationStrategy"></param>
        /// <param name="peerIdValidator"></param>
        /// <param name="peerSettings"></param>
        /// <param name="scheduler"></param>
        public RpcServerChannelFactory(IRpcMessageCorrelationManager correlationManger,
                                       IKeySigner keySigner,
                                       IAuthenticationStrategy authenticationStrategy,
                                       IPeerIdValidator peerIdValidator,
                                       IPeerSettings peerSettings,
                                       IScheduler scheduler = null)
        {
            var observableScheduler = scheduler ?? Scheduler.Default;

            _correlationManger      = correlationManger;
            _authenticationStrategy = authenticationStrategy;
            _keySigner       = keySigner;
            _peerIdValidator = peerIdValidator;
            _signingContext  = new SigningContext {
                NetworkType = peerSettings.NetworkType, SignatureType = SignatureType.ProtocolRpc
            };
            _observableServiceHandler = new ObservableServiceHandler(observableScheduler);
        }
Esempio n. 19
0
        public void Init()
        {
            Setup(TestContext.CurrentContext);
            _testScheduler = new TestScheduler();
            ContainerProvider.ContainerBuilder.RegisterInstance(TestKeyRegistry.MockKeyRegistry()).As <IKeyRegistry>();
            ContainerProvider.ContainerBuilder.RegisterModule(new KeystoreModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new KeySignerModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new BulletProofsModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new HashingModule());
            ContainerProvider.ConfigureContainerBuilder();

            _scope       = ContainerProvider.Container.BeginLifetimeScope(CurrentTestName);
            _keySigner   = ContainerProvider.Container.Resolve <IKeySigner>();
            _logger      = Substitute.For <ILogger>();
            _fakeContext = Substitute.For <IChannelHandlerContext>();
            var fakeChannel = Substitute.For <IChannel>();

            _fakeContext.Channel.Returns(fakeChannel);
        }
 /// <summary>Initializes a new instance of the <see cref="BroadcastManager"/> class.</summary>
 /// <param name="peers">The peers.</param>
 /// <param name="peerSettings">Peer settings</param>
 /// <param name="memoryCache">The memory cache.</param>
 /// <param name="peerClient">The peer client.</param>
 /// <param name="signer">The signature writer</param>
 /// <param name="logger"></param>
 public BroadcastManager(IPeerRepository peers,
                         IPeerSettings peerSettings,
                         IMemoryCache memoryCache,
                         IPeerClient peerClient,
                         IKeySigner signer,
                         ILogger logger)
 {
     _logger          = logger;
     _peerId          = peerSettings.PeerId;
     _pendingRequests = memoryCache;
     _peers           = peers;
     _signingContext  = new SigningContext {
         NetworkType = peerSettings.NetworkType, SignatureType = SignatureType.ProtocolPeer
     };
     _peerClient = peerClient;
     _signer     = signer;
     _incomingBroadcastSignatureDictionary = new ConcurrentDictionary <ICorrelationId, ProtocolMessage>();
     _entryOptions = () => new MemoryCacheEntryOptions()
                     .AddExpirationToken(new CancellationChangeToken(new CancellationTokenSource(TimeSpan.FromMinutes(10)).Token));
 }
Esempio n. 21
0
        public BroadcastHandlerTests()
        {
            _keySigner = Substitute.For <IKeySigner>();
            _keySigner.Verify(Arg.Any <ISignature>(), Arg.Any <byte[]>(), default).ReturnsForAnyArgs(true);
            _fakeBroadcastManager = Substitute.For <IBroadcastManager>();
            _broadcastHandler     = new BroadcastHandler(_fakeBroadcastManager);

            var fakeSignature = Substitute.For <ISignature>();

            fakeSignature.SignatureBytes.Returns(ByteUtil.GenerateRandomByteArray(new FfiWrapper().SignatureLength));

            _signingContext = DevNetPeerSigningContext.Instance;

            var peerId       = PeerIdHelper.GetPeerId("Test");
            var innerMessage = new TransactionBroadcast();

            _broadcastMessageSigned = innerMessage
                                      .ToSignedProtocolMessage(peerId, fakeSignature, _signingContext)
                                      .ToSignedProtocolMessage(peerId, fakeSignature, _signingContext);
        }
Esempio n. 22
0
        public TweetController(IKeySigner keySigner,
                               IWrapper cryptoWrapper,
                               IMempoolRepository <TransactionBroadcastDao> mempoolRepository,
                               ITransactionReceivedEvent transactionReceivedEvent,
                               ITwitterModuleConfig twitterModuleConfig)
        {
            _signingContext = new SigningContext
            {
                NetworkType   = NetworkType.Devnet,
                SignatureType = SignatureType.TransactionPublic
            };

            _privateKey = keySigner.KeyStore.KeyStoreDecrypt(KeyRegistryTypes.DefaultKey);
            _publicKey  = keySigner.CryptoContext.GetPublicKey(_privateKey);

            _cryptoWrapper            = cryptoWrapper;
            _mempoolRepository        = (MempoolDocumentRepository)mempoolRepository;
            _transactionReceivedEvent = transactionReceivedEvent;
            _twitterModuleConfig      = twitterModuleConfig;
        }
        public PeerClientChannelFactoryTests()
        {
            _testScheduler            = new TestScheduler();
            _serverCorrelationManager = Substitute.For <IPeerMessageCorrelationManager>();
            _serverKeySigner          = Substitute.For <IKeySigner>();
            _serverKeySigner.CryptoContext.SignatureLength.Returns(64);
            var broadcastManager = Substitute.For <IBroadcastManager>();

            _peerIdValidator = Substitute.For <IPeerIdValidator>();

            var peerSettings = Substitute.For <IPeerSettings>();

            peerSettings.NetworkType.Returns(NetworkType.Devnet);

            var serverFactory = new UnitTests.P2P.IO.Transport.Channels.PeerServerChannelFactoryTests.TestPeerServerChannelFactory(
                _serverCorrelationManager,
                broadcastManager,
                _serverKeySigner,
                _peerIdValidator,
                peerSettings,
                _testScheduler);

            _signature = Substitute.For <ISignature>();

            _clientCorrelationManager = Substitute.For <IPeerMessageCorrelationManager>();
            _clientKeySigner          = Substitute.For <IKeySigner>();
            _clientKeySigner.CryptoContext.SignatureLength.Returns(64);

            _clientFactory = new UnitTests.P2P.IO.Transport.Channels.PeerClientChannelFactoryTests.TestPeerClientChannelFactory(
                _clientKeySigner,
                _clientCorrelationManager,
                _peerIdValidator,
                peerSettings,
                _testScheduler);

            _serverChannel =
                new EmbeddedChannel("server".ToChannelId(), true, serverFactory.InheritedHandlers.ToArray());

            _clientChannel =
                new EmbeddedChannel("client".ToChannelId(), true, _clientFactory.InheritedHandlers.ToArray());
        }
Esempio n. 24
0
        public SignMessageRequestObserverTests(ITestOutputHelper output) : base(output, new[]
        {
            Path.Combine(Constants.ConfigSubFolder, TestConstants.TestShellNodesConfigFile)
        })
        {
            _testScheduler = new TestScheduler();
            ContainerProvider.ContainerBuilder.RegisterInstance(TestKeyRegistry.MockKeyRegistry()).As <IKeyRegistry>();
            ContainerProvider.ContainerBuilder.RegisterModule(new KeystoreModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new KeySignerModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new BulletProofsModule());
            ContainerProvider.ContainerBuilder.RegisterModule(new HashingModule());
            ContainerProvider.ConfigureContainerBuilder();

            _scope       = ContainerProvider.Container.BeginLifetimeScope(CurrentTestName);
            _keySigner   = ContainerProvider.Container.Resolve <IKeySigner>();
            _logger      = Substitute.For <ILogger>();
            _fakeContext = Substitute.For <IChannelHandlerContext>();
            var fakeChannel = Substitute.For <IChannel>();

            _fakeContext.Channel.Returns(fakeChannel);
        }
Esempio n. 25
0
        public RpcClientChannelFactoryTests()
        {
            _testScheduler            = new TestScheduler();
            _serverCorrelationManager = Substitute.For <IRpcMessageCorrelationManager>();
            _serverKeySigner          = Substitute.For <IKeySigner>();
            _serverKeySigner.CryptoContext.SignatureLength.Returns(64);

            _authenticationStrategy = Substitute.For <IAuthenticationStrategy>();

            _peerIdValidator = Substitute.For <IPeerIdValidator>();
            var peerSettings = Substitute.For <IPeerSettings>();

            peerSettings.NetworkType.Returns(NetworkType.Devnet);

            _serverFactory = new UnitTests.Rpc.IO.Transport.Channels.RpcServerChannelFactoryTests.TestRpcServerChannelFactory(
                _serverCorrelationManager,
                _serverKeySigner,
                _authenticationStrategy,
                _peerIdValidator,
                peerSettings,
                _testScheduler);

            _clientCorrelationManager = Substitute.For <IRpcMessageCorrelationManager>();
            _clientKeySigner          = Substitute.For <IKeySigner>();
            _clientKeySigner.CryptoContext.SignatureLength.Returns(64);
            var clientFactory =
                new UnitTests.Rpc.IO.Transport.Channels.RpcClientChannelFactoryTests.TestRpcClientChannelFactory(
                    _clientKeySigner,
                    _clientCorrelationManager,
                    _peerIdValidator,
                    peerSettings,
                    _testScheduler);

            _serverChannel =
                new EmbeddedChannel("server".ToChannelId(), true, _serverFactory.InheritedHandlers.ToArray());

            _clientChannel =
                new EmbeddedChannel("client".ToChannelId(), true, clientFactory.InheritedHandlers.ToArray());
        }
Esempio n. 26
0
        /// <summary>
        /// Use this to sign a <see cref="ProtocolMessage"/> before sending it.
        /// If a signature was found on the message, this will error.
        /// </summary>
        /// <param name="protocolMessage">The message that needs to be signed.</param>
        /// <param name="keySigner">An instance of <see cref="IKeySigner"/> used to build the signature.</param>
        /// <param name="signingContext">The context used to sign the message.</param>
        public static ProtocolMessage Sign(this ProtocolMessage protocolMessage,
                                           IKeySigner keySigner,
                                           SigningContext signingContext)
        {
            if ((protocolMessage.Signature?.RawBytes.Length ?? 0) == keySigner.CryptoContext.SignatureLength)
            {
                Logger.Debug("The protocol message was already signed, returning a clone.");
                return(protocolMessage.Clone());
            }

            protocolMessage.Signature = null;
            var signatureBytes = keySigner.Sign(protocolMessage.ToByteArray(),
                                                signingContext).SignatureBytes;
            var signature = new Signature
            {
                SigningContext = signingContext,
                RawBytes       = signatureBytes.ToByteString()
            };

            protocolMessage.Signature = signature;
            return(protocolMessage);
        }
 public ProtocolMessageSignHandler(IKeySigner keySigner, SigningContext signingContext)
 {
     _keySigner      = keySigner;
     _signingContext = signingContext;
 }
Esempio n. 28
0
        public static ISignature Sign(this IKeySigner crypto, IMessage message, SigningContext context)
        {
            using var pooled = message.SerializeToPooledBytes();

            return(crypto.Sign(pooled.Span, context));
        }
Esempio n. 29
0
        public static bool Verify(this IKeySigner crypto, ISignature signature, IMessage message, SigningContext context)
        {
            using var pooled = message.SerializeToPooledBytes();

            return(crypto.Verify(signature, pooled.Span, context));
        }
Esempio n. 30
0
 public ProtocolMessageVerifyHandler(IKeySigner keySigner)
     : base(Log.Logger.ForContext(MethodBase.GetCurrentMethod().DeclaringType))
 {
     _keySigner = keySigner;
 }