public override KeyValuePair <bool, byte[]> Execute(byte[] data)
            {
                byte[] h = new byte[32];
                byte[] v = new byte[32];
                byte[] r = new byte[32];
                byte[] s = new byte[32];

                DataWord out_val = null;

                try
                {
                    Array.Copy(data, 0, h, 0, 32);
                    Array.Copy(data, 32, v, 0, 32);
                    Array.Copy(data, 64, r, 0, 32);

                    int length = data.Length < 128 ? data.Length - 96 : 32;
                    Array.Copy(data, 96, s, 0, length);

                    ECDSASignature signature = ECDSASignature.FromComponents(r, s, v[31]);
                    if (ValidateV(v) && signature.IsValidComponents)
                    {
                        out_val = new DataWord(ECKey.SignatureToAddress(h, signature));
                    }
                }
                catch
                {
                }

                if (out_val == null)
                {
                    return(new KeyValuePair <bool, byte[]>(true, new byte[0]));
                }
                else
                {
                    return(new KeyValuePair <bool, byte[]>(true, out_val.Data));
                }
            }