public TransactionOutput(AsymmetricKeyParameter receiver, float amount, string parentTransactionId)
 {
     this.Receiver            = receiver;
     this.Amount              = amount;
     this.ParentTransactionId = parentTransactionId;
     this.Id = SecurityUtil.ApplySha256(SecurityUtil.GetPublicKeyBase64(receiver) + amount.ToString() + parentTransactionId);
 }
예제 #2
0
        private string CalculateTransactionHash()
        {
            Sequence++;

            SHA256 sha256 = SHA256.Create();

            byte[] inputBytes = Encoding.ASCII.GetBytes(
                SecurityUtil.GetPublicKeyBase64(Sender) +
                SecurityUtil.GetPublicKeyBase64(Receiver) +
                Amount.ToString() +
                Sequence);

            byte[] outputBytes = sha256.ComputeHash(inputBytes);

            return(Convert.ToBase64String(outputBytes));
        }
예제 #3
0
        public bool VerifiySignature()
        {
            string data = SecurityUtil.GetPublicKeyBase64(Sender) + SecurityUtil.GetPublicKeyBase64(Receiver) + Amount.ToString();

            return(SecurityUtil.Verify(Sender, data, Signature));
        }
예제 #4
0
        public void GenerateSignature(AsymmetricKeyParameter privateKey)
        {
            string data = SecurityUtil.GetPublicKeyBase64(Sender) + SecurityUtil.GetPublicKeyBase64(Receiver) + Amount.ToString();

            Signature = SecurityUtil.Sign(privateKey, data);
        }