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); }