Пример #1
0
 public ClientWorker(ECDSAPublicKey peerPublicKey, IMessageFactory messageFactory, HubConnector hubConnector)
 {
     _messageFactory = messageFactory;
     _hubConnector   = hubConnector;
     PeerPublicKey   = peerPublicKey.EncodeCompressed();
     _worker         = new Thread(Worker);
 }
Пример #2
0
        public void VerifyTransaction(TransactionReceipt acceptedTransaction, ECDSAPublicKey publicKey, bool useNewChainId)
        {
            var address = _crypto.ComputeAddress(publicKey.EncodeCompressed()).ToUInt160();

            _publicKeyCache.Add(address, publicKey);
            VerifyTransaction(acceptedTransaction, useNewChainId);
        }
Пример #3
0
        public OperatingError VerifySignature(BlockHeader blockHeader, Signature signature, ECDSAPublicKey publicKey)
        {
            var result = Crypto.VerifySignatureHashed(
                blockHeader.Keccak().ToBytes(), signature.Encode(), publicKey.EncodeCompressed(),
                HardforkHeights.IsHardfork_9Active(blockHeader.Index)
                );

            return(result ? OperatingError.Ok : OperatingError.InvalidSignature);
        }
Пример #4
0
 /* Sync Verification, verifies the transaction immediately */
 public bool VerifyTransactionImmediately(TransactionReceipt receipt, ECDSAPublicKey publicKey, bool useNewChainId)
 {
     try
     {
         return(_crypto.VerifySignatureHashed(
                    receipt.Transaction.RawHash(useNewChainId).ToBytes(),
                    receipt.Signature.Encode(), publicKey.EncodeCompressed(), useNewChainId
                    ));
     }
     catch (Exception)
     {
         return(false);
     }
 }
Пример #5
0
        private static byte[] EncryptRow(IEnumerable <Fr> row, ECDSAPublicKey publicKey)
        {
            var serializedRow = row.Select(x => x.ToBytes()).Flatten().ToArray();

            return(Crypto.Secp256K1Encrypt(publicKey.EncodeCompressed(), serializedRow));
        }
Пример #6
0
 public static UInt160 GetAddress(this ECDSAPublicKey key)
 {
     return(Crypto.ComputeAddress(key.EncodeCompressed()).ToUInt160());
 }