public void Initialize(BigInteger privateKey, byte[] msghash) { _v = Enumerable.Repeat((byte)0x01, 32).ToArray(); _k = Enumerable.Repeat((byte)0x00, 32).ToArray(); var keyBytes = privateKey.ToUByteArray().ToBigEndian(); var prvKey = new byte[32]; Array.Copy(keyBytes, 0, prvKey, 32 - keyBytes.Length, keyBytes.Length); _k = Hashes.HMACSHA256(_k, _v.Concat(ByteArray.Zero, prvKey, msghash)); _v = Hashes.HMACSHA256(_k, _v); _k = Hashes.HMACSHA256(_k, _v.Concat(ByteArray.One, prvKey, msghash)); _v = Hashes.HMACSHA256(_k, _v); }