fn decrypt(secret: &ElGamalSecretKey, ct: &ElGamalCiphertext) -> DiscreteLog {
        let ElGamalSecretKey(s) = secret;
        let ElGamalCiphertext {
            message_comm,
            decrypt_handle,
        } = ct;

        DiscreteLog {
            generator: PedersenBase::default().G,
            target: message_comm.get_point() - s * decrypt_handle.get_point(),
        }
    }
/// On input a secret key and a ciphertext, the function decrypts the ciphertext.
///
/// The output of the function is of type `DiscreteLog`. The exact message
/// can be recovered via the DiscreteLog's decode method.
On input a secret key and a ciphertext, the function decrypts the ciphertext.
The output of the function is of type `DiscreteLog`. The exact message
can be recovered via the DiscreteLog's decode method.
On input a secret key and a ciphertext the function decrypts the ciphertext . The output of the function is of type ` DiscreteLog ` . The exact message can be recovered via the DiscreteLog ' s decode method .
fn decrypt(secret: &ElGamalSecretKey, ct: &ElGamalCiphertext) -> DiscreteLog {
        let ElGamalSecretKey(s) = secret;
        let ElGamalCiphertext {
            message_comm,
            decrypt_handle,
        } = ct;
        DiscreteLog {
            generator: PedersenBase::default().G,
            target: message_comm.get_point() - s * decrypt_handle.get_point(),
        }
    }
fn decrypt ( secret : & ElGamalSecretKey , ct : & ElGamalCiphertext ) -> DiscreteLog { let ElGamalSecretKey ( s ) = secret ; let ElGamalCiphertext { message_comm , decrypt_handle , } = ct ; DiscreteLog { generator : PedersenBase :: default ( ) . G , target : message_comm . get_point ( ) - s * decrypt_handle . get_point ( ) , } }
On input a secret key and a ciphertext, the function decrypts the ciphertext.
On input a secret key and a ciphertext the function decrypts the ciphertext .
secret
&ElGamalSecretKey
ct
&ElGamalCiphertext