public void HashTest() { var block = new SimpleBlock(2, "2", 0, "new block"); var hashProvider = new SHA256HashProvider(); hashProvider.Hash(block); Assert.Equal(block.Hash, "b77f43514bcd6c8c963b94c0bb66cbd6da8f5606599f9a32581d22368df02a81"); }
public void VerifyTest() { var blockWithValidHash = new SimpleBlock(2, "2", 0, "new block", "b77f43514bcd6c8c963b94c0bb66cbd6da8f5606599f9a32581d22368df02a81"); var blockWithInvalidHash = new SimpleBlock(2, "2", 0, "new block", "b22f43514bcd6c8c963b94c0bb66cbd6da8f5606599f9a32581d22322df02a22"); var hashProvider = new SHA256HashProvider(); var validBlockResult = hashProvider.Verify(blockWithValidHash); var invalidBlockResult = hashProvider.Verify(blockWithInvalidHash); Assert.True(validBlockResult); Assert.False(invalidBlockResult); }
public void SHA256SignatureProvider_HashString_ReturnsCorrectHash() { //Arrange string hashedString; using (var hash = SHA256.Create()) { hashedString = Convert.ToBase64String(hash.ComputeHash(Encoding.UTF8.GetBytes("test"))); } var hashProvider = new SHA256HashProvider(); //Act var signature = hashProvider.Hash("test"); //Assert Assert.Equal(hashedString, signature); }
public void IsValidNewBlockTest() { var hasher = new SHA256HashProvider(); var factory = new SimpleBlockFactory(hasher); var blockchain = new SimpleBlockChain(hasher, factory); var genesisBlock = factory.CreateGenesisBlock(); var blockWithBadIndex = new SimpleBlock(0, "1", 0, "new block", "0"); Assert.False(blockchain.IsValidNewBlock(genesisBlock, blockWithBadIndex)); var blockWithBadHash = new SimpleBlock(1, "1", 0, "new block", "VERY BAD HASH"); Assert.False(blockchain.IsValidNewBlock(genesisBlock, blockWithBadHash)); var validBlock = new SimpleBlock(2, "2", 0, "new block"); hasher.Hash(validBlock); Assert.False(blockchain.IsValidNewBlock(genesisBlock, blockWithBadHash)); }