protected override string DeriveAddress(PhantasmaKeys keys) { ECPoint pKey = ECCurve.Secp256k1.G * keys.PrivateKey; var publicKey = pKey.EncodePoint(false).Skip(1).ToArray(); var kak = SHA3Keccak.CalculateHash(publicKey); return("0x" + Base16.Encode(kak.Skip(12).ToArray())); }
public void TestSha3Keccak() { byte[] source = Encoding.ASCII.GetBytes( "asdçflkjasçfjaçrlgjaçorigjkljbçladkfjgsaºperouiwa89tuhyjkvsldkfjçaoigfjsadfjkhsdkgjhdlkgjhdkfjbnsdflçkgsriaugfukasyfgskaruyfgsaekufygvsanfbvsdj,fhgwukaygsja,fvkusayfguwayfgsnvfuksaygfkuybhsngfukayeghsmafbsjkfgwlauifgjkshfbilçehrkluayh"); for (int i = 0; i < 10000; i++) { var sha3Test = SHA3Keccak.CalculateHash(source); var sha3Target = Base16.Decode("09D3FA337D33E1BEB3C3D560D93F5FB57C66BC3E044127816F42494FA4947A92"); //https://asecuritysite.com/encryption/sha3 , using sha-3 256 bit Assert.IsTrue(sha3Test.SequenceEqual(sha3Target)); } }