public void TestRipemd160Set()
        {
            var h   = new cipher_Ripemd160();
            var b   = new GoSlice();
            var err = SKY_cipher_RandByte(21, b);

            err = SKY_cipher_Ripemd160_Set(h, b);
            Assert.AreEqual(err, SKY_ErrInvalidLengthRipemd160);
            b = new GoSlice();
            h = new cipher_Ripemd160();
            SKY_cipher_RandByte(100, b);
            err = SKY_cipher_Ripemd160_Set(h, b);
            Assert.AreEqual(err, SKY_ErrInvalidLengthRipemd160);

            b = new GoSlice();
            h = new cipher_Ripemd160();
            SKY_cipher_RandByte(19, b);
            err = SKY_cipher_Ripemd160_Set(h, b);
            Assert.AreEqual(err, SKY_ErrInvalidLengthRipemd160);

            b = new GoSlice();
            h = new cipher_Ripemd160();
            SKY_cipher_RandByte(0, b);
            err = SKY_cipher_Ripemd160_Set(h, b);
            Assert.AreEqual(err, SKY_ErrInvalidLengthRipemd160);

            b = new GoSlice();
            h = new cipher_Ripemd160();
            SKY_cipher_RandByte(20, b);
            err = SKY_cipher_Ripemd160_Set(h, b);
            Assert.AreEqual(err, SKY_OK);
        }
        public void TestHashRipemd160()
        {
            var b   = new GoSlice();
            var err = SKY_cipher_RandByte(128, b);
            var hr  = new cipher_Ripemd160();

            err = SKY_cipher_HashRipemd160(b, hr);
            Assert.AreEqual(err, SKY_OK);
            b   = new GoSlice();
            err = SKY_cipher_RandByte(160, b);
            var r = new cipher_Ripemd160();

            err = SKY_cipher_HashRipemd160(b, r);
            Assert.AreEqual(r.isEqual(new cipher_Ripemd160()), 0);
            // 2nd hash should not be affected by previous
            b   = new GoSlice();
            err = SKY_cipher_RandByte(256, b);
            var r2 = new cipher_Ripemd160();

            err = SKY_cipher_HashRipemd160(b, r2);
            Assert.AreEqual(err, SKY_OK);
            Assert.AreEqual(r2.isEqual(new cipher_Ripemd160()), 0);
            var r3 = new cipher_Ripemd160();

            freshSumRipemd160(b, r3);
            Assert.AreEqual(r2.isEqual(r3), 1);
        }
 public void freshSumRipemd160(skycoin.GoSlice bytes, cipher_Ripemd160 rp160)
 {
     SKY_cipher_HashRipemd160(bytes, rp160);
 }