Example #1
0
        public Key Uncover(Key scan, PubKey ephem)
        {
            X9ECParameters curve = ECKey.Secp256k1;

            byte[] priv = new BigInteger(1, PubKey.GetStealthSharedSecret(scan, ephem))
                          .Add(new BigInteger(1, this.ToBytes()))
                          .Mod(curve.N)
                          .ToByteArrayUnsigned();

            if (priv.Length < 32)
            {
                priv = new byte[32 - priv.Length].Concat(priv).ToArray();
            }

            var key = new Key(priv, fCompressedIn: this.IsCompressed);

            return(key);
        }